Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Abstract

This troubleshooting guide helps you resolve common problems encountered in JMS integration scenarios with WSO2 ESBWSO2 Enterprise Integrator (WSO2 EI).

Anchor
toc
toc
Contents
Table of Contents
maxLevel4
minLevel4

...

Check if you have deployed all the required client libraries. The missing class should be available in one of the jar files deployed in <ESB <EI_HOME>/repository/components/lib directory.  

WSO2 ESB EI comes with geronimo-jms library, which contains the javax.jms packages. Therefore, you do not have to deploy them again.  

...

When forwarding HTTP traffic to a JMS queue using WSO2 ESBEI, you might get an error similar to the one given below.  

...

This exception is specific to the JMS broker used, and is thrown by the JMS client libraries used to connect with the JMS broker.
 
The incoming HTTP message contains a bunch of HTTP headers that have the ‘-‘ character. Some noticeable examples are Content-length and Transfer-encoding headers. When WSO2 ESB EI forwards a message over JMS, it sets the headers of the incoming message to the outgoing JMS message as JMS properties. But, according to the JMS specification, the ‘-‘ character is prohibited in JMS property names. Some JMS brokers like ActiveMQ do not check this specifically, in which case there will not be any issues. But some brokers do and they throw exceptions. 

...

JMS property data type mismatch

 When the ESB WSO2 EI attempts to forward a message over JMS, there are instances that the client libraries throw an exception saying the data type of a particular message property is invalid.
 
This problem occurs when the developer uses the property mediator to manipulate property values set on the message. Certain implementations of JMS have data type restrictions on properties. But the property mediator always sets property values as strings.

...

  With some JMS brokers, WSO2 ESB EI tends to spawn new worker threads indefinitely until it runs out of memory and crashes. This problem is caused by a bug in the underlying Axis2 engine. A simple workaround to this problem is to engage the property mediator of the mediation sequence as follows:  

Code Block
languagehtml/xml
<property action="remove" name="transportNonBlocking" scope="axis2"> 

This prevents the ESB WSO2 EI from creating new worker threads indefinitely. You can use a jconsole like JMX client to monitor the active threads and memory consumption of the ESBWSO2 EI.

Back to Top ^

...

JMSUtils cannot locate destination

...

<address uri="jms:/ my\:\:topic?transport.jms.ConnectionFactoryJNDIName=TopicConnectionFactory&amp;java.naming.factory.initial=org.wso2.andes.jndi.PropertiesFileInitialContextFactory&amp;topic.my\:\:topic =my ::topic &amp;java.naming.provider.url=repository/conf/jndi.properties&amp;transport.jms.DestinationType=topic"/>

...