Using multiple AggregateControl nodes

You might find it useful to design a fan-out flow with multiple AggregateControl nodes, all with the same value set for the property Aggregate Name, but with different values for the Timeout property. This is the only situation in which you can reuse an Aggregate Name.

Before you start:

To complete this task, you must have completed the following task:

For example, if you have created an aggregation flow that books a business trip, you might have some requests that need a reply within two days, but other, more urgent requests, that need a reply within two hours.

To configure an aggregation flow that uses multiple AggregateControl nodes:

  1. Switch to the Broker Application Development perspective.
  2. Create or open the fan-out message flow.
  3. Configure the required number of AggregateControl nodes. Set the Basic property Aggregate Name of each node to the same value. For example, include two nodes and enter the name JOURNEY as the Aggregate Name for both.
  4. Set the value for the Timeout property in each node to a different value. For example, set the Timeout in one node to two hours; set the Timeout in the second node to two days.
  5. Configure a Filter node to receive incoming requests, check their content, and route them to the correct AggregateControl node.
  6. Connect the nodes together to achieve the required result. For example, if you have configured the Filter node to test for requests with a priority field set to urgent, connect the true terminal to the AggregateControl node with the short timeout. Connect the false terminal to the AggregateControl node with the longer timeout. Connect the out terminals of the AggregateControl nodes to the following nodes in the fan-out flow.

    You must connect the two AggregateControl nodes in parallel, not in sequence. This means that you must connect both to the Filter node (one to the true terminal, one to the false), and both to the downstream nodes that handle the requests for the fan-out. Each input message must pass through only one of the AggregateControl nodes. If you connect the nodes such that a single message is processed by more than one AggregateControl node, duplicate records are created in the database by the AggregateRequest node and subsequent processing results are unpredictable.

The following diagram shows an example fan-out message flow that uses this technique.


A fan-out message flow that uses a Filter node to determine the urgency of an inbound request, and routes the request based on the result of the test to one of two AggregateControl nodes that set a shorter or longer timeout value (this determines the length of time for which responses are waited).
Related concepts
Message flows overview
Message flow aggregation
Related tasks
Configuring aggregation flows
Creating the aggregation fan-out flow
Creating the aggregation fan-in flow
Associating fan-out and fan-in aggregation flows
Using control messages in aggregation flows
Avoiding thread starvation on fan-in flows
Setting timeouts for aggregation
Handling exceptions in aggregation flows
Designing a message flow
Creating a message flow
Defining message flow content
Related reference
AggregateControl node
AggregateReply node
AggregateRequest node