Technology hub‎ > ‎Developer Handy‎ > ‎

Adding ActiveMQ support for ATG on JBoss platform

Step 1:
 
It would be a great idea to add Active MQ queues as datasource to JBoss
 
a) Add the activemq-ra.rar to the jboss deploy folder.
b) Add the file activemq-jms-ds.xml with the below example queues
===========================================================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE connection-factories
        PUBLIC "-//JBoss//DTD JBOSS JCA Config 1.5//EN"
        "http://www.jboss.org/j2ee/dtd/jboss-ds_1_5.dtd">
<connection-factories>
    <tx-connection-factory>
        <jndi-name>activemq/QueueConnectionFactory</jndi-name>
        <xa-transaction/>
        <track-connection-by-tx/>
        <rar-name>activemq-ra.rar</rar-name>
        <connection-definition>javax.jms.QueueConnectionFactory</connection-definition>
        <security-domain-and-application>JmsXARealm</security-domain-and-application>
        <ServerUrl>tcp://localhost:61616?jms.prefetchPolicy.queuePrefetch=1</ServerUrl>
    </tx-connection-factory>
    <tx-connection-factory>
        <jndi-name>activemq/TopicConnectionFactory</jndi-name>
        <xa-transaction/>
        <track-connection-by-tx/>
        <rar-name>activemq-ra.rar</rar-name>
        <connection-definition>javax.jms.TopicConnectionFactory</connection-definition>
        <security-domain-and-application>JmsXARealm</security-domain-and-application>
        <ServerUrl>tcp://localhost:61616</ServerUrl>
    </tx-connection-factory>
    <!-- Request and Response Queue Examples -->
    <mbean code="org.jboss.resource.deployment.AdminObject" name="activemq.queue:name=some_queue_name">
        <attribute name="JNDIName">activemq/queue/some_queue</attribute>
        <depends optional-attribute-name="RARName">jboss.jca:service=RARDeployment,name='activemq-ra.rar'</depends>
        <attribute name="Type">javax.jms.Queue</attribute>
        <attribute name="Properties">
            PhysicalName=queue.some_queue
        </attribute>
    </mbean>
    <mbean code="org.jboss.resource.deployment.AdminObject" name="activemq.queue:name=some_response_queue">
        <attribute name="JNDIName">activemq/queue/some_response_queue</attribute>
        <depends optional-attribute-name="RARName">jboss.jca:service=RARDeployment,name='activemq-ra.rar'</depends>
        <attribute name="Type">javax.jms.Queue</attribute>
        <attribute name="Properties">
            PhysicalName=queue.some_response_queue
        </attribute>
    </mbean>
    <!-- Topic Example -->
    <mbean code="org.jboss.resource.deployment.AdminObject" name="activemq.topic:name=some_topic">
        <attribute name="JNDIName">activemq/topic/some_topic</attribute>
        <depends optional-attribute-name="RARName">jboss.jca:service=RARDeployment,name='activemq-ra.rar'</depends>
        <attribute name="Type">javax.jms.Topic</attribute>
        <attribute name="Properties">
            PhysicalName=topic.some_topic
        </attribute>
    </mbean>
</connection-factories>
 
=================================================================================================================
 
Step 2:
 
Add JNDI reference components for these Queues and Factories in ATG (below is example)
 
/some/package/TopicConnectionFactory
 
$class=atg.nucleus.JNDIReference
JNDIName=java:/activemq/TopicConnectionFactory
 
 
--------------------------------------------------
 
You are good to go....
Comments