You can use two properties of the aggregation nodes to set timeout values for aggregated message processing.
If an Aggregation configurable service exists with the same name as an integration server, it can be used for every aggregation in the integration server. However, if a configurable service exists with the same name as an aggregation in the integration server, it is used for that specific aggregation. In each case, the value of the timeoutSeconds property of the configurable service overrides the Timeout property of the AggregateControl node.
Unlike the Timeout property of the AggregateControl node, you can set the timeoutSeconds property value to one decimal place, allowing timeout intervals of less than one second if required. Values of 0.5, 1.7, and 100.1 are all valid, but a value of 0.22 is invalid.
When setting timeout intervals of less than one second, it is recommended that the queuePrefix property is set up and the timeoutThreads property is set to a minimum of 2. This is to make sure that the timeout processing has sufficient resources to meet the timeout requirements. Despite this, users may well encounter other unexpected operational factors that could impact on the ability to run timeout intervals below the one-second requirement.
For more information about the Aggregation configurable service, see Configurable services properties.
You can use the Timeout location property of the AggregateControl node to specify the location of a timeout value in the incoming message. Any timeout value that is specified in this way overrides the values that are specified by the AggregateControl node and the Aggregation configurable service.
In the same way, as for the Aggregation configurable service, the timeout value is specified down to one decimal place.
For more information, see AggregateControl node.
By default, timeout polling occurs every 5 seconds. Therefore, if you set the Timeout property to a value that is not a multiple of 5, an extra delay occurs. For example, if you set the Timeout property to 7 seconds, you see a delay of 3 seconds until timeout polling next occurs. You can change the default timeout polling interval by using the environment variable MQSI_AGGR_WAIT_TIMEOUT. Valid values are 1000 - 5000 milliseconds. To change the default polling interval, stop the broker, then restart the broker in an environment where you have set the MQSI_AGGR_WAIT_TIMEOUT environment variable.
If a Timeout property value has been set to less than one second the timeout polling interval rules are ignored. In this instance the timeout polling interval is automatically calculated as part of timeout processing. Therefore, no manual intervention is required in order to update the environment variable MQSI_AGGR_WAIT_TIMEOUT.
If the timeout interval passes without all the replies arriving, the replies that have arrived are turned into an aggregated reply message by the corresponding AggregateReply node, and propagated to its Timeout terminal. You can process this partial response message in the same way as a complete aggregated reply message. If you prefer, you can provide special processing for incomplete aggregated replies.
When you set this property, a message that cannot be recognized immediately as a valid reply is held persistently in the broker for the number of seconds that you specify for this property.
If the unknown timeout interval expires, and the message is recognized, it is processed. The node also checks to see if this previously unknown message is the last reply that is needed to make an aggregation complete. If it is, the aggregated reply message is constructed and propagated.
If the unknown timeout interval expires and the message is still not recognized, the message is propagated to the Unknown terminal.