Troubleshooting messaging external client problems
This topic contains notes for diagnosing problems when using the external client for the IBM® Reliable Transport Extension for WebSphere® sMash.
Exceptions received by the client application
If a messaging exception is experienced when a client application is using the messaging external client
a javax.jms.JMSException is thrown.
The text of the javax.jms.JMSException can be useful in diagnosing the problem
but in some cases the linked exception contained within the javax.jms.JMSException
might also be required.
The linked exception can be addressed by calling the getLinkedException()
method of the JMSException.
Some common situations which can be diagnosed from the JMSException
and any linked exception are described in the following sections.
Setting the trust algorithm
When establishing an external client connection to a secured broker instance, it is important to
call WrappedQueueConnectionFactory.setAlgorithm(String algorithm) first. Correct
algorithm strings include "SunX509" for the Sun Java™ and "IbmX509" for IBM runtimes.
If the algorithm is not set correctly an exception is thrown when the connection is used.
Example exception:
javax.jms.JMSException: Failed to create a connection for client E1211279066755-1-905065970
to MicroBroker tls://localhost:9091.
at com.ibm.msg.client.mqtt.internal.ProviderConnectionMqttImpl.connectToBroker(...
at com.ibm.msg.client.mqtt.internal.ProviderConnectionMqttImpl.start(...
Example linked exception:
com.ibm.mqttclient.v4.base.MqttNotConnectedException: FMBD3016 JMSTT Module TLSInitiator:
SSL-Initialisation failed. Configured Algorithm is not known.
at com.ibm.mqttclient.v4.internal.base.MqttBaseClientImpl.createConnection(...
...
Other messaging exceptions
An application using the external client might experience similar messaging exceptions
to an application using the messaging protocol from within an IBM WebSphere sMash
application. For example, an exception is thrown if an application attempts to send
an oversized message or a message to a queue that is full.
See the troubleshooting guide for zero.messaging.connection for more information
about diagnosing these javax.jms.JMSException exceptions.