Configuring MQ nodes for transactions
When you define an MQInput, MQGet, MQOutput, or MQReply node, the options that you select for the properties define behavior for the transaction.
Before you begin
Review Configuring transactionality for message flows to understand what configuration is required for transactionality.
About this task
- For local transactions, you can have multiple queue managers participating in a message flow. Connections to queue managers can be local, client, or both.
- For globally coordinated
transactions,
you must specify a local queue manager on the integration node. This queue manager is the global
transaction manager, and no other IBM MQ resources can be used in
the message flow. For more information about configuring for globally coordinated
transactions, see Configuring global coordination of transactions (two-phase commit).
If the connection is lost to the queue manager that was specified on the integration node in a globally-coordinated transaction, the integration node enters a standby state until the queue manager becomes available again. If the integration node was configured by using an MQ Service, the integration node is stopped.
- The unavailable MQ resource was not required and was not used, because exception handling was defined in the message flow, so the inflight transaction was successful and committed.
- The unavailable MQ resource was required, and the message flow cannot succeed without it, so the inflight transaction was rolled back.
Review how to set the properties for MQ nodes to determine how they participate in transactions.
Configuring transactions for MQInput and MQGet nodes
Procedure
Configuring transactions for MQOutput and MQReply nodes
Procedure
- If you set the property to Automatic, the node participates in a transaction. If there is no inflight transaction, processed messages are committed immediately.
- If you set the property to Yes, the node participates in the transaction currently inflight. If there is no transaction, a new transaction is started for this node, and all other nodes that are connected to its output terminal.
- If you set the property to No, an inflight message is immediately committed.
What to do next
To understand when you might want to use a globally coordinated transaction for your message flow, see the Coordinating transactions section in the topic Message flow transactions.