A árvore de mensagens é inicialmente ocupada pelo nó de entrada do fluxo de mensagens.
Quando o nó de entrada recebe a mensagem de entrada, ele cria a árvore Propriedades (a primeira subárvore da árvore de mensagens) e ocupa-a com as propriedades do nó configuradas no fluxo de mensagens. Em seguida, ele examina o conteúdo do fluxo de bits da mensagem de entrada e cria o restante da árvore de mensagens para refletir esse conteúdo. Esse processo depende, até certo ponto, do próprio nó de entrada, que é controlado pelo transporte através do qual a mensagem é recebida:
O nó de entrada primeiro chama o analisador MQMD e cria a subárvore para esse cabeçalho.
Uma mensagem pode ter zero ou mais cabeçalhos adicionais após o MQMD e eles estão encadeados, com o campo Formato de um cabeçalho definindo o formato do cabeçalho a seguir, até e incluindo o último cabeçalho que define o formato do corpo da mensagem. Se houver um cabeçalho MQRFH e um MQRFH2 na cadeia, os dados de nome/valor em qualquer um desses dois cabeçalhos também poderão conter informações sobre o formato dos dados a seguir. Se o valor especificado em Formato for um analisador reconhecido, ele sempre terá precedência sobre os dados de nome/valor.
O intermediário chama o analisador apropriado para interpretar cada cabeçalho, após a cadeia na mensagem. Cada cabeçalho é analisado de forma independente. Os campos em um único cabeçalho são analisados em uma ordem, que é controlada pelo analisador. Não é possível prever ou depender da ordem escolhida, mas a ordem em que os campos são analisados não afeta a ordem em que os campos aparecem no cabeçalho.
O intermediário assegura que a integridade dos cabeçalhos que precedem uma corpo de mensagem seja mantida. O formato de cada parte da mensagem é definido pelo campo Formato no cabeçalho imediatamente precedente (se a seguinte parte tiver um formato reconhecido do ) ou pelos valores definidos no cabeçalho MQRFH ou MQRFH2:
Esse processo é repetido quantas vezes forem necessárias pelo número de cabeçalhos que precedem o corpo da mensagem. Não é necessário ocupar esses campos; o intermediário trata essa seqüência para você.
O intermediário conclui este processo para assegurar que os campos Formato nos cabeçalhos identifiquem corretamente cada parte da mensagem. Se ele não fizer isso, o talvez não possa entregar a mensagem. Como o analisador do corpo da mensagem não possui um formato de cabeçalho do reconhecido, o intermediário substitui este valor no campo Formato do último cabeçalho pelo valor MQFMT_NONE. O valor original nesse campo é armazenado no campo Domínio no cabeçalho MQRFH ou MQRFH2 para manter as informações sobre o conteúdo do corpo da mensagem. Se não houver nenhum MQRFH ou MQRFH2, as informações serão armazenadas na árvore Propriedades.
Por exemplo, se o cabeçalho MQRFH2 preceder imediatamente o corpo da mensagem e seu campo Formato estiver definido como XML, indicando que o corpo da mensagem deve ser analisado pelo analisador XML genérico, o campo Domínio do MQRFH2 será definido como XML, e seu campo Formato redefinido como MQFMT_NONE.
Estas ações podem resultar em informações armazenadas explicitamente por uma expressão ESQL sendo substituída pelo intermediário.
Após a análise de todos os cabeçalhos e a criação das subárvores correspondentes, o nó de entrada associará o analisador especificado ao corpo da mensagem. Você deve especificar o analisador que deve ser associado ao conteúdo do corpo da mensagem. Você pode fazer isso em um cabeçalho na mensagem, por exemplo, a pasta <mcd> no cabeçalho MQRFH2 (a opção recomendada) ou nas propriedades do nó de entrada (recomendável se a mensagem não incluir cabeçalhos). O nó de entrada faz a associação como descrito abaixo:
No fluxo de mensagens Publicação/Assinatura, o nó MQeInput cria mensagens de formato do com cabeçalhos MQRFH2 a partir das mensagens de entrada que o listener recebe na porta TCP/IP.
Em fluxos de mensagens ponto-a-ponto, a ação executada pelo nó MQeInput depende do tipo de mensagem (MQeMsgObject ou MQeMbMsgObject) recebida pelo listener. Para obter detalhes adicionais, consulte ac00460_.htm#ac00460_.
O nó SCADAInput cria mensagens de formato do com cabeçalhos MQRFH2 a partir das mensagens de entrada que o listener recebe na porta TCP/IP.
O corpo da mensagem não será analisado por razões de desempenho; é possível que a configuração do fluxo de mensagens não precise do corpo da mensagem que será analisado. O corpo é analisado apenas quando uma referência é feita para seu conteúdo durante o fluxo da mensagem.
Por exemplo, o corpo da mensagem será analisado quando você referir-se a Root.XML.Field (ou InputRoot.XML.Field no nó Compute) ou Root.MRM.Field.Dependendo dos caminhos utilizados no fluxo de mensagens, essa análise pode ocorrer em diferentes pontos. Esta análise, quando a primeira abordagem necessária for referida também como análise parcial e em processamento normal, não afeta a lógica de um fluxo de mensagens. No entanto, existem algumas implicações para cenários de manipulação de erros que são descritos em Tratando Erros em Fluxos de Mensagens.
Se desejar que um fluxo de mensagens aceite mensagens de mais de um domínio da mensagem, será possível incluir um cabeçalho MQRFH2 em sua mensagem, a partir do qual o nó de entrada extrairá o domínio da mensagem e informações de definição de mensagens relacionadas (conjunto, tipo e formato).
Se você configurar os cabeçalhos da mensagem ou as propriedades do nó de entrada para identificar um analisador definido pelo usuário, a forma pela qual ele interpreta a mensagem e constrói a árvore lógica pode ser diferente da descrita aqui.
Se não houver cabeçalhos ou se estes cabeçalhos não especificarem o analisador para o corpo da mensagem, será necessário definir as propriedades do nó de entrada para definir o analisador do corpo da mensagem. Se isso não for feito, a mensagem será tratada como um BLOB. Você pode especificar um analisador definido pelo usuário.
O analisador especificado é associado ao corpo de mensagem pelo nó de entrada (do mesmo modo que é associado aos protocolos , , e ) e o corpo da mensagem não é analisado.
Se você configurar os cabeçalhos da mensagem ou as propriedades do nó de entrada para identificar um analisador definido pelo usuário, a forma pela qual ele interpreta a mensagem e constrói a árvore lógica pode ser diferente da descrita aqui.
Essa interface não gera automaticamente uma subárvore Propriedades para uma mensagem (essa subárvore é discutida em Árvore de Propriedades). Não é requerido que uma mensagem tenha umasubárvore Propriedades, embora você possa achar útil criar uma e fornecer uma estrutura de árvore de mensagens consistente, independente do nó de entrada. Se desejar que uma subárvore Properties seja criada na árvore de mensagens e estiver utilizando um nó de entrada definido pelo usuário, você mesmo deverá fazer isso.
Se precisar processar mensagens que não estão de acordo com nenhum dos domínios de mensagens definidos, será possível utilizar a interface de programação em linguagem C para criar um novo analisador definido pelo usuário.
Você deve consultar a interface do nó para entender como ele utiliza analisadores e se é possível configurá-lo para modificar seu comportamento. Se o nó utilizar um analisador definido pelo usuário, a estrutura da árvore criada para a mensagem pode ser um pouco diferente da criada para analisadores internos. Um nó de entrada definido pelo usuário pode analisar totalmente uma mensagem de entrada ou pode participar da análise parcial na qual o corpo da mensagem é analisado apenas quando necessário.
Você também pode criar seus próprios nós de saída e de processamento de mensagens em C ou Java.
Conceitos relacionados
A Estrutura de Árvore Lógica
Árvore de mensagens
Árvore de Ambiente
Árvore Ambiente Local
Árvore Lista de Exceções
Árvore de Propriedades
Análise Parcial
Nomes de Correlação
Tarefas relacionadas
Desenvolvendo Aplicativos do Fluxo de Mensagens
Referências relacionadas
Nós Internos
Nós Definidos pelos Usuários
Cabeçalho do MQRFH2
Avisos |
Marcas |
Downloads |
Biblioteca |
Suporte |
Feedback
![]() ![]() |
ac18520_ |