The aggregation fan-out flow receives the initial input message and restructures it to present a number of requests to a number of target applications.
Before you start:
To complete this task, you must have completed the following task:
To review an example of a fan-out flow, see the Airline sample that is supplied with WebSphere Business Integration Message Broker.
To create the fan-out flow:
This represents the simplest configuration; if appropriate, you can include other nodes between the input node and the AggregateControl node. For example, you might want to store the request for audit purposes (in a Warehouse node), or add a unique identifier to the message (in a Compute node).
If the target applications that handle the subtask requests can extract the information that they require from the single input message, you do not need to include a Compute node to split the message. You can pass the whole input message to all target applications.
If your target applications expect to receive an individual request, not the whole input message, you must include a Compute node to generate each individual subtask output message from the input message. Configure each Compute node in the following way, copying the appropriate subset of the input message to each output message.
The AggregateControl node inserts elements into the LocalEnvironment tree in the input message that the AggregateRequest node reads when the message reaches it. Ensure that the LocalEnvironment is copied from the input message to the output message in the Compute node. This happens automatically unless you specify a value that includes LocalEnvironment (one of All, LocalEnvironment, LocalEnvironment and Message, or Exception and LocalEnvironment).
If you specify one of these values, the broker assumes that you are customizing the Compute node with ESQL that writes to LocalEnvironment, and that you will copy over any elements within that tree that are required in the output message.
If you want to modify LocalEnvironment, add the following statement to copy the required aggregate information from input message to output message:
SET OutputLocalEnvironment.ComIbmAggregateControlNode = InputLocalEnvironment.ComIbmAggregateControlNode;
This must be an output node that supports the request/reply model. You can use the built-in nodes MQeOutput and MQOutput or a user-defined output node that supports request/reply, or a mixture of these nodes (depending on the requirements of the target applications).
The information written by the built-in nodes is queue name, queue manager name, message ID and correlation ID (from the MQMD), and message reply identifier (set to the same value as message ID).
If you are using a user-defined output node, ensure that the node stores equivalent information into WrittenDestination. For more information, see Supported protocols for aggregation.
The AggregateRequest node writes a record in the broker database for each message that it processes. This enables the AggregateReply node to identify which request each response is associated with. If your output nodes are non-transactional, the response message might arrive at the fan-in flow before this database update is committed. Refer to Setting timeouts for aggregation for details on how you can use timeouts to avoid this.
Related concepts
Message flows
LocalEnvironment tree
Message flow aggregation
User-defined Input nodes
User-defined output nodes
Related tasks
Configuring aggregation flows
Creating the aggregation fan-in flow
Associating fan-out and fan-in aggregation flows
Setting timeouts for aggregation
Using multiple AggregateControl nodes
Handling exceptions and database deadlocks in aggregation flows
Designing a message flow
Creating a message flow
Defining message flow content
Generating multiple output messages
Developing user-defined extensions
Related reference
AggregateControl node
AggregateReply node
AggregateRequest node
Compute node
MQeInput node
MQeOutput node
MQInput node
MQOutput node
Notices |
Trademarks |
Downloads |
Library |
Support |
Feedback
![]() ![]() |
ac12290_ |