A árvore de mensagens é uma parte de uma árvore de mensagem lógica na qual o intermediário armazena sua representação interna do corpo da mensagem.
A raiz de uma árvore de mensagens é chamada de Raiz. A árvore de mensagens está sempre presente e é transmitida de nó para nó em uma única instância de um fluxo de mensagens.
A árvore de mensagens inclui todos os cabeçalhos que estão presentes na mensagem, além do corpo da mensagem. Ela também inclui a sub-árvore de propriedades (descrita em Analisadores), se ela for criada pelo analisador. Se um analisador fornecido tiver criado a árvore de mensagens, o elemento que representa a subárvore de propriedades será seguido por nenhum ou mais cabeçalhos.
Se a mensagem foi recebida pelo WebSphere MQ Enterprise Transport, WebSphere MQ Mobile Transport ou pelo WebSphere MQ Telemetry Transport, o primeiro cabeçalho (o segundo elemento) deverá ser o MQMD. Todos os cabeçalhos adicionais incluídos na mensagem aparecem na árvore na mesma ordem que na mensagem. O último elemento abaixo da raiz da árvore de mensagens é sempre o corpo da mensagem.
Se um analisador definido pelo usuário tiver criado a árvore de mensagens, a árvore Properties, se presente, será seguida pelo corpo da mensagem.
A estrutura da árvore de mensagens é mostrada abaixo. Se a mensagem de entrada não for uma mensagem do WebSphere MQ, os cabeçalhos mostrados podem não estar presentes.Se o analisador que criou essa árvore for um analisador definido pelo usuário, a árvore Propriedades poderá não estar presente.
A árvore Corpo é uma estrutura dos elementos filhos (descritos abaixo) que representa o conteúdo da mensagem (dados) e reflete a estrutura lógica desse conteúdo. A árvore Corpo é criada pelo analisador (um analisador fornecido ou um analisador definido pelo usuário), conforme descrito em Analisadores.
Cada elemento na árvore personalizada pode ser de um dos três tipos a seguir:
Para obter informações sobre como a árvore de mensagens é ocupada, consulte Como a Árvore de Mensagem É Ocupada.
A pasta de propriedades é o primeiro elemento da árvore de mensagens e contém informações sobre as características da mensagem.
A raiz da pasta de propriedades é chamada de Propriedades. É o primeiro elemento sob Raiz. Todas as árvores de mensagens geradas pelos analisadores internos incluem uma pasta de propriedades para a mensagem. Se você criar seu próprio analisador definido pelo usuário, poderá escolher se o analisador criará uma pasta de propriedades. No entanto, para consistência, é recomendável incluir essa ação no analisador definido pelo usuário.
A pasta de propriedades é criada e inserida na árvore após todos os cabeçalhos, mas precedendo os dados da mensagem. Ela contém um conjunto de propriedades padrão que pode ser manipulado nos nós do fluxo de mensagens da mesma forma que qualquer outra propriedade. A maioria desses campos são mapeados para campos nos cabeçalhos suportados do WebSphere MQ, se presentes, e são transmitidos para o analisador apropriado quando uma mensagem é entregue de um nó para outro.
Por exemplo, o cabeçalho MQRFH2 contém informações sobre o conjunto de mensagens, o tipo e formato. Esses valores são armazenados na pasta de propriedades como MessageSet, MessageType e MessageFormat. Para acessar esses valores utilizando ESQL dentro dos nós de processamento de mensagens, consulte esses valores na pasta de propriedades; não consulte diretamente nos campos nos cabeçalhos dos quais eles são derivados.
Se a mensagem for convertida em um fluxo de bits, por exemplo, em um nó output, quaisquer propriedades restantes apenas na pasta de propriedades (ou seja, que não estão em nenhum cabeçalho nas mensagens de saída) não serão incluídas em nenhuma parte da mensagem de saída.
O analisador de Propriedades assegura que os valores nos campos do cabeçalho correspondam aos valores na pasta de propriedades na entrada para e na saída de cada nó. Na saída de um nó, o analisador de Propriedades chama cada analisador de cabeçalho com os valores que ele contém atualmente. Ele então solicita os valores novamente do analisador do cabeçalho e atualiza seus próprios valores. Se você codificou ESQL no nó que atualiza valores na pasta de propriedades ou no cabeçalho ou em ambos, esses valores serão sempre correspondentes quando a árvore for transmitida a partir desse nó. No entanto, se você tiver atualizado um campo na pasta de propriedades e no cabeçalho com valores diferentes, o valor definido no cabeçalho será sobrescrito pelo valor definido na pasta de propriedades.
Quando o processamento do fluxo de mensagens estiver concluído, a pasta de propriedades será descartada.