Download ActiveMQ
- Download ActiveMQ from http://activemq.apache.org/download.html
Download WSO2 ESB 5.0.0
- Download WSO2 ESB from http://wso2.com/more-downloads/esb
Clustering ActiveMQ
There is no special configuration required for ActiveMQ clustering you only need to extract two ActiveMQ instances and host them in two different IP host or change the port if the ActiveMQ instances are in same IP host.
Start ActiveMQ
cd [activemq_install_directory]
bin/activemq start
Copy Jars to WSO2 ESB
If you are using ActiveMQ version 5.8.0 or later, copy following jars to <ESB_HOME>/repository/components/lib directory.
- activemq-broker-5.8.0.jar
- activemq-client-5.8.0.jar
- activemq-kahadb-store-5.8.0.jar
- geronimo-jms_1.1_spec-1.1.1.jar
- geronimo-j2ee-management_1.1_spec-1.0.1.jar
- geronimo-jta_1.0.1B_spec-1.0.1.jar
- hawtbuf-1.9.jar
- Slf4j-api-1.6.6.jar
- activeio-core-3.1.4.jar (available in <AMQ_HOME>/lib/optional folder)
Enable JMS receiver for ESB
To enable the JMS transport listener, configure the following listener configuration related to ActiveMQ in <ESB_HOME>/repository/conf/axis2/axis2.xml file. Please note that we have configured the provider url as failover scenario here.
<transportReceiver name="jms" 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">failover:(tcp://xx.xx.xx:61616,tcp://xx.xx.xy: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">failover:(tcp://xx.xx.xx:61616,tcp://xx.xx.xy: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">failover:(tcp://xx.xx.xx:61616,tcp://xx.xx.xy:61616)</parameter> <parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">QueueConnectionFactory</parameter> <parameter name="transport.jms.ConnectionFactoryType" locked="false">queue</parameter> </parameter> </transportReceiver>
Enable JMS sender for ESB
To enable the JMS transport sender, un-comment the following configuration in <ESB_HOME>/repository/conf/axis2/axis2.xml file.
<transportSender name="jms" class="org.apache.axis2.transport.jms.JMSSender"/>
For more information on activemq clustering refer [1].
[1] http://activemq.apache.org/clustering.html
No comments:
Post a Comment