Versions Compared

Key

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

The JMS message store persists messages in a JMS queue inside a JMS Broker. The JMS message store can be configured by specifying the class as org.apache.synapse.message.store.impl.jms.JmsStore.

...

Following is the Add JMS Message Store screen that you will see on the WSO2 Enterprise Integrator (WSO2 EI) Management Console.

When you add a JMS message store, it is required to specify values for the following:

...

Following is a sample JMS message store configuration that uses WSO2 MB as the Message Broker profile of WSO2 EI as the message broker:

Code Block
languagexml
<messageStore name="JMSMS" class="org.apache.synapse.message.store.impl.jms.JmsStore" xmlns="http://ws.apache.org/ns/synapse">
   <parameter name="java.naming.factory.initial">org.wso2.andes.jndi.PropertiesFileInitialContextFactory</parameter>
   <parameter name="java.naming.provider.url">repository/conf/jndi.properties</parameter>
   <parameter name="store.jms.destination">ordersQueue</parameter>
   <parameter name="store.jms.connection.factory">queue</parameter>
   <parameter name="store.jms.JMSSpecVersion">1.1</parameter>
</messageStore>
Info

When using WSO2 MB you use the Message Broker profile as the message broker and configuring configure a Message Processor with max.delivery.attempts, if WSO2 MB the Message Broker profile does not get an acknowledgment from EIthe Integration profile, it re-sends the message resulting that results in duplicate messages being delivered. To avoid this, add the following line in the <EI_HOME>/bin/wso2serverintegrator.sh file:

-DAndesAckWaitTimeOut=3600000 \

...

Code Block
languagexml
<messageStore name="JMSMS" class="org.apache.synapse.message.store.impl.jms.JmsStore" xmlns="http://ws.apache.org/ns/synapse">
   <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
   <parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
   <parameter name="store.jms.destination">ordersQueue</parameter>
   <parameter name="store.jms.connection.factory">queue</parameter>
   <parameter name="store.jms.JMSSpecVersion">1.1</parameter>
</messageStore>
Info
titleNote

When configuring you configure a JMS message store with WSO2 MB or Active MQ the Message Broker profile or ActiveMQ, you need to copy the required client libraries to the <EI_HOME>/repository/component/lib directory. If the relevant client libraries are not copied, you will see a java.lang.ClassNotFoundException

For information on the client libraries you need to copy when configuring a JMS message store with WSO2 MBthe Message Broker profile, see Configure with WSO2 the Message Broker profile.

For information on the client libraries you need to copy when configuring a JMS message store with ActiveMQ, see Configure with ActiveMQ.

...