Interoperate with IBM MQ: Troubleshooting tips
Use this set of specific tips to help you troubleshoot problems when using the IBM MQ link or IBM MQ server components of the default messaging provider to interoperate with IBM MQ.
The IBM MQ link channels do not start
Error messages appear in the SystemOut.log file or, if we have turned on tracing, in the trace.log file.
IBM recommends using the High Performance Extensible Logging (HPEL) log and trace infrastructure . We view HPEL log and trace information using the logViewer .
- Verify that the channel names specified on the IBM MQ link sender channel and/or the MQLinkReceiver definitions match those specified on the sender and/or receiver channel definitions in the IBM MQ network.
Channel names are case sensitive.
- Verify that the channel sequence numbers are not out of step. If they are, then the channel will remain in a state of retry until the sequence numbers have been reset.
For an IBM MQ link sender channel, we can reset the sequence number to 1 using the IBM MQ link sender channel administrative pages. This passes a reset instruction to the IBM MQ receiver channel. We can optionally reset the IBM MQ receiver channel to a value that matches the IBM MQ link sender channel. This does not result in any data being passed to the IBM MQ link sender channel, and can be used to resolve sequencing issues.
For an IBM MQ link receiver channel, we have to reset the sequence number in IBM MQ through the IBM MQ sender channel. If we are using the IBM MQ Explorer on a Windows system, we can right-click on the channel and select All Tasks > Reset.
Search for messages CWSIC3011E, CWSIC3015E.
- Verify that both ends of the channel have been defined and configured correctly. It is possible that the channel at the remote end is currently in a stopped state and therefore is currently unavailable. Start the channel at the remote end if possible.
Search for messages CWSIC3018E, CWSIC3113E, CWSIC3114E, CWSIC3236E.
- Verify that the channel sequence number wrap values are the same at both ends of the channel.
Search for message CWSIC3010E.
- Verify that the IBM MQ link sender channel is not in an indoubt state. Resolve the channel if required. The channel is resolved by IBM MQ. On Windows, if we are using the IBM MQ Explorer, we can right-click on the channel and select All Tasks>Resolve.
Search for message CWSIC3065E.
- Verify that the listeners have been started, and are listening on the correct ports. By default, service integration listens on port 5558 for inbound connections, and the IBM MQ network listens on port 1414.
Messages sent across an IBM MQ link are not delivered
Error messages appear in the SystemOut.log file or, if we have turned on tracing, in the trace.log file. We can also look for equivalent messages in the IBM MQ error logs (or trace files if we have turned on tracing in the IBM MQ network).
- If we are sending messages from a service integration bus to an IBM MQ network, it is possible that the messages are stored on the service integration bus and waiting to be delivered, but that the IBM MQ link sender channel has not been started or is in a retry state.
Verify that the IBM MQ link sender channel is started and in running state.
- If we are sending messages from an IBM MQ network to a service integration bus, it is possible that the messages are stored on the transmission queue in the IBM MQ network and waiting to be delivered, but that the sender channel in the IBM MQ network has not been started or is in a retry state.
Verify that the sender channel in the IBM MQ network is started and in running state.
- It is possible that the messages could not be processed or delivered to the target destination and hence they have been placed either on an exception destination on the service integration bus, or on the dead letter queue in the IBM MQ network. Verify that the IBM MQ Link on the messaging engine is configured properly with the correct foreign bus, queue manager name (service integration bus), sender channel and receiver channel. The sender channel on the IBM MQ Link should match the receiver channel on IBM MQ. The receiver channel on the IBM MQ Link should match the sender channel on IBM MQ.
Search for messages CWSIC3096I, CWSIC3098I, CWSIC3200E, CWSIC3209E.
Check the exception destinations and the dead letter queue. It is possible that the target destination has not been defined, or is full in which case, determine why messages are not being processed from the target destination.
- It is possible that the target destination and the exception destination and/or the dead letter queue are full and that subsequent persistent messages cannot be safely delivered. Under these circumstances the channel is stopped to avoid any loss of messages.
Search for message CWSIP0291W.
Determine why messages are not being processed from the target destination.
- It is possible that the target destination and the exception destination and/or dead letter queue are full and that subsequent nonpersistent messages are discarded.
Check the persistence of messages being generated by the applications.
- It is possible that the channel has stopped because the remote system cannot accept messages for some reason.
Search for message CWSIC3080E.
The application server cannot shut down
If an IBM MQ link sender channel does not have any messages to deliver, it waits for its specified disconnect interval before timing out. If the application server is shut down while an IBM MQ link sender channel is in a wait state, the application server waits for the IBM MQ link sender channel to time out before shutting down. A long disconnect interval might delay the server shutdown.
If the application server shutdown is delayed by an IBM MQ link sender channel in a wait state, we have two options:
- Attempt to put a message onto the transmission item stream for the IBM MQ link sender channel. Note that this might not take the channel out of its wait state if the application server shutdown is already in progress
- Force the termination of the application server process.
To reduce possible delays during application server shutdown, we can specify a smaller value for the disconnect interval. Note that a discount interval of 0 indicates an indefinite wait. For more information about setting the disconnect interval for an IBM MQ link sender channel, see Add or modify an IBM MQ link sender channel.
JMS attempts to send a message to an IBM MQ server
The JMS application attempts to send a message to an IBM MQ server, a long list of internal error exception messages are issued. This occurs when an IBM MQ server is configured to connect to an unsupported version of IBM MQ.
In this situation, any attempt by a JMS application to send a message to a service integration bus destination that is a defined to an IBM MQ server bus member results in a long list of exception messages. The CWSJP0019E message indicates that it is a version problem:
com.ibm.ws.sib.remote.mq.exceptions.CorruptRMQSessionException: CWSJP0019E: An attempt to connect to IBM MQ using the information provided by the IBM MQ Server bus member MQServer1-BUS1 resulted in a connection to an IBM MQ queue manager running on version MQCMDL_LEVEL_600 on platform MQPL_WINDOWS_NT. This configuration is not supported. Destinations assigned to the IBM MQ Server bus member are not accessible.
Verify that we have configured the IBM MQ server to interoperate with a supported version of IBM MQ. For interoperation with WAS v7.0 or later, the version of IBM MQ must be IBM MQ for z/OS v6 or later, or IBM MQ (distributed platforms) v7 or later.