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/.

Configuring the JMS Inbound Protocol with the EI-Broker runtime

This section describes how to configure the JMS inbound protocol in WSO2 Enterprise Integrator (WSO2 EI) using the EI-Broker runtime.

  1. If you have not already done so, see Installing the Product for details on installing WSO2 EI.
  2. Open a command line terminal and start the EI-Broker runtime that is shipped with your WSO2 EI distribution by running one of the following startup scripts from the <EI_HOME>/wso2/broker/bin directory:
    • On Linux/Mac OS:  sh wso2server.sh
    • On Windows:  wso2server.bat --run

  3. Configure the JMS inbound listener. Following is a sample JMS inbound listener configuration:

    <inboundEndpoint xmlns="http://ws.apache.org/ns/synapse"
                     name="jms_inbound"
                     sequence="request"
                     onError="fault"
                     protocol="jms"
                     suspend="false">
       <parameters>
          <parameter name="interval">1000</parameter>
          <parameter name="sequential">true</parameter>
          <parameter name="coordination">true</parameter>
          <parameter name="java.naming.factory.initial">org.wso2.andes.jndi.PropertiesFileInitialContextFactory</parameter>
          <parameter name="java.naming.provider.url">conf/jndi.properties</parameter>
          <parameter name="transport.jms.ConnectionFactoryJNDIName">QueueConnectionFactory</parameter>
          <parameter name="transport.jms.ConnectionFactoryType">queue</parameter>
          <parameter name="transport.jms.Destination">JMSMS</parameter>
          <parameter name="transport.jms.SessionTransacted">false</parameter>
          <parameter name="transport.jms.SessionAcknowledgement">AUTO_ACKNOWLEDGE</parameter>
          <parameter name="transport.jms.CacheLevel">1</parameter>
          <parameter name="transport.jms.SubscriptionDurable">false</parameter>
          <parameter name="transport.jms.SharedSubscription">false</parameter>
       </parameters>
    </inboundEndpoint>

    For more information on the JMS configuration parameters used in the code segments above, see JMS Connection Factory Parameters.

  4. Copy the following JAR files from the <EI_HOME>/wso2/broker/client-lib folder to <EI_HOME>/lib folder.
    • andes-client-3.1.14.jar
    • geronimo-jms_1.1_spec-1.1.0.wso2v1.jar
    • org.wso2.securevault-1.0.0-wso2v2.jar
  5. Open <EI_HOME>/conf/jndi.properties file and make a reference to the running EI-Broker runtime as specified below: 
    1. Use carbon as the virtual host.

    2. Define a queue named JMSMS.
    3. Comment out the topic, since it is not required in this scenario. However, in order to avoid getting the javax.naming.NameNotFoundException:TopicConnectionFactory exception during server startup, make a reference to the EI-Broker runtime from the TopicConnectionFactory as well. 

      For example:

      # register some connection factories
      # connectionfactory.[jndiname] = [ConnectionURL]
      connectionfactory.QueueConnectionFactory = amqp://admin:admin@clientID/carbon?brokerlist='tcp://localhost:5675'
      connectionfactory.TopicConnectionFactory = amqp://admin:admin@clientID/carbon?brokerlist='tcp://localhost:5675'
      # register some queues in JNDI using the form
      # queue.[jndiName] = [physicalName]
      queue.JMSMS=JMSMS
      queue.StockQuotesQueue = StockQuotesQueue
  6. Ensure that EI-Broker is running, and then open a command prompt (or a shell in Linux) and go to the <EI_HOME>/bin directory.
  7. Start the Integration runtime server by executing 
    sh integrator.sh -Dqpid.dest_syntax=BURL (on Linux/OS X)  or 
    integrator.bat -Dqpid.dest_syntax=BURL (on Windows).

Now you have an instance of EI-Broker and a WSO2 EI inbound endpoint configured, up and running.