Versions Compared

Key

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

...

The following example illustrates how to configure WSO2 EI to listen to both ActiveMQ and WSO2 MB messages.

Note

From the below configurations, do the ones in the axis2.xml file based on the profile you use as follows:

  • To enable the JMS transport in the Integration profile, edit the <EI_HOME>/conf/axis2/axis2.xml file.
  • To enable the JMS transport in other profiles, edit the <EI_HOME>/wso2/<PROFILE_HOME>/conf/axis2/axis2.xml file. <PROFILE_HOME> refers to the main directory of the profile inside the WSO2 EI distribution. For example, to enable the JMS transport in the Business Process profile, edit the <EI_HOME>/wso2/business-process/conf/axis2/axis2.xml file
  1. Download ActiveMQ (version 5.8.0 or later) from the Apache ActiveMQ site. Download the WSO2 Message Broker from the WSO2 Message Broker site.
  2. Copy the following client libraries from <AMQ_HOME>/lib directory to <EI_HOME>/lib directory.
    • activemq-broker-5.8.0.jar 
    • activemq-client-5.8.0.jar 
    • geronimo-jms_1.1_spec-1.1.1.jar 
    • geronimo-j2ee-management_1.1_spec-1.0.1.jar 
    • hawtbuf-1.9.jar 
  3. Copy the andes-client-0.13.wso2v10.jar from <MB_HOME>/client-lib directory to <EI_HOME>/lib directory.
  4. Configure the <EI_HOME>/conf/axis2/axis2.xml file as follows to enable ActiveMQ as a transport listener.

    Code Block
    languagexml
    <transportReceiver name="jms1" class="org.apache.axis2.transport.jms.JMSListener">
           <parameter name="myTopicConnectionFactory" locked="false">
               <parameter name="java.naming.factory.initial" locked="false">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
               <parameter name="java.naming.provider.url" locked="false">tcp://localhost:61616</parameter>
               <parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">TopicConnectionFactory</parameter>
                <parameter name="transport.jms.ConnectionFactoryType" locked="false">topic</parameter>
           </parameter>
     
           <parameter name="myQueueConnectionFactory" locked="false">
               <parameter name="java.naming.factory.initial" locked="false">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
               <parameter name="java.naming.provider.url" locked="false">tcp://localhost:61616</parameter>
               <parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">QueueConnectionFactory</parameter>
                <parameter name="transport.jms.ConnectionFactoryType" locked="false">queue</parameter>
           </parameter>
     
           <parameter name="default" locked="false">
               <parameter name="java.naming.factory.initial" locked="false">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
               <parameter name="java.naming.provider.url" locked="false">tcp://localhost:61616</parameter>
               <parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">QueueConnectionFactory</parameter>
                <parameter name="transport.jms.ConnectionFactoryType" locked="false">queue</parameter>
           </parameter>
       </transportReceiver>

    Enter the following configuration in the same file to enable the WSO2 Message Broker.

    Code Block
    languagexml
    <!--Uncomment this and configure as appropriate for JMS transport support with WSO2 MB 2.x.x -->
       <transportReceiver name="jms2" class="org.apache.axis2.transport.jms.JMSListener">
           <parameter name="myTopicConnectionFactory" locked="false">
              <parameter name="java.naming.factory.initial" locked="false">org.wso2.andes.jndi.PropertiesFileInitialContextFactory</parameter>
               <parameter name="java.naming.provider.url" locked="false">repository/conf/jndi.properties</parameter>
               <parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">TopicConnectionFactory</parameter>
               <parameter name="transport.jms.ConnectionFactoryType" locked="false">topic</parameter>
           </parameter>
     
           <parameter name="myQueueConnectionFactory" locked="false">
               <parameter name="java.naming.factory.initial" locked="false">org.wso2.andes.jndi.PropertiesFileInitialContextFactory</parameter>
               <parameter name="java.naming.provider.url" locked="false">repository/conf/jndi.properties</parameter>
               <parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">QueueConnectionFactory</parameter>
              <parameter name="transport.jms.ConnectionFactoryType" locked="false">queue</parameter>
           </parameter>
     
           <parameter name="default" locked="false">
               <parameter name="java.naming.factory.initial" locked="false">org.wso2.andes.jndi.PropertiesFileInitialContextFactory</parameter>
               <parameter name="java.naming.provider.url" locked="false">repository/conf/jndi.properties</parameter>
               <parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">QueueConnectionFactory</parameter>
               <parameter name="transport.jms.ConnectionFactoryType" locked="false">queue</parameter>
           </parameter>
       </transportReceiver>
    Info

    Note that the transport receiver name is different in each configuration.

  5. Add a topic and a queue to the  jndi.properties file located in <EI_HOME>/conf as follows:

    Code Block
    languagejava
    <connection-factory name="QueueConnectionFactory">
          <xa>false</xa>
          <connectors>
             <connector-ref connector-name="netty"/>
          </connectors>
          <entries>
             <entry name="/QueueConnectionFactory"/>
          </entries>
    </connection-factory>
    
    
    <connection-factory name="TopicConnectionFactory">
          <xa>false</xa>
          <connectors>
             <connector-ref connector-name="netty"/>
          </connectors>
          <entries>
             <entry name="/TopicConnectionFactory"/>
          </entries>
    </connection-factory>
  6. Start both ActiveMQ and WSO2 MB.
  7. Start the WSO2 EI server and the management console. If they are already running, restart them.

...