This site contains the documentation that is relevant to older WSO2 product versions and offerings.
For the latest WSO2 documentation, visit https://wso2.com/documentation/.

Working with JMS

Java Message Service (JMS) is a widely used API in Java-based Message Oriented Middleware(MOM) applications. The JMS transportĀ allows you to send and receive messages to queues and topics of any JMS service that implements the JMS specification.

The JMS transport implementation comes from the WS-Commons Transports project, and it makes use of JNDI to connect to various JMS brokers. As a result, the Business Process profile can work with any JMS broker that offers JNDI support. All the relevant classes are packed into theĀ axis2-transport-jms-<version>.jarĀ and the classesĀ Ā org.apache.axis2.transport.jms.JMSListenerĀ Ā andĀ Ā org.apache.axis2.transport.jms.JMSSenderĀ Ā act as the transport receiver and sender respectively.

This section describes how you can configure the JMS transport of the Business Process profile in WSO2 Enterprise Integrator (WSO2 EI) to communicate with a JMS broker.

Enabling the JMS transport

To enable the JMS transport

  • Edit theĀ <EI_HOME>/wso2/business-process/conf/axis2/axis2.xmlĀ file and uncomment the JMS listener as follows based on the JMS broker you are using:

    <transportReceiver name="jms" class="org.apache.axis2.transport.jms.JMSListenerā€>
    ā€¦.
    </transportReceiver>
  • Edit theĀ <EI_HOME>/wso2/business-process/conf/axis2/axis2.xmlĀ file and uncomment theĀ JMS sender as follows:

    <transportSender name=ā€œjms" class="org.apache.axis2.transport.jms.JMSSender"/>

Configuring the JMS transport

The JMS transport implementation requires an active JMS server instance to be able to receive and send messages. We recommend using Apache ActiveMQ, but other implementations such as Apache Qpid and Tibco are also supported.

Configuration parameters for the JMS receiver and sender are XML fragments that represent JMS connection factories. Following is a typical JMS connection factory configuration:

<parameter name="myTopicConnectionFactory">
      <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
      <parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
      <parameter name="transport.jms.ConnectionFactoryJNDIName">TopicConnectionFactory</parameter>
      <parameter name="transport.jms.ConnectionFactoryType">topic</parameter>
</parameter>

This is a bare minimal JMS connection factory configuration that consists of four connection factory parameters.

For detailed information onĀ each JMS connection factory parameter, see JMS connection factory parameters.

For information on how to configure the Business Process profile JMS transport with the most common broker servers, see the following topics: