Configuring the storage of events for timeout nodes
You can use a Timer configurable service to control the storage of events for TimeoutNotification and TimeoutControl nodes.
About this task
Information about the state of in-flight messages is held on storage queues that are controlled by IBM® MQ, so you must install it on the same computer as your integration node if you want to use the capabilities provided by the TimeoutControl and TimeoutNotification 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 TimeoutControl or TimeoutNotification 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 IBM MQ queue manager.
By default, the storage queue used by all timeout nodes is the SYSTEM.BROKER.TIMEOUT.QUEUE. However, you can control the queues that are used by different timeout nodes by creating alternative queues that contain a QueuePrefix variable, and by using a Timer configurable service to specify the names of those queues for storing events.
Follow these steps to specify the queue that is used to store event states:
- Create the storage queue to be used by the timeout nodes.
The following queue is required:
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,
SET.1are valid queue prefixes, but
If you do not create the storage queue, IBM Integration Bus creates the queue when the node is deployed; this queue is based on the default queue. If the queue cannot be created, the message flow is not deployed.
- Use the mqsicreateconfigurableservice command
to create a Timer configurable service. You can create a configurable
service to be used with either specific timeout requests or with all
timeout requests in an integration server.
For example, create a Timer configurable service that uses a queue prefixed with SYSTEM.BROKER.TIMEOUT.SET1:
- If the configurable service is to be used with specific timeout requests, create the configurable service with the same name as the Unique identifier property on the TimeoutNotification and TimeoutControl nodes. If the configurable service is to be used with all timeout requests 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.
- Set the Queue prefix property to the required value.
mqsicreateconfigurableservice IBNODE -c Timer -o myTimer -n queuePrefix -v SET1
You can use the mqsideleteconfigurableservice command to delete the Timer configurable service. However, the storage queue is not deleted automatically when the configurable service is deleted, so you must delete it separately.For more information, see Configurable services properties.
- In the TimeoutNotification and TimeoutControl nodes:
- Ensure that the name of the Timer configurable service is the same as the name specified in the Unique Identifier property on the Basic tab; for example, myTimer. If there is no Timer configurable service with the same name as the Unique Identifier, and if there is a configurable service with the same name as the integration server, that configurable service is used instead.
- 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.