Este tópico apresenta conceitos que devem ser considerados antes de desenvolver um analisador definido pelo usuário.Quando estiver pronto, leia as instruções em Criando um Analisador em C para construir seu analisador.
Antes de começar a criar seu próprio analisador, esteja certo sobre porque você precisa dele. Você pode executar a maioria das tarefas utilizando as funções já fornecidas com o WebSphere Message Broker, portanto pode não ser preciso criar um analisador definido pelo usuário para sua tarefa específica.
A maioria da tarefa que precisa ser realizada pode ser executada utilizando funções fornecidas com o WebSphere Message Broker. Certifique-se de que a tarefa que você quer executar não pode ser feita utilizando uma função interna do WebSphere Message Broker antes de criar seu próprio analisador. Se os analisadores disponíveis no WebSphere Message Broker não forem apropriados para suas necessidades, você poderá definir seu próprio analisador para analisar formatos de mensagem internos, específicos de cliente ou comerciais genéricos.
Para obter detalhes sobre domínios de mensagem nos quais o analisador fornecido do WebSphere Message Broker pode aceitar mensagens e os cabeçalhos de mensagem com os quais ele pode trabalhar, consulte Analisadores.
O WebSphere Message Broker não suporta mensagens de várias partes e vários formatos. Uma mensagem MRM de várias partes deve consistir em mensagens que sejam todas no mesmo formato
O WebSphere Message Broker suporta análise parcial, o que permite que seu analisador analise somente os campos relevantes em uma mensagem. O uso de análise parcial pode poupar recursos do sistema.
O WebSphere Message Broker suporta o que é chamado de 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. Como um fluxo de mensagens individual pode referenciar somente alguns desses campos ou nenhum deles, é ineficiente analisar toda mensagem de entrada completamente. Por esse motivo, o WebSphere Message Broker permite a análise de mensagens conforme o necessário. (Isso não impede um analisador de processar a mensagem inteira de uma só vez, e alguns analisadores são escritos para fazer exatamente isto).
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 ou não concluídos, e se seus filhos também estão concluídos. A análise em geral é concluída de uma maneira de baixo para cima, da esquerda para a direita. Quando um analisador tiver concluído os irmãos de um determinado elemento que precede o elemento dado 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 é definido 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 mensagem do WebSphere Message Broker 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 definidos, 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, também conhecida como análise atrasada. Durante a análise parcial, um analisador é chamado recorrentemente 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.
Caso você escolha executar uma análise completa ou parcial, depende muito de como você agir, a mensagem será processada dentro do WebSphere Message Broker. Se é provável que a maioria dos elementos de campos dentro da mensagem irão ser acessados durante o processamento no WebSphere Message Broker, a execução de uma análise completa da mensagem quando for feita uma tentativa de acessá-la provavelmente será mais eficiente. É mais provável que isso aconteça para mensagens menores.
Entretanto, se não é provável que a maioria dos elementos do campo na mensagem sejam acessados durante o processamento no WebSphere Message Broker, a execução de uma análise preguiçosa da mensagem quando for feita uma tentativa de acessar um campo específico provavelmente será mais eficiente. Isso é especialmente verdadeiro conforme o tamanho da mensagem aumenta.