Leia sobre os conceitos que você deve considerar antes de desenvolver um analisador definido pelo usuário.
Quando você tiver considerado as informações fornecidas aqui e estiver pronto para desenvolver seu próprio analisador, utilize as instruções em Implementando um Analisador Definido pelo Usuário para construir seu analisador.
Antes de começar a criar seu próprio analisador, esteja certo sobre seu objetivo. Você pode executar a maioria das tarefas utilizando as funções fornecidas com o WebSphere Message Broker, portanto pode não ser preciso criar um analisador definido pelo usuário para sua tarefa específica.
Se os analisadores disponíveis no WebSphere Message Broker não forem apropriados para suas necessidades, defina seu próprio analisador para analisar formatos de mensagem internos, específicos de cliente ou comerciais genéricos.
Consulte Analisadores para obter detalhes dos domínios de mensagem para os quais os analisadores fornecidos podem aceitar mensagens de entrada e os cabeçalhos da mensagem com os quais os analisadores fornecidos podem trabalhar.
O WebSphere Message Broker não suporta mensagens de várias partes e vários formatos. Uma mensagem MRM com multipartes deve consistir em mensagens que estão todas no mesmo formato.
O WebSphere Message Broker suporta a análise parcial, que permite ao seu analisador analisar apenas os campos relevantes em uma mensagem. O uso de análise parcial pode poupar recursos do sistema.
O WebSphere Message Broker suporta a análise parcial. Se uma mensagem individual contiver centenas ou até milhares de campos individuais, a operação de análise vai requerer memória considerável e a conclusão dos recursos do processador. Um fluxo de mensagens individual pode referenciar somente alguns desses campos ou nenhum deles; portanto, é ineficiente analisar toda mensagem de entrada completamente. Por esse motivo, o WebSphere Message Broker permite a análise de mensagens conforme o necessário. (Essa capacidade não impede que um analisador processe a mensagem inteira em uma etapa, e alguns analisadores são escritos para processar a mensagem inteira dessa maneira.)
Cada elemento de sintaxe em uma mensagem lógica tem dois bits que indicam se todos os elementos de cada lado de um elemento estão concluídos, e se seus filhos estão concluídos. A análise geralmente é concluída de maneira de baixo para cima e da esquerda para a direita. Quando um analisador tiver analisado os irmãos de um determinado elemento que precede o elemento fornecido e o primeiro filho, ele define o primeiro bit de conclusão como um. De maneira similar, quando o ponteiro para o próximo irmão de um elemento for concluído, bem como o ponteiro de seu último filho, o outro bit de conclusão é define como um.
Na análise parcial, o servidor intermediário aguarda até que uma parte da mensagem seja referenciada e chama o analisador para analisar a parte da mensagem. Os nós de processamento de mensagens se referem a campos dentro de uma mensagem utilizando nomes hierárquicos. O nome começa na raiz da mensagem e prossegue para baixo na árvore de mensagem até que o elemento específico seja localizado. Se um elemento for encontrado sem seus bits de conclusão configurados, e se for necessária mais navegação a partir desse elemento, o ponto de entrada apropriado do analisador será chamado para analisar a parte necessária da mensagem. A parte relevante da mensagem é analisada, os elementos apropriados são adicionados à árvore de mensagem lógica e o elemento em questão é marcado como concluído.
Se você não precisar analisar o fluxo total de bits, poderá utilizar a análise parcial. Durante a análise parcial, um analisador é chamado recursivamente até que o elemento requerido seja retornado ou até que a árvore de mensagem tenha sido marcada como concluída e o elemento requerido seja reconhecido como não existente.
A condição para se escolher a execução de uma análise completa ou parcial depende de como a mensagem será processada. Se for provável que a maioria dos elementos de campos dentro da mensagem sejam acessados durante o processamento, executar uma análise completa da mensagem quando for feita uma tentativa de acessá-la geralmente será mais eficiente, especialmente para mensagens menores.
No entanto, se não for provável que a maioria dos elementos do campo dentro da mensagem seja acessada durante o processamento, executar uma análise parcial da mensagem quando for feita uma tentativa de acessar um campo específico geralmente será mais eficiente, especialmente quando o tamanho da mensagem aumentar.