ActiveMq Qualification
Instructions for configuring ActiveMq, JBossESB and Trailblazer.
Requirements
JBossESB - the current code base release.
Background
These instructions were formed from background material from the ActiveMq Site
Instructions
Download ActiveMq 4.0.1
Delete <jboss-home>/server/default/deploy/jms
Copy <activemq-install>/lib/optional/activemq-ra-4.0.1.rar to <jboss-home>/server/default/deploy and copy panacya-jms-ds.xml to <jboss-home>/server/default/deploy
Edit the file panacya-jms-ds.xml that was downloaded in the previous step and rename all references from activemq-ra-1.4.rar to activemq-ra-4.0.1.rar
Modify <jboss-home>/server/default/deploy/panacya-jms-ds.xml and add the following:
Start ActiveMq <activemq-install>/bin/activemq (chmod +x if the start script is not executable)
Start JBoss (4.0.4.G.A with ejb3 profile as per TB's requirement) you should not see any errors.
Class Modification
Modify the following classes
GpsListener
JmsQueueListener
NotifyQueues
Instead of using the context/jndi to look up the ConnectionFactory, like:
QueueConnectionFactory factory = (QueueConnectionFactory)
ctx.lookup("ConnectionFactory");
Use ActiveMqs directly:
ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory("tcp://localhost:61616");
Then you can do
factory.createQueueConnection()
Build/Deploy JBossESB. Since the code now contains a references to
an ActiveMq class, remmber to include them as part of the classpath when
compiling from <activemq-install>/lib
Trailblazer Install/Integration Instructions
Same as above, modify the following classes when looking up the
Connection Factory:
ManagerJMS
LoanBrokerWS
LoanBrokerConfig.xml
ProcessCreditResponse
Modify the classpath for compiling and running the ant tasks runListener and runJMSListener and add <activemq-install>/lib
JNDI names will need to be modified inside the LoanBrokerConfig.xml
and inside banks/bank.properties. The JNDI name for the queues are:
activemq/queue/A
activemq/queue/B
activemq/queue/C
activemq/queue/D
-
Issues
The recompilation of classes is partly stemming from javax.naming.NameNotFoundException: activemq/QueueConnectionFactory.
If this is resolved we can simply use properties and a jndi.properties file to dynamically configure which jms we use. But having said that, if we are going to be using ActiveMq classes as plugins, they will need their dependant libs in the classpath.
Next Steps
See if we can resolve the jndi issues time permitting.
Consider using a plugin approach for the jms provider.
Comments