A amostra Navegação de Filas do WebSphere MQ demonstra como um fluxo de mensagens pode navegar por mensagens que estão em uma fila e recuperar os dados destas mensagens sem a remoção delas da fila. A amostra examina o conteúdo das mensagens utilizando a navegação, para determinar se a mensagem deve ser obtida a partir da fila. Obter a mensagem remove a mensagem da fila, mas procurar deixa a mensagem na fila.
A amostra contém um único fluxo de mensagens chamado operações examinar e obter. O fluxo de mensagens navega por uma mensagem na fila de entrada e então a encaminha com base no valor do campo StaffNumber. O fluxo de mensagens então remove a mensagem da fila e coloca a mensagem em uma segunda fila.
O fluxo de mensagens das operações examinar e obter demonstra as seguintes tarefas:
A figura a seguir mostra o fluxo de mensagens das operações examinar e obter:
O nó MQInput chamado MQBROWSE_IN lê a mensagem XML da fila MQBROWSE_IN. Como a opçãoSomente Navegar é especificada neste nó, a mensagem não é removida da fila de entrada.
O nó Route chamado StaffNumber=2 executa a expressão XPath:
$Body/Staff/StaffNumber="2"|Match
Se a mensagem não contiver um valor igual a 2 para StaffNumber, o processamento do fluxo de mensagens pára, e a mensagem permanece na fila de entrada. Se a mensagem contiver um valor igual a 2 para StaffNumber, o processamento do fluxo de mensagens continua para o próximo nó.
O nó MQGet chamado MQBROWSE_IN obtém a mensagem da fila de entrada. A propriedade Obter pelo ID da mensagem no nó é verificada para garantir que ela seja a mensagem atual que é removida da fila de entrada.
O nó MQOutput chamado MQBROWSE_OUT coloca a mensagem na fila MQBROWSE_OUT.
As mensagens de teste utilizadas na amostra Navegação de Filas do WebSphere MQ são mensagens XML simples XML que contêm detalhes para uma empresa.
staffmsg1:
<Staff> <StaffNumber>1</StaffNumber> <NameInfo> <LastName>Smith</LastName> <FirstName>Jack</FirstName> </NameInfo> </Staff>
staffmsg2:
<Staff> <StaffNumber>2</StaffNumber> <NameInfo> <LastName>Ninguém</LastName> <FirstName>Joana</FirstName> </NameInfo> </Staff>