Versions Compared

Key

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

Table of Contents
maxLevel3

...

  1. Download and set up Apache ActiveMQ. For instructions, see Installation Prerequisites. 
  2. Copy the following client libraries from the  <AMQ_HOME>/lib directory to the <EI_HOME>/lib directory.  
    ActiveMQ 5.8.0 and above   
      • 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   

              Earlier version of ActiveMQ

      • activemq-core-5.5.1.jar

      • geronimo-j2ee-management_1.0_spec-1.0.jar

      • geronimo-jms_1.1_spec-1.1.1.jar

Sample configuration

The following example code shows Following is a sample configuration of WSO2 EI for quad-channel JMS synchronous invocations.

Code Block
languagehtml/xml
titleExample Code 5
<proxy name="QuadJMS" transports="jms" xmlns="http://ws.apache.org/ns/synapse">
      <target>
          <inSequence>
              <property action="set" name="transport.jms.ContentTypeProperty" value="Content-Type" scope="axis2"/>
              <log level="full" xmlns="http://ws.apache.org/ns/synapse"/>
              <send>
                  <endpoint>
                      <address uri="jms:/BEReq?transport.jms.ConnectionFactoryJNDIName=QueueConnectionFactory&amp;java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory&amp;java.naming.provider.url=tcp://localhost:61616&amp;transport.jms.DestinationType=queue&amp;transport.jms.ReplyDestination=BERes"/>
                  </endpoint>
              </send>
          </inSequence>
          <outSequence>
              <send/>
          </outSequence>
      </target>
      <parameter name="transport.jms.ContentType">
          <rules>
              <jmsProperty>contentType</jmsProperty>
              <default>text/xml</default>
          </rules>
      </parameter>
      <parameter name="transport.jms.Destination">ClientReq</parameter>
</proxy>

The message flow of the above sample code configuration is as follows:

  1. The JMSReplyTo property of the JMS message is set to ClientRes. Therefore, the client sends a JMS message to the ClientReq queue.
  2. Next, theThe transport.jms.ReplyDestination value is set to BERes. This enables the WSO2 EI proxy to pick messages from ClientReq queue, and send to BEReq queue.
  3. Next, the The back-end picks messages from the BEReq queue, processes and places response messages to BERes queue.
  4. Once a response is available in BERes queue, the proxy service picks it and sends back to ClientRes queue.
  5. Finally, the client picks it as the response message.