Ejecutar el ejemplo del Manejador de errores
La ejecución del ejemplo consiste en pasar cada mensaje a través de los flujos de mensajes. Puede ejecutar el ejemplo para saber qué sucede en las
siguientes situaciones:
- El mensaje de entrada contiene un número de personal válido
- El mensaje de entrada contiene un número de personal no válido
- El mensaje de entrada contiene un número de personal válido, pero la
cola de salida STAFF_OUT se ha inhibido para colocación
Si desea ver más información, consulte el apartado Acerca del ejemplo de
Manejador de errores.
Si no ha configurado DB2 y WebSphere MQ tal como se explica en las
instrucciones de configuración, no podrá ver los efectos de utilizar distintas unidades de
trabajo en un flujo de mensajes al ejecutar el ejemplo.
Sin embargo, todavía puede explorar los demás aspectos del ejemplo.
Cuando ejecute el ejemplo, puede aparecer un mensaje como, por ejemplo, Referencia de tabla
de datos sin posibilidad de resolución
T.CLASSTYPE en la vista Problemas. Este aviso indica que no se han importado al proyecto
definiciones para las tablas de base de datos. Esto no afecta al comportamiento del ejemplo durante la ejecución.
Si tiene problemas al ejecutar el ejemplo, consulte el apartado
Diagnóstico de problemas.
Ejecutar el ejemplo con el mensaje que contiene un número de personal válido:
Para ejecutar el ejemplo con el mensaje que contiene un número de personal válido:
- Desde el Kit de herramientas de Message Brokers vaya a la perspectiva Desarrollo de aplicación de intermediario.
- En la vista Navegador de recursos, efectúe una doble pulsación en
staffmsg.enqueue. El archivo staffmsg.enqueue se abre en el Editor de colocación en
cola.
- En el Editor de colocación en cola, en el campo Puerto, escriba el número del
puerto en el que el
gestor de colas del intermediario está a la escucha. El número de puerto por omisión para el gestor de colas
WBRK6_DEFAULT_QUEUE_MANAGER es 2414 en la configuración por omisión.
- En el editor de colocación en cola, pulse en Grabar en cola. El mensaje
que contiene el número de personal válido se transfiere a la cola
STAFF_IN.
- Observe el resultado:
- Vea la tabla STAFF en la base de datos STAFFDB utilizando el Centro de control de DB2. La tabla se ha
actualizado con la información de personal del mensaje de entrada.
- Obtenga el mensaje de entrada de la cola STAFF_OUT. El mensaje de entrada se ha grabado en la cola de
salida.
Ejecutar el ejemplo con el mensaje que contiene un número de personal no válido
Para ejecutar el ejemplo con el mensaje que contiene un número de personal no válido:
- Abra invalidstaffmsg.enqueue en el Editor de colocación en cola, entre el
número de puerto y a continuación pulse en Grabar en cola.
- Observe el resultado:
- Vea la tabla ERRORS en la base de datos ERRORDB. Los datos en los campos MSGID y MSGDATA de
la tabla ERRORS es del tipo de datos BLOB, que significa que no puede ver estos datos utilizando el Centro de control
de DB2. Sin embargo, puede ver los datos
utilizando el procesador de línea de mandatos de DB2:
- Inicie el procesador de línea de mandatos de DB2:
- En Windows, pulse en Inicio> Programas > IBM DB2 >
Herramientas de línea de mandatos > Procesador de línea de mandatos
- En Linux, en un indicador de shell, asegúrese de que está ejecutando como sentencia de DB2 y, a
continuación, escriba
db2
- Escriba los siguientes mandatos:
connect to ERRORDB
select * from ERRORS
Se visualizarán los datos de la tabla ERRORS. La tabla se ha actualizado con detalles del error.
- Obtenga el mensaje de entrada de la cola STAFF_FAIL. El mensaje de entrada se ha grabado en la cola
de anomalías.
Ejecutar el ejemplo con un número de personal válido y una cola con la transferencia inhibida
Para ejecutar el ejemplo con el mensaje que contiene un número de personal válido, pero la cola de salida
tiene la transferencia inhibida:
- Cambie la cola STAFF_OUT a inhibida para colocación:
- En WebSphere MQ Explorer, pulse en la carpeta Colas del gestor de colas
WBRK6_DEFAULT_QUEUE_MANAGER para visualizar las colas del gestor de colas.
- Pulse el botón derecho del ratón en la cola STAFF_OUT y a continuación pulse en
Propiedades. Se abre el diálogo Propiedades.
- En el diálogo Propiedades, en la lista Tansferir mensajes, pulse en
Inhibido y después en Aceptar.
- Abra staffmsg.enqueue en el Editor de colocación en cola, entre el número
de puerto y a continuación pulse en Grabar en cola. El mensaje se transfiere a la cola
STAFF_IN.
El número de personal en el mensaje es válido y, por lo tanto, el mensaje pasa por el nodo Update Staff Database. Sin
embargo, no se puede transferir el mensaje a la cola STAFF-OUT y, por lo tanto, se genera un error y el mensaje se
restituye.
- Observe el resultado:
- Vea la tabla STAFF en la base de datos STAFFDB. Como la actualización de la base de datos se ha
restituido, no habrá ninguna entrada nueva en la tabla.
- Vea la tabla ERRORS en la base de datos ERRORDB. La tabla se ha actualizado con detalles del error.
- Obtenga el mensaje de entrada de la cola STAFF_FAIL. El mensaje de entrada se ha grabado en la cola
de anomalías.
Volver a la Página de presentación de ejemplos