Puede configurar un flujo de mensajes que incluya la interacción con una base de datos externa u otro recurso recuperable para que todo el proceso del flujo de mensajes se coordine en una sola transacción global. Esta coordinación asegura que todo el proceso se complete satisfactoriamente o que no se realice proceso alguno. La transacción se confirma (si todo el proceso es satisfactorio) o restituye (si al menos una parte del proceso no es satisfactoria). Por lo tanto, todos los recursos afectados (colas, bases de datos, etcétera) se mantienen en un estado coherente y se conserva la integridad de datos.
Para configurar un flujo de mensajes como coordinado, establezca la propiedad Coordinado en el flujo de mensajes.
Para algunos nodos de entrada como, por ejemplo, los nodos MQInput o SCADAInput, establezca la propiedad Modalidad de transacción de los nodos del flujo en Automática. La opción Automática hace que los mensajes pasen a formar parte de la transacción global, y marca el flujo de mensajes como transaccional si el mensaje de entrada es persistente, o como no coordinado si el mensaje de entrada no es persistente. Los nodos subsiguientes del flujo que establecen la propiedad Modalidad de transacción en Automática se incluyen en la transacción global si el nodo de entrada marca el flujo como transaccional.
La coordinación de transacciones de flujos de mensajes la proporciona WebSphere MQ en sistemas distribuidos y RRS en sistemas z/OS. Los flujos de mensajes siempre están coordinados globalmente en z/OS, independientemente del valor de la propiedad Coordinado del flujo de mensajes.
Los flujos no coordinados son flujos para los que no se ha establecido la propiedad Coordinado. Las actualizaciones en los recursos utilizados por un flujo no coordinado las gestionan los gestores de recursos independientes. Algunos gestores de recursos, por ejemplo WebSphere MQ, permiten que las actualizaciones se realicen de forma no transaccional o como parte de una transacción específica de recurso. Otros gestores de recursos, por ejemplo gestores de bases de datos, utilizan siempre una transacción específica de recurso. Una transacción específica de recurso es una transacción con un ámbito que está limitado a los recursos que son propiedad de un solo gestor de recursos, por ejemplo un gestor de bases de datos o de colas.
Las transacciones específicas de recurso se utilizan normalmente cuando sólo se utiliza un tipo de recurso recuperable en un flujo. Un ejemplo de flujo de este tipo sería uno que contenga un nodo MQInput y un nodo MQOutput, pero que no acceda a ninguna base de datos. No utilice transacciones específicas de recurso cuando exista más de un recurso y deba mantenerse la integridad de datos.
Las actualizaciones que se realizan en un recurso al que se accede de forma no transaccional se confirman inmediatamente. Un nodo MQInput que esté configurado para ser no transaccional elimina los mensajes de la cola inmediatamente; si el flujo falla; los mensajes se pierden.
Establezca la propiedad Modalidad de transacción en Automática para que algunos nodos de entrada (como, por ejemplo, MQInput o SCADAInput) formen parte de una transacción dependiendo de la persistencia del mensaje de entrada. Si el mensaje de entrada es persistente, los mensajes pasan a formar parte de la transacción, y el flujo se marca como transaccional. Si el mensaje no es persistente, el flujo se marca como no transaccional.