El comportamiento del subflujo Route depende del valor del parámetro de patrón Direccionamiento.
Si se ha seleccionado Sin direccionamiento, se crea y configura un único nodo MQOutput con los valores de los parámetros de patrón Gestor de colas de salida y Cola de salida. El flujo de direccionamiento es un subflujo que incluye un nodo Passthrough. El nodo Failure está incluido por lo que este subflujo es coherente con todos los demás tipos de subflujo de direccionamiento.
Un grupo de cuatro parámetros que define una ruta:
Para cada ruta que se define, se crean y se conectan un terminal de salida para el subflujo Route y un nodo MQOutput.
El subflujo Route contiene un nodo Route que se ha configurado con un filtro que direcciona al terminal de salida si se cumple la condición KeyLocation = Key Value. Si un elemento de mensaje no coincide con ninguna de las rutas, el error se anota en una variable de entorno y el mensaje se pasa al terminal de anomalías.
Pueden especificarse varias rutas mediante Especificar rutas.
Si se selecciona este valor, se crea un solo terminal de salida para el subflujo Route y este terminal está conectado a un solo nodo MQOutput que se ha configurado para tener una lista de destinos.
El subflujo de direccionamiento comprueba si es necesario actualizar la memoria caché verificando si el valor de la variable de fila compartida CacheQueueTable.valid se ha establecido en NULL. Se ha establecido en NULL cuando el flujo se inicia y también si Renovación de memoria caché está habilitada y se ha enviado un mensaje de renovación a Renovar cola. Los mensajes de renovación establecen el valor en NULL.
Si es necesario renovar la memoria caché, se busca en la tabla ROUTING_TABLE del origen de datos, especificada en el parámetro de patrón Origen de datos de direccionamiento, para encontrar todas las filas que coinciden con el contexto de direccionamiento de este flujo. El contexto de direccionamiento se define mediante el parámetro de patrón Contexto de direccionamiento, y las filas en las que el campo ROUTING_CONTEXT coincida con este parámetro se leen en una memoria caché en memoria, acción que se efectúa atómicamente, para evitar que se realicen búsquedas mientras las memoria caché se encuentre en un estado incoherente.
La estructura de los datos almacenados en la memoria caché es:
VARIABLE1, VARIABLE2, QUEUE_MANAGER, QUEUE_NAME
La búsqueda se realiza extrayendo uno o dos valores de clave del elemento de mensaje utilizando expresiones ESQL que están definidas como parámetros de patrón. Defina los parámetros de patrón utilizando una sentencia en el formato siguiente:
SET KEY = <parámetro de patrón>
Si se especifica una sola clave para seleccionar una o varias filas de los datos de direccionamiento, utilice una cláusula WHERE:
WHERE S.VARIABLE1 = KEY1
Si se especifica una segunda clave, la cláusula WHERE utilizada para la selección es:
WHERE S.VARIABLE1 = KEY1 y S.VARIABLE2 = KEY2
Esta selección coloca el gestor de colas y la cola en el entorno local que utiliza el nodo MQOutput. Pueden devolverse varias filas y los datos de destino incluyen todos los destinos seleccionados. Si no se encuentra ninguna coincidencia, se produce un error de direccionamiento y el mensaje se pasa al terminal de anomalías del subflujo Route.