After restarting the WebSphere MQ (WMQ) queue manager, you try to start a channel using a self-defined service. However, due to a condition, such as a network problem, the channel fails to start immediately, but it does not retry to connect even if you set the short retrying properties. Why does this happen?
From the error log, you can see below events related to the issued channel.
09/02/13 03:41:25 AMQ5028: The Server 'START.CHANNEL1' has started.
09/02/13 03:41:25 AMQ9002: Channel 'CHANNEL1' is starting.
09/02/13 03:46:42 AMQ9002: Channel 'CHANNEL1' is starting.
09/02/13 03:47:43 AMQ9002: Channel 'CHANNEL1' is starting.
09/02/13 03:48:45 AMQ9002: Channel 'CHANNEL1' is starting.
The channel “CHANNEL1” is the channel in question, and the service “START.CHANNEL1” is used to start the channel. The short retrying interval is 1 minute. However, the channel “CHANNEL1” doesn’t retry from 03:41:25 to 03:46:42.
In order to let the channel retry, a channel initiator must be running. The channel initiator must be monitoring the initiation queue specified in the definition of the transmission queue that the channel is using.
In this case, you used a self-defined service to start the channel, which is not suggested because it is complicated and unnecessary. MQ can ensure the channel initiator starts before the start of the user-defined service. However, when the queue manager starts the channel initiator, there might be short delay before it is ready to monitor the initiation queue and start the channel. In this situation, if a service is defined to start the channel, and then the channel fails immediately, the channel initiator might not be able to restart the channel.
Resolving the problem
The suggested method is to start the channel using triggering. For more details, please refer to online documentation:
WebSphere MQ > Configuring > Connecting applications using distributed queuing > Introduction to distributed queue management: Triggering channels
WebSphere MQ WMQ