Configuring the storage of events for aggregation nodes

You can use an Aggregation configurable service to control the storage of events for AggregateControl and AggregateReply nodes.

About this task

Information about the state of in-flight messages is held on storage queues that are controlled by WebSphere® MQ, so you must install WebSphere MQ on the same computer as your integration node if you want to use the capabilities provided by the aggregation nodes. The storage queues that hold the state information are owned by the queue manager that is associated with the integration node, and you specify this queue manager by using the -q property of the mqsicreatebroker command; see mqsicreatebroker command.

If the integration node has the necessary permissions to create the default system queues, they are created automatically when a flow containing aggregation nodes is deployed. If the default queues are not created automatically, you can create them manually; see Creating the default IBM Integration Bus queues on a WebSphere MQ queue manager.

By default, the storage queues used by all aggregation nodes are:
  • SYSTEM.BROKER.AGGR.CONTROL
  • SYSTEM.BROKER.AGGR.REPLY
  • SYSTEM.BROKER.AGGR.REQUEST
  • SYSTEM.BROKER.AGGR.UNKNOWN
  • SYSTEM.BROKER.AGGR.TIMEOUT

However, you can control the queues that are used by different aggregation nodes by creating alternative queues containing a QueuePrefix, and using an Aggregation configurable service to specify the names of those queues for storing events.

Follow these steps to specify the queues that are used to store event states, and to set the expiry time of an aggregation:

Procedure

  1. Create the storage queues to be used by the aggregation nodes.
    The following queues are required:
    • SYSTEM.BROKER.AGGR.QueuePrefix.CONTROL
    • SYSTEM.BROKER.AGGR.QueuePrefix.REPLY
    • SYSTEM.BROKER.AGGR.QueuePrefix.REQUEST
    • SYSTEM.BROKER.AGGR.QueuePrefix.UNKNOWN
    • SYSTEM.BROKER.AGGR.QueuePrefix.TIMEOUT

    The QueuePrefix variable can contain any characters that are valid in a WebSphere MQ queue name, but must be no longer than eight characters and must not begin or end with a period (.). For example, SET1 and SET.1 are valid queue prefixes, but .SET1 and SET1. are invalid.

    If you do not create the storage queues, IBM Integration Bus creates the set of queues when the node is deployed; these queues are based on the default queues. If the queues cannot be created, the message flow is not deployed.

  2. Use the mqsicreateconfigurableservice command to create an Aggregation configurable service. You can create a configurable service to be used with either a specific aggregation or with all aggregations in an integration server.
    1. If the configurable service is to be used with a specific aggregation, ensure that the name of the configurable service is the same as the name that you specify in the Aggregate name property on the AggregateControl and AggregateReply nodes. If the configurable service is to be used with all aggregations in an integration server, create the configurable service with the same name as the integration server. However, the name of a configurable service cannot start with a digit; if the name of the configurable service is to be the same as that of the integration server, ensure that the name of the integration server does not start with a digit.
    2. Set the Queue prefix property to the required value.
    3. Optional: Set the Timeout property to control the expiry time of an aggregation.
    For example, create a configurable service called myAggregation, which specifies queues prefixed with SYSTEM.BROKER.AGGR.SET1 and a timeout of 60 seconds:
    mqsicreateconfigurableservice MYBROKER -c Aggregation -o myAggregation 
    -n queuePrefix,timeoutSeconds -v SET1,60 
    

    You can use the mqsideleteconfigurableservice command to delete the Aggregation configurable service. However, the storage queues are not deleted automatically when the configurable service is deleted, so you must delete them separately.

    For more information, see Configurable services properties
  3. In the AggregateControl and AggregateReply nodes:
    1. Ensure that the name of the Aggregation configurable service is the same as the name specified in the Aggregate name property on the Basic tab; for example, myAggregation. If no Aggregation configurable service exists with the same name as the Aggregate name property, and if a configurable service exists with the same name as the integration server, that configurable service is used instead.
    2. Optional: Use the mqsichangeproperties and mqsireportproperties commands to change or view the properties of the configurable service.
      Alternatively, you can use the web user interface to view or modify a configurable service.

What to do next

The properties for the configurable service are not used by the integration node until you restart or redeploy the message flow, or restart the integration node.