A message flow runs in a single transaction, which is started when data is received by an input node, and can be committed or rolled back when all processing has completed.
How individual nodes, and the message flow itself, participate in transactions depends on the way you design and develop the message flow, and the level of additional configuration you perform:
When you have finished message flow design and development, you can deploy the BAR file to the broker or brokers on which you want the message flow to run. However, if you have configured your message flows for globally coordinated transactions, additional configuration might be required. You, or your system administrator, must ensure that your broker environment, the transaction manager, and the participating resource managers are all correctly configured to support coordinated transactions, before you run the message flow. For details of what might be required, see Configuring global coordination of transactions (two-phase commit).
If the broker environment, the transaction manager, and the external resource managers are not correctly configured for global coordination, the message flow transactions will not be globally coordinated.
You can configure the nodes in your message flow to determine how the work taken by each node participates in the message flow transaction. Most nodes for which transactionality is relevant have one or more properties that you can configure to dictate behavior. Therefore, you can decide for each individual node whether it participates in the message flow transaction, or operates independently. Typically, these properties include an option of Automatic, so that subsequent nodes in the flow assume the characteristics set by the input node.
Nodes that support transports that cannot participate in transactions might have other properties to determine what the broker does when a message flow failure occurs. For example, the FileInput node has a set of Retry properties that you can set to determine failure behavior.
A few nodes that interact with external resources do not provide properties; typically, these nodes are included in the message flow transactions, but some exceptions exist; you must check the section that describes properties and how to set them, for each node that you include in your flow to ensure that you understand what action is taken.
If you configure a node not to participate in the message flow transaction, the actions that it takes are committed, or rolled back, when the node exits. No further action is taken when the flow itself completes.
To configure message flow behavior by setting node properties:
When you have configured your message flow, you must add it to a BAR file before you can deploy it. When you add it to a BAR file, the message flow is compiled, and additional properties are available for configuration.
The most important property concerned with transactions on distributed systems is Coordinated Transaction. By default, this property is cleared (not selected), which means the message flow is partially coordinated and the broker commits or rolls back the message flow transaction. If you select this property, the input node calls the external transaction manager WebSphere MQ for commit and rollback processing.
This property is ignored when the message flow is deployed to a broker that is running on a z/OS® system.
To configure message flow properties: