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. You can reuse
an aggregate name in only this situation.
About this task
You might want to use multiple AggregateControl nodes if,
for example, you have created an aggregation flow that books a business
trip, and you might have some requests that need a reply within two
days. However, other, more urgent requests, need a reply within two
hours.
To configure an aggregation flow that uses multiple AggregateControl nodes, complete
the following steps.
Procedure
- Create or open the fan-out message flow.
- 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.
- 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.
- Configure a Filter node to receive incoming requests, check
their content, and route them to the correct AggregateControl node.
- 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.
Results
The following diagram shows an example
fan-out message flow that uses this technique.