This documentation is work in progress and will be released with the EI 7.0.0 GA release.
Skip to end of metadata
Go to start of metadata

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:

  • No labels