Acerca del flujo de mensajes de
Direccionamiento de base de datos simplificado
El flujo de mensajes de Direccionamiento de base de datos
simplificado recupera detalles de empleado de una base de datos si los
detalles no están ya en el contenido del mensaje de entrada.
Estos detalles de
empleado se recuperan a partir del número de empleado que se proporciona
en el mensaje de entrada.
A continuación, el flujo de mensajes direcciona
un mensaje de respuesta basado en más información recuperada a partir del
jefe de un empleado.
Según el contenido del mensaje de entrada, se cumplen distintas condiciones de direccionamiento.
Pueden
enviarse mensajes a una o más de las siguientes colas de salida,
dependiendo de las condiciones de direccionamiento que se hayan cumplido:
- SIMPLERROUTEDB_SNRSTAFF
- SIMPLERROUTEDB_ORDERCLOCK
- SIMPLERROUTEDB_KEYNOTFOUND
- SIMPLERROUTEDB_DEFAULT
El diagrama siguiente muestra el flujo de mensajes de Direccionamiento
de base de datos simplificado.

La tabla siguiente lista los tipos de nodos que se utilizan en el flujo de mensajes Direccionamiento de base de datos simplificado:
Tipo de nodo |
Nombre de nodo |
MQInput |
MQInput |
Route |
Route |
DatabaseRetrieve |
DatabaseRetrieve
|
DatabaseRoute |
DatabaseRoute |
MQOutput |
FailureQ, KeyNotFoundQ, SeniorStaffQ, OrderClockQ, DefaultQ |
Trace |
Trace |
Para obtener más información, consulte
Nodos incorporados
en la documentación de WebSphere Message Broker.
El flujo de mensajes de Direccionamiento de base de datos
simplificado realiza las siguientes acciones:
- El nodo MQInput obtiene el mensaje de entrada XML de la cola SIMPLERROUTEDB_IN.
El mensaje se pasa al nodo Route.
- El nodo Route comprueba el contenido del mensaje de
entrada para ver si el campo de departamento de trabajo del empleado está
disponible.
Si el campo está disponible, el mensaje se direcciona a través del terminal Match al nodo DatabaseRoute.
Si el campo no está disponible, se deben recuperar los detalles de empleado y el mensaje se direccionará a través del terminal
Default al nodo DatabaseRetrieve.
- El nodo DatabaseRetrieve consulta la tabla EMPLOYEE en la base de datos para recuperar los detalles de empleado.
El número de empleado
del mensaje se utiliza como la clave de la búsqueda de base de datos.
Las
propiedades que están establecidas en el nodo DatabaseRetrieve especifican
qué valores se han de recuperar de la consulta de base de datos en la tabla
EMPLOYEE, y dónde insertar estos valores en el mensaje de salida.
- Si el número de empleado se encuentra en la base de datos, el
mensaje se llena con valores de la base de datos.
El mensaje se pasa luego
al nodo DatabaseRoute.
- Si el número de empleado no coincide con un valor de la base de datos, el mensaje de entrada original se pasa a través del terminal keyNotFound al nodo KeyNotFoundQ.
- El nodo DatabaseRoute realiza una operación JOIN para comparar los detalles de un empleado y su jefe.
La operación JOIN consta de los pasos siguientes:
- El valor de departamento de trabajo del mensaje de entrada
se utiliza en una consulta de base de datos para localizar el jefe de
departamento en la tabla DEPARTMENT.
- Se recupera el valor de columna de número de jefe
(DEPARTMENT.MGRNUM) y se utiliza para enlazar a la tabla EMPLOYEE para
localizar un registro de empleado específico.
Por lo tanto, DEPARTMENT.MGRNUM enlaza a EMPLOYEE.EMPNUM.
El registro de empleado localizado hace
referencia al registro de empleado para el jefe del empleado.
- Los valores que se especifican en la consulta de base de datos para el nodo se devuelven para el jefe.
- A continuación se procesan las expresiones de filtro del nodo
DatabaseRoute.
Las expresiones son true o false.
Las
expresiones de filtro se procesan de la siguiente manera:
- Si el valor de departamento de trabajo del empleado no coincide
con un registro de la tabla DEPARTMENT, el mensaje se pasa a través del
terminal KeyNotFound al nodo KeyNotFoundQ.
- Si la edad en años del empleado es superior a la de su jefe, y
el apellido del jefe es 'KWAN', el nodo DatabaseRoute pasa el mensaje de
entrada a través del nodo OlderThanMe al nodo SeniorStaffQ.
A
continuación se evalúa la siguiente expresión de filtro.
- Si la antigüedad en años de servicio del empleado del mensaje de entrada es superior a diez, el nodo DatabaseRoute pasa el mensaje de
entrada, a través del terminal TenYearsService, al nodo OrderClockQ.
- Si ninguna de las dos expresiones de filtro es verdadera, el nodo DatabaseRoute pasa el mensaje de entrada a través del terminal Default al nodo DefaultQ.
- Si se produce una anomalía de proceso en cualquiera de los nodos, el
mensaje de entrada se pasa a través del terminal Failure (de anomalías) de
los nodos al nodo Trace para el proceso de errores.
Los nodos de base de datos que se utilizan en el ejemplo del flujo de mensajes Direccionamiento de base de datos simplificado leen la información de la base de datos, pero no realizan actualizaciones en los datos dentro de la base de datos.
Volver a Acerca del ejemplo Direccionamiento de base de datos