Deve-se concluir as instruções de configuração, consulte Configurando a Amostra Collector Node, e importar e implementar o fluxo de mensagens, consulte Amostra Collector Node, antes de poder executar a amostra Collector Node.
Nota. Pode ser mais simples salvar inicialmente os arquivos em um diretório temporário para que, ao executar a amostra, você possa copiar e colar os arquivos no diretório que é monitorado pelo nó FileInput que já foi configurado. Essa ação assegura que os arquivos sejam entregues ao broker no tempo limite do lote do nó Collector.
Se você encontrar algum problema ao executar a amostra, consulte Resolvendo Problemas ao Executar Amostras na documentação do WebSphere Message Broker e consulte a seção "Determinação de Problema" no final deste tópico.
Ao concluir a configuração da amostra, o nó FileInput, fileinput, monitora o diretório para os detalhes de entrega para os pedidos do cliente 111 e 222.
Nota: Dependendo de quão rapidamente os pedidos do cliente são enviados, a entrada para os dois pedidos pode fazer com que o fluxo produza ou uma única mensagem de saída de fatura em lote contendo os dois pedidos, ou cada pedido pode ter seu próprio lote e, portanto, duas mensagens de saída de fatura são produzidas.
Para executar a amostra para os pedidos do cliente 111 e 222, as mensagens com as seguintes informações devem ser colocadas nas filas adequadas do WebSphere MQ:
É necessário colocar o arquivo do pedido do número do cliente no diretório criado ao configurar a amostra.
Para executar a amostra para os pedidos do cliente 111 e 222:
Nota: Se o fluxo de mensagens estiver em execução, os arquivos 111.order e 222.order são lidos e, em seguida, quase que imediatamente removidos e, portanto, os arquivos não estarão mais visíveis.
<Costing> <CustomerNumber>111</CustomerNumber> <Product>Toaster</Product> <UnitPrice>4.99</UnitPrice> </Costing>Essa ação também inicia o listener de mensagem Cliente de Teste do WebSphere MQ que é configurado para continuar atendendo as mensagens em todas as filas de saída e de expiração durante 5 minutos. Quando todas as mensagens forem processadas, para encerrar o listener, clique em Parar (o botão quadrado azul na barra de ferramentas de eventos de fluxo de teste da mensagem) a qualquer momento.
<Packaging> <CustomerNumber>111</CustomerNumber> <Postage>1.95</Postage> </Packaging>
<Costing> <CustomerNumber>222</CustomerNumber> <Product>Food Processor</Product> <UnitPrice>35.99</UnitPrice> </Costing>
<Packaging> <CustomerNumber>222</CustomerNumber> <Postage>5.55</Postage> </Packaging>
<Invoices> <Invoice> <InvoiceNumber>111</InvoiceNumber> <Product>Toaster</Product> <TotalCost>6.94</TotalCost> <Delivery>2 days</Delivery> </Invoice> <Invoice> <InvoiceNumber>222</InvoiceNumber> <Product>Food Processor</Product> <TotalCost>77.53</TotalCost> <Delivery>4 days</Delivery> </Invoice> <Date>2009-10-16</Date> <Time>19:24:34</Time> </Invoices>Entretanto, como o nó Collector é acionado a cada 90 minutos, você pode não ter enfileirado as mensagens em um único intervalo, portanto, poderá receber duas mensagens de fatura separadas, uma para a fatura 111 e a outra para a fatura 222.
Salve o conteúdo do arquivo 333.order no diretório criado nas Instruções de Configuração. Por exemplo:
Nota: Se o fluxo de mensagens estiver em execução, o arquivo 333.order é lido e, em seguida, quase que imediatamente removido, portanto, o arquivo não estará mais visível.
<Costing> <CustomerNumber>333</CustomerNumber> <Product>Kettle</Product> <UnitPrice>5.99</UnitPrice> </Costing>Essa ação também inicia o listener de mensagem Cliente de Teste do WebSphere MQ que continua atendendo as mensagens em todas as filas de saída e de expiração durante 5 minutos. Quando todas as mensagens forem processadas, para encerrar o listener, clique em Parar (o botão quadrado azul na barra de ferramentas de eventos de fluxo de teste da mensagem) a qualquer momento.
<Packaging> <CustomerNumber>333</CustomerNumber> <Postage>2.05</Postage> </Packaging>
<Invoices> <Invoice> <InvoiceNumber>333</InvoiceNumber> <Product>Kettle</Product> <TotalCost>8.04</TotalCost> <Delivery>2 days</Delivery> </Invoice> <Date>2009-10-16</Date> <Time>19:28:03</Time> </Invoices>
A mensagem de saída em CollectorNodeSample_111_222_orders.mbtest contém as faturas para os pedidos do cliente 111 e 222. As mensagens de saída possuem o seguinte formato:
<Invoices> <Invoice> <InvoiceNumber>111</InvoiceNumber> <Product>Torradeira</Product> <NumberOrdered>1</NumberOrdered> <TotalCost>8,94</TotalCost> <Delivery>2 dias</Deliver> </Invoice> <Invoice> <InvoiceNumber>222</InvoiceNumber> <Product>Processador de Alimentos</Product> <NumberOrdered>2</NumberOrdered> <TotalCost>75,93</TotalCost> <Delivery>4 dias</Deliver> </Invoice> <Date>10-08-2007</Date> <Time>17:18:22</Time> </Invoices>
A mensagem de saída mostra como o primeiro nó Collector, CollectByCustNum, coletou os pedidos do cliente 111 e 222 para criar duas coletas de mensagens. Cada coleta foi propagada para o primeiro nó Compute, onde os dados da coleta para cada pedido são combinados para se criar uma fatura. Duas mensagens são propagadas pelo nó Compute, uma para cada pedido do cliente. Quando essas mensagens chegarem no segundo nó Collector, CollectUntilTrigger, uma coleta de mensagem é concluída a cada 15 segundos, para que essas duas mensagens sejam incluídas na mesma coleta.
A mensagem de saída em CollectorNodeSample_333_orders.mbtest contém a fatura para o pedido do cliente 333.
<Invoices> <Invoice> <InvoiceNumber>333</InvoiceNumber> <Product>Chaleira</Product> <NumberOrdered>1</NumberOrdered> <TotalCost>9,94</TotalCost> <Delivery>2 dias</Deliver> </Invoice> <Date>10-08-2007</Date> <Time>17:18:22</Time> </Invoices>
O primeiro nó Collector, CollectByCustNum, coleta o pedido do cliente 333 para criar uma coleta. Essa coleta é, então, propagada para o primeiro nó Compute, onde os dados da coleta para o pedido são combinados para criar uma fatura. Em seguida, essa mensagem é propagada para o segundo nó Collector, CollectUntilTrigger. Esse nó conclui uma coleta a cada 15 segundos, de forma que esse pedido chega após a coleta que contém os pedidos 111 e 222 ser concluída e é incluído em uma nova coleta.
A coleta concluída que contém os pedidos 111 e 222 e a coleta concluída que contém o pedido 333 são mantidas no nó Collector CollectUntilTrigger até o intervalo de tempo da TimeoutNotification expirar. Após 300 segundos, quando o tempo limite tiver expirado, todas as coletas concluídas são propagadas para o nó Compute final. Neste nó Compute, as seguintes duas mensagens são geradas:
Ambas as mensagens contêm as mesmas informações de registro de data e hora, pois são propagadas ao último nó Compute ao mesmo tempo, ou seja, quando o intervalo de tempo limite tiver expirado.
Nota: Você pode receber a mensagem de fatura de saída para o pedido do cliente 333 no arquivo CollectorNodeSample_111_222_orders.mbtest e vice-versa, porque as duas mensagens são propagadas a partir do nó Collector ao mesmo tempo e pode chegar na fila de saída COLL_OUT em qualquer ordem.
Três nós Trace são incluídos no fluxo de mensagens CollectorNodeSample. Dois nós são colocados após um nó Collector para mostrar a árvore de mensagens que é criada pelo nó Collector para cada coleta de mensagens. O nó de rastreio Trace1 é colocado após o nó Collector CollectByCustNum e o nó Trace Trace2 é colocado após o nó Collector CollectUntilTrigger. O terceiro nó Trace é colocado após o nó TimeoutNotification TimerTrigger e registra os acionadores do nó TimeoutNotification.
Todos os nós Trace gravam no mesmo arquivo, collectorNodeSample.trc, e incluem o texto de gravação que define onde a saída é proveniente e um registro de data e hora. Este cenário permite analisar esse arquivo de rastreio para observar os eventos sequenciais conforme o cronômetro emite um sinal sonoro e as coletas são formadas e propagadas.
É possível localizar o arquivo de rastreio collectorNodeSample.trc nos seguintes locais:
Os seguintes links para rastrear as saídas mostram exemplos da saída dos dois nós Trace. O início de cada coleta de mensagens é realçado em azul e o início da subárvore de cada terminal Input e os dados da mensagem de cada terminal Input são realçados em vermelho.
Se as mensagens forem enviadas para a fila COLL_EXPIRE1, a coleta de mensagens não foi concluída antes que o tempo limite no nó Collector CollectByCustNum expire. Um motivo pode ter sido o fato de uma das entradas dos dois nós MQInput ou do nó FileInput não ter recebido antes da coleta expirar. O tempo de expiração no nó CollectByCustNum é configurado para 300 segundos. Se você receber uma mensagem na fila COLL_EXPIRE1, tente executar a amostra novamente e insira o arquivo e as mensagens do Websphere MQ dentro do tempo limite de 300 segundos.
Se o evento Chamar atingir o tempo limite sem receber nenhuma mensagem, e não houver nenhuma mensagem em COLL_EXPIRE1, uma mensagem poderá ser colocada no COLL_OUT após o Cliente de Teste parar a espera. Verifique o comprimento da fila com o WebSphere MQ Explorer. É necessário estender o tempo de espera do Cliente de Teste a partir do padrão de 120 segundos para 300 segundos, conforme especificado nas instruções de configuração. Dependendo de quão rapidamente você executa as etapas 1 a 6, poderá demorar mais de 2 minutos para uma mensagem ser produzida.