This page contains information on:
The SpAggregateCreate and SpAggregateReply nodes are co-operating nodes that together are responsible for the processing of ‘fan-out’ requests and the aggregation of the replies from such requests. A valid aggregation message flow must consist of at least one SpAggregateCreate node and at most one SpAggregateReply node. SpAggregateCreate and SpAggregateReply nodes are deemed to be related to the same aggregate if they contain the same value in their AggregateName property.The SpAggregateReply node has one input terminal called in and four output terminals, out, lateReplies, timedOut and failure. The SpAggregateReply node is responsible for identifying an input reply message and associating it with the original request messages and the aggregate instance to which it belongs. It does this by matching the reply message CorrelId to the request message generated by one of the SpAggregateCreate nodes. The node then decrements the aggregate’s count of outstanding reply messages and either
If an error is encountered, the incoming reply message is sent without change through the fail terminal and a message logged to the MQSI V2 message log.
in | The input terminal that accepts a reply message for processing by the node. |
|
The output terminal to which the aggregated message is propagated. |
lateReplies | The output terminal to which reply messages are sent if no matching aggregate instance is found. The aggregate instance is deleted when the time out value is exceeded without all reply messages having been received. Any subsequent messages for a timed out aggregate will therefore not find a matching aggregate and are therefore deemed to be late reply messages. |
timedOut | The output terminal to which an incomplete aggregate message is sent if the aggregate instance has timed out. Should a time out occur, all reply messages already received are built into a single message and propagated to the timedOut terminal. |
failure | The output terminal to which the message is propagated if an error is encountered while processing the reply message or propagating the aggregated reply message. |
Click on the Advanced tab. By setting the destination type for the aggregated
reply, you can control the characteristics of the aggregated reply message.
The permissible values are described in the table below. You can also specify
a sequence of characters to be inserted between each of the individual
replies in the aggregated reply message. This is useful in cases where
the replies are variable length and must be treated as BLOB type messages.
Property | Default | Description |
AggregateName | Identifier of the deployed aggregate. There must be one SpAggregateReply node within the same message flow with this identifier. | |
ReplyTimeoutSeconds | 15 | Indicates the order in which reply messages should be assembled into the aggregated reply message. Thus, a request message with SequenceNumber set to 25 will be appear before one with its SequenceNumber set to 30. |
ReplyToQueue | The name of a local queue to which the reply messages are to be sent prior to being aggregated. | |
AggregatedReplyDestination | default | The value set for this property controls
how the output message will be built. It can take 3 possible values
|
AggregatedReplyDataType | BLOB | The value set for this property controls how the aggregated reply message
will be built. It can take 2 possible values
|
AggregatedReplyLabelName | A character string which is to be used to build tag names for replies
in an XML format aggregated reply. The actual name used will be a
combination of the string specified together with the sequence number of
the reply. For example, if AggregatedReplyLabelName='MyReply' and
the reply has SequenceNumber=20, then the derived tag name will be 'MyReply20'.
The value is also used to create the top-level tag in the reply message,
e.g.
This property is mandatory if AggregatedReplyDataType=XML. |
|
SeparatorString | A sequence of characters which will
be inserted between each of the individual reply messages in the aggregated
reply.
This property is ignored if AggregatedReplyDataType=XML. |
|
HexSeparatorString | A sequence of hexadecimal characters
(0-9 a-f A-F) representing a character sequence to be inserted between
each of the individual reply messages in the aggregated reply. This can
be used to specify non-printable characters.
This property is ignored if AggregatedReplyDataType=XML. |
|
Persistent | false | A boolean value that controls the
persistence of the aggregate instances. The default value of 'false'
indicates that the aggregate data will be stored in memory only, and consequently,
should the broker fail during the processing of an aggregate, any
aggregate data will be irretrievably lost.
If the property is set to 'true', the aggregator will write recovery messages to a local queue when processing aggregate messages in the SpAggregateCreate and SpAggregateReply nodes. The recovery queue is named SYSTEM.BROKER.AGGREGATOR.RECOVERY.QUEUE and must be defined as a local queue on the brokers queue manager. Recovery messages are written transactionally as part of the existing message flow transaction. You should therefore ensure that if this property is set to 'true', all input and output message operations in the message flow are defined to be transactional. During the deployment of a message flow containing a recoverable aggregate configuration, the aggregator plug-in reads the recovery queue and any incomplete aggregates are reconstructed for subsequent processing by the aggregator. |
© IBM Corporation 2001. All Rights Reserved