Debe llevar a cabo las instrucciones de configuración, consulte Configuración del ejemplo Nodo Collector e importe y despliegue el flujo de mensajes, consulte Ejemplo Nodo Collector, antes de ejecutar el ejemplo Nodo Collector.
Nota. Puede que le resulte más fácil de entrada guardar los archivos en un directorio temporal, por lo que cuando ejecute el ejemplo puede copiar y pegar los archivos en el directorio que ha supervisado el nodo FileInput que ya ha establecido. Esta acción asegura que los archivos se han entregado al intermediario dentro del tiempo de espera del proceso por lotes del nodo Collector.
Si encuentra cualquier tipo de problema al ejecutar el ejemplo, consulte Resolución de problemas cuando se ejecutan ejemplos en la documentación de WebSphere Message Broker y consulte la sección "Determinación de problemas" más adelante en este tema.
Cuando haya terminado de configurar el ejemplo, el nodo FileInput, fileinput, supervisa el directorio para ver los detalles de la entrega para los pedidos de cliente 111 y 222.
Nota: Según la rapidez con que se sometan los pedidos de cliente, la entrada de los dos pedidos puede hacer que el flujo genere un solo mensaje de salida de la factura procesada por lotes que contenga dos pedidos, o un pedido puede llegar a su propio proceso por lotes y, por lo tanto, se generarán dos mensajes de salida de facturas.
Para ejecutar el ejemplo para los pedidos de cliente 111 y 222, los mensajes con la siguiente información deben colocarse en las colas de WebSphere MQ adecuadas:
Debe colocar el archivo del pedido con el número de cliente en el directorio que ha creado cuando configuró el ejemplo.
Para ejecutar el ejemplo para los pedidos de cliente 111 y 222:
Nota: si se está ejecutando el flujo de mensajes, se leerán los archivos 111.order y 222.order y, a continuación, casi inmediatamente después se eliminarán y, por lo tanto, los archivos ya no estarán visibles.
<Costing> <CustomerNumber>111</CustomerNumber> <Product>Toaster</Product> <UnitPrice>4.99</UnitPrice> </Costing>Esta acción también inicia el escucha de mensajes WebSphere MQ del Cliente de prueba que se ha configurado para continuar escuchando mensajes en todas las colas de salida y de caducidad durante 5 minutos. Cuando se han procesado todos los mensajes, para finalizar el escucha, pulse Detener (el botón cuadrado azul en la barra de herramientas de sucesos de prueba de flujo de mensajes) cuando lo desee.
<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>Sin embargo, como el nodo Collector se desencadena cada 90 segundos, es posible que no haya colocado en cola los mensajes en un intervalo individual, por lo tanto, puede que no reciba dos mensajes de facturas independientes, uno para la factura 111 y otro para la factura 222.
Guarde el contenido de 333.order en el directorio que ha creado en Instrucciones de configuración. Por ejemplo:
Nota: si está ejecutando el flujo de mensajes, se leerá el archivo 333.order y, a continuación, casi inmediatamente después, se eliminará y, por tanto, el archivo dejará de estar visible.
<Costing> <CustomerNumber>333</CustomerNumber> <Product>Kettle</Product> <UnitPrice>5.99</UnitPrice> </Costing>Esta acción también inicia el escucha de mensajes WebSphere MQ del Cliente de prueba que se ha configurado para que escuche mensajes en todas las colas de salida o de caducidad durante 5 minutos. Cuando se han procesado todos los mensajes, para finalizar el escucha, pulse Detener (el botón cuadrado azul en la barra de herramientas de sucesos de prueba de flujo de mensajes) cuando lo desee.
<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>
El mensaje de salida en CollectorNodeSample_111_222_orders.mbtest contiene las facturas para los pedidos de cliente 111 y 222. Los mensajes de salida tienen el siguiente formato:
<Invoices> <Invoice> <InvoiceNumber>111</InvoiceNumber> <Product>Tostadora</Product> <NumberOrdered>1</NumberOrdered> <TotalCost>8,94</TotalCost> <Delivery>2 días</Deliver> </Invoice> <Invoice> <InvoiceNumber>222</InvoiceNumber> <Product>Robot de cocina</Product> <NumberOrdered>2</NumberOrdered> <TotalCost>75,93</TotalCost> <Delivery>4 días</Deliver> </Invoice> <Date>2007-08-10</Date> <Time>17:18:22</Time> </Invoices>
El mensaje de salida muestra cómo el primer nodo Collector, CollectByCustNum, ha organizado los pedidos de cliente 111 y 222 para crear dos colecciones de mensajes. Cada colección se ha propagado al primer nodo Compute, donde los datos de la colección de cada pedido se combinan para crear una factura. El nodo Compute propaga dos mensajes, uno para cada pedido de cliente. Cuando estos mensajes llegan al segundo nodo Collector, CollectUntilTrigger, se completa una colección de mensajes cada 15 segundos, por lo que estos dos mensajes se añaden a la misma colección.
El mensaje de salida en CollectorNodeSample_333_orders.mbtest contiene la factura para el pedido de cliente 333.
<Invoices> <Invoice> <InvoiceNumber>333</InvoiceNumber> <Product>Hervidor</Product> <NumberOrdered>1</NumberOrdered> <TotalCost>9,94</TotalCost> <Delivery>2 días</Deliver> </Invoice> <Date>2007-08-10</Date> <Time>17:18:22</Time> </Invoices>
El primer nodo Collector, CollectByCustNum, organiza el pedido de cliente 333 para crear una colección. Esta colección se propaga luego al primer nodo Compute, donde los datos de la colección del pedido se combinan para crear una factura. Este mensaje se propaga luego al segundo nodo Collector, CollectUntilTrigger. Este nodo completa una colección cada 15 segundos, por lo que este pedido llega después de que se complete la colección que contiene los pedidos 111 y 222 y se añade a una nueva colección.
La colección completada que contiene los pedidos 111 y 222, y la colección completada que contiene el pedido 333 se retienen ambas en el nodo Collector CollectUntilTrigger hasta que ha transcurrido el intervalo de tiempo del nodo TimeoutNotification. Una vez transcurrido el tiempo de espera, después de 300 segundos, todas las colecciones completadas se propagan al último nodo Compute. En este nodo Compute se generan los dos mensajes siguientes:
Ambos mensajes contienen la misma información de indicación de fecha y hora porque se propagan al último nodo Compute al mismo tiempo, es decir, cuando ha transcurrido el intervalo de tiempo de espera.
Nota: puede recibir el mensaje de factura de salida para el pedido de cliente 333 en CollectorNodeSample_111_222_orders.mbtest y viceversa, porque ambos mensajes se propagan desde el nodo Collector a la vez y pueden llegar a la cola de salida COLL_OUT en cualquier orden.
Se incluyen tres nodos Trace en el flujo de mensajes CollectorNodeSample. Los dos nodos están situados después de un nodo Collector para mostrar el árbol de mensaje que el nodo Collector crea para cada colección de mensajes. El nodo de rastreo Trace1 está situado después del nodo Collector CollectByCustNum y el nodo de rastreo Trace2 está situado después del nodo Collector CollectUntilTrigger. El tercer nodo Trace está situado después del nodo TimeoutNotification TimerTrigger y registra los desencadenantes del nodo TimeoutNotification.
Todos los nodos de rastreo se graban en el mismo archivo, collectorNodeSample.trc, e incluye el texto de grabación que define de donde procede la salida e incluye una indicación de la fecha y hora. Este escenario le permite controlar este archivo de rastreo para observar los sucesos secuenciales mientras se forman y se propagan las marcas de referencia de temporizador y las recopilaciones.
Puede encontrar el archivo de rastreo collectorNodeSample.trc en las ubicaciones siguientes:
Los enlaces siguientes a salidas de rastreos muestran ejemplos de salidas de dos de los nodos Trace. El comienzo de cada colección de mensajes está resaltado en azul, y el comienzo del subárbol para cada terminal de entrada y los datos del mensaje de cada terminal Input (de entrada) están resaltados en rojo.
Si se envían mensajes a la cola COLL_EXPIRE1, la colección de mensajes no se completó antes de que finalizara el tiempo de espera del nodo Collector CollectByCustNum. Una razón puede ser que una de las entradas de los dos nodos MQInput o del nodo FileInput no se recibieran antes de que caducase la colección. El tiempo de caducidad del nodo CollectByCustNum se establece en 300 segundos. Si ha recibido un mensaje en la cola COLL_EXPIRE1, intente ejecutar el ejemplo de nuevo y coloque el archivo y los mensajes de WebSphere MQ dentro de un tiempo de espera de 300 segundos.
Si su suceso de invocación excede el tiempo de espera sin recibir ningún mensaje y no tiene mensajes en COLL_EXPIRE1, es posible colocar un mensaje en COLL_OUT una vez el Cliente de prueba haya dejado de estar a la espera. Compruebe la profundidad de cola con WebSphere MQ Explorer. Debe ampliar el tiempo de espera del Cliente de prueba respecto a su valor predeterminado, de 120 segundos a 300 segundos tal como indican las instrucciones de configuración. En función de lo rápido que lleve a cabo los pasos 1 a 6, puede tardar más de 2 minutos en que se genere el mensaje.