Ejecutar el ejemplo de Direccionamiento de base de datos simplificado
Puede ejecutar el ejemplo de Direccionamiento de base de datos
simplificado para demostrar las tareas siguientes:
- Utilice los nodos DatabaseRetrieve y DatabaseRoute para procesar el empleado Dr. David Brown. El señor David Brown reúne las condiciones para recibir un reloj como regalo en reconocimiento a sus diez años de servicio y está registrado como miembro veterano
del personal porque supera en edad a su jefa Sally Kwan. Esta tarea utiliza el mensaje
de prueba de usedbretrievenode.mbtest.
- Utilice los nodos DatabaseRetrieve y DatabaseRoute para procesar la
empleada Sra. Sally Kwan. La señora Sally Kwan no reúne las condiciones para recibir
un reloj como regalo en reconocimiento por sus diez años de servicio y no está registrada como miembro
veterano del personal ya que no puede ser más mayor que ella misma. Esta tarea utiliza el
mensaje de prueba de usedbretrievenode_nofiltermatch.mbtest.
- Pase por alto el nodo DatabaseRetrieve pero utilice el nodo
DatabaseRoute para procesar el empleado Sr. David Brown.
El mensaje ya contiene los detalles de empleado del señor David Brown. El señor David Brown reúne las condiciones para recibir un reloj como regalo en reconocimiento a sus diez años de servicio y está registrado como miembro veterano
del personal porque supera en edad a su jefa Sally Kwan. Esta tarea utiliza el mensaje
de prueba de bypassdbretrievenode.mbtest.
- Pase por alto el nodo DatabaseRetrieve pero utilice el nodo
DatabaseRoute para procesar el empleado Sr. David Brown.
El mensaje ya
contiene los detalles de empleado del señor David Brown, pero es defectuoso porque tiene un
valor de departamento de trabajo no válido. El valor del departamento de trabajo del señor David Brown hace que una búsqueda en los detalles de empleado de su jefe no tenga éxito, lo que da como resultado que el mensaje se anote en la cola keyNotFound. Esta tarea utiliza el
mensaje de prueba de bypassdbretrievenode_keynotfound.mbtest.
Para cada tarea, coloque un mensaje en la misma cola de WebSphere MQ
SIMPLERROUTEDB_IN. El flujo de mensajes SimplifiedDBRouting obtiene el
mensaje de la cola y lo procesa. Las siguientes instrucciones explican
cómo colocar los mensajes XML autodefinidos proporcionados en el flujo de
mensajes del ejemplo de Direccionamiento de base de datos simplificado y
qué salida puede esperar recibir del flujo de mensajes en cada caso. Puesto
que los mensajes no actualizan la base de datos SROUTEDB, puede enviar
cualquiera de los cuatro mensajes al flujo de mensajes en cualquier orden.
Puede ver el contenido de la base de datos de ejemplo. Para bases de
datos DB2, utilice las herramientas proporcionadas por DB2; por ejemplo,
el Centro de control de DB2.
Cuando ejecute el ejemplo, es posible que vea mensajes de error o de
aviso similares a los siguientes: No se ha encontrado el
elemento de esquema XMLNSC y La expresión obligatoria no
tiene una sintaxis válida, en la vista Problemas de WebSphere Message Broker Toolkit. Estos avisos o errores indican que las expresiones
XPath de las propiedades de algunos nodos del flujo de mensajes no cumplen los requisitos de validación
XPath que se establecen como preferencias en WebSphere Message Broker Toolkit. Estos mensajes no afectan al comportamiento del ejemplo en tiempo de ejecución. Sin embargo, si las
preferencias de validación de XPath están establecidas de tal manera que se
visualicen mensajes de error en la vista Problemas, no puede añadir el
flujo de mensajes a un archivo de archivador de intermediario ni reconstruir un
archivo de archivador de intermediario que ya contenga el flujo de mensajes. Es
posible que tampoco pueda ver el flujo de mensajes en el Editor de flujos de
mensajes. Para establecer las preferencias de validación de XPath de modo
que sean menos estrictas, y para visualizar avisos en lugar de errores:
- Pulse Ventana > Preferencias y expanda Desarrollo
de intermediario.
- Expanda XPath y pulse
Validación.
- Seleccione Aviso en el menú para
cada una de las opciones de validación.
- Pulse Aceptar.
- Guarde el flujo de mensajes después de cambiar las preferencias de forma que aparezcan avisos en lugar de errores. Cuando
guarde el flujo de mensajes, éste se volverá a validar.
Si aparecen mensajes en la cola SIMPLERROUTEDB_FAILURE cuando ejecute
el ejemplo, compruebe que los valores de proveedor JDBC DBMS
predeterminados que se establecen para el alias de JDBCProvider SIMPLERROUTEDB
en el registro del intermediario sean correctos para su entorno.
Para obtener más información, consulte Crear una entrada de proveedor JDBC para la base de datos DB2 o Crear una entrada de proveedor JDBC para una base de datos Oracle.
Si encuentra cualquier otro problema al ejecutar el ejemplo, consulte Resolución de problemas cuando se ejecutan ejemplos en la documentación de WebSphere Message Broker.
Ejecutar el flujo de mensajes SimplifiedDBRouting, con el mensaje de prueba que está en usedbretrievenode.mbtest
El flujo de mensajes SimplifiedDBRouting recupera los detalles de
empleado sobre el empleado especificado en el campo EmpNumber (Número de
empleado) del mensaje de entrada. El flujo de mensajes modifica el
mensaje, y compara finalmente el contenido del mensaje con los detalles
del jefe del empleado en una segunda búsqueda de base de datos.
Para ejecutar el flujo de mensajes SimplifiedDBRouting:
- En la vista Desarrollo de intermediario, expanda el proyecto
Simplified Database Routing Message Flows y
luego efectúe una doble pulsación en el archivo usedbretrievenode.mbtest para abrirlo en el
Cliente de prueba.
- En el cliente de prueba, pulse Colocar en cola.
- Pulse Enviar mensaje. Este mensaje de
entrada se coloca en la cola SIMPLERROUTEDB_IN.
- En el Cliente de prueba, pulse el primer Extraer de la cola existente.
- Pulse Obtener mensaje para leer un
mensaje de la cola SIMPLERROUTEDB_SNRSTAFF.
Este mensaje de respuesta confirma que el señor David Brown (empleado: 000010)
debe registrarse y ser reconocido como miembro veterano del personal dentro de la empresa.
El ejemplo siguiente muestra el formato de un mensaje de respuesta:
<EmpRecord>
<EmpNumber>000010</EmpNumber>
<FirstName>DAVID</FirstName>
<LastName>BROWN</LastName>
<YrsInService>10</YrsInService>
<AgeInYears>54</AgeInYears>
<WorkDept>D01</WorkDept>
</EmpRecord>
- En el Cliente de prueba, pulse el segundo Extraer de la cola existente.
- Pulse Obtener mensaje para leer un
mensaje de la cola SIMPLERROUTEDB_ORDERCLOCK.
Este mensaje de respuesta confirma que el jefe del señor David Brown (empleado:
000010) debe entregarle un reloj en reconocimiento a sus diez años de servicio en la empresa.
El ejemplo siguiente muestra el formato de un mensaje de respuesta:
<EmpRecord>
<EmpNumber>000010</EmpNumber>
<FirstName>DAVID</FirstName>
<LastName>BROWN</LastName>
<YrsInService>10</YrsInService>
<AgeInYears>54</AgeInYears>
<WorkDept>D01</WorkDept>
</EmpRecord>
Ejecutar el flujo de mensajes SimplifiedDBRouting, con el mensaje de prueba que está en usedbretrievenode_nofiltermatch.mbtest
El flujo de mensajes SimplifiedDBRouting recupera detalles de empleado
sobre el empleado especificado en el campo EmpNumber (Número de
empleado) del mensaje de entrada. El flujo de mensajes modifica el
mensaje, y compara finalmente el contenido del mensaje con los detalles
del jefe del empleado en una segunda búsqueda de base de datos.
Para ejecutar el flujo de mensajes SimplifiedDBRouting:
- En la vista Desarrollo de intermediario, expanda el proyecto
Simplified Database Routing Message Flows y
luego efectúe una doble pulsación en el archivo usedbretrievenode_nofiltermatch.mbtest para
abrirlo en el Cliente de prueba.
- En el cliente de prueba, pulse Colocar en cola.
- Pulse Enviar mensaje. Este mensaje de
entrada se coloca en la cola SIMPLERROUTEDB_IN.
- En el Cliente de prueba, pulse Extraer de la cola.
- Pulse Obtener mensaje para leer un
mensaje de la cola SIMPLERROUTEDB_DEFAULT.
Este mensaje de respuesta confirma que la señora Sally Kwan (empleada: 000020)
no cumple ninguna de las expresiones de filtro del nodo DatabaseRoute
ya que tiene menos de diez años de servicio y es también la jefa de su
departamento de trabajo y, por tanto, no es mayor que ella misma. Como resultado, el mensaje de entrada modificado se dirige a la cola predeterminada.
El ejemplo siguiente muestra el formato de un mensaje de respuesta:
<EmpRecord>
<EmpNumber>000020</EmpNumber>
<FirstName>SALLY</FirstName>
<LastName>KWAN</LastName>
<YrsInService>9</YrsInService>
<AgeInYears>27</AgeInYears>
<WorkDept>D00</WorkDept>
</EmpRecord>
Ejecutar el flujo de mensajes SimplifiedDBRouting, con el mensaje de prueba que está en bypassdbretrievenode.mbtest
El flujo de mensajes SimplifiedDBRouting compara los detalles de empleado, especificados en el mensaje de entrada, con los detalles de su jefe, tomados a partir de una búsqueda en una base de datos.
Para ejecutar el flujo de mensajes SimplifiedDBRouting:
- En la vista Desarrollo de intermediario, expanda el proyecto
Simplified Database Routing Message Flows y
luego pulse dos veces el archivo bypassdbretrievenode.mbtest para abrirlo en el
Cliente de prueba.
- En el cliente de prueba, pulse Colocar en cola.
- Pulse Enviar mensaje. Este mensaje de
entrada se coloca en la cola SIMPLERROUTEDB_IN.
- En el Cliente de prueba, pulse el primer Extraer de la cola existente.
- Pulse Obtener mensaje para leer un
mensaje de la cola SIMPLERROUTEDB_SNRSTAFF.
Este mensaje de respuesta confirma que el señor David Brown (empleado: 000010)
debe registrarse y ser reconocido como miembro veterano del personal dentro de la empresa.
El ejemplo siguiente muestra el formato de un mensaje de respuesta:
<EmpRecord>
<EmpNumber>000010</EmpNumber>
<FirstName>DAVID</FirstName>
<LastName>BROWN</LastName>
<YrsInService>10</YrsInService>
<AgeInYears>54</AgeInYears>
<WorkDept>D01</WorkDept>
</EmpRecord>
- En el Cliente de prueba, pulse el segundo Extraer de la cola existente.
- Pulse Obtener mensaje para leer un
mensaje de la cola SIMPLERROUTEDB_ORDERCLOCK.
Este mensaje de respuesta confirma que a el señor
David Brown (empleado: 000010) su jefe de debe dar un reloj, como premio a sus diez años de servicio en la empresa.
El ejemplo siguiente muestra el formato de un mensaje de respuesta:
<EmpRecord>
<EmpNumber>000010</EmpNumber>
<FirstName>DAVID</FirstName>
<LastName>BROWN</LastName>
<YrsInService>10</YrsInService>
<AgeInYears>54</AgeInYears>
<WorkDept>D01</WorkDept>
</EmpRecord>
Ejecutar el flujo de mensajes SimplifiedDBRouting, con el mensaje de prueba que está en bypassdbretrievenode_keynotfound.mbtest
El flujo de mensajes SimplifiedDBRouting compara los detalles de empleado, especificados en el mensaje de entrada, con los detalles de su jefe, tomados a partir de una búsqueda en una base de datos.
Para ejecutar el flujo de mensajes SimplifiedDBRouting:
- En la vista Desarrollo de intermediario, expanda el proyecto
Simplified Database Routing Message Flows y
luego efectúe una doble pulsación en el archivo bypassdbretrievenode_keynotfound.mbtest para
abrirlo en el Cliente de prueba.
- En el cliente de prueba, pulse Colocar en cola.
- Pulse Enviar mensaje. Este mensaje de
entrada se coloca en la cola SIMPLERROUTEDB_IN.
- En el Cliente de prueba, pulse Extraer de la cola.
- Pulse Obtener mensaje para leer un
mensaje de la cola SIMPLERROUTEDB_KEYNOTFOUND.
Este mensaje de respuesta confirma que el señor David Brown (empleado: 000010)
tiene un valor de departamento de trabajo no válido.
Como
resultado, el mensaje de entrada no modificado se direcciona a la cola keyNotFound.
El ejemplo siguiente muestra el formato de un mensaje de respuesta:
<EmpRecord>
<EmpNumber>000010</EmpNumber>
<FirstName>DAVID</FirstName>
<LastName>BROWN</LastName>
<YrsInService>10</YrsInService>
<AgeInYears>54</AgeInYears>
<WorkDept>E00</WorkDept>
</EmpRecord>
Volver a la página inicial del ejemplo