I have 3 MDBs configures in a chain
BatchJobProcessor > TransactionProcessor > OutputProcessor
which I have deployed into a cluster. My aim is to maintain as much portability
as possible in my code and defer the JNI configuration to the deployment
descriptors:
I tried configuring the Qs using a services file but it seems to only deploy
the Qs on the first node and fail on all other nodes. The error reported on the
other nodes was that the DestinationManager was missing, but was a requirement
for the Q. If there is a better way to do this please let me know.
| <?xml version="1.0" encoding="UTF-8"?>
| <server>
| <mbean code="org.jboss.mq.server.jmx.Queue"
| name="jboss.mq.destination:service=Queue,name=BatchJobProcessorMDB">
| <attribute name="JNDIName">queue/BatchJobProcessors</attribute>
| <depends
optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>
| </mbean>
| <mbean code="org.jboss.mq.server.jmx.Queue"
|
name="jboss.mq.destination:service=Queue,name=TransactionProcessorsMDB">
| <attribute name="JNDIName">queue/TransactionProcessors</attribute>
| <depends
optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>
| </mbean>
| <mbean code="org.jboss.mq.server.jmx.Queue"
| name="jboss.mq.destination:service=Queue,name=OutputProcessorsMDB">
| <attribute name="JNDIName">queue/OutputProcessors</attribute>
| <depends
optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>
| </mbean>
| </server>
|
So I gave up on the option of using a services file and rely on the container
to create teh queues for me.
In BatchJobProcessor :
| @Resource(name="jms/ConnectionFactory")
| private QueueConnectionFactory factory;
|
| @Resource(name="queue/TransactionProcessors")
| private Queue queue;
|
In TransactionProcessor :
| @Resource(name="jms/ConnectionFactory")
| private QueueConnectionFactory factory;
|
| @Resource(name="queue/OutputProcessors")
| private Queue queue;
|
Then I added the following to my ejb-jar.xml
| <message-driven>
| <ejb-name>BatchJobProcessor</ejb-name>
| <ejb-class>com.thunderhead.backend.BatchJobProcessor</ejb-class>
| <transaction-type>Bean</transaction-type>
| <resource-ref>
| <description/>
| <res-ref-name>jms/ConnectionFactory</res-ref-name>
| <res-type>javax.jms.QueueConnectionFactory</res-type>
| <res-auth>Container</res-auth>
|
<mapped-name>jnp://localhost:1100/ConnectionFactory</mapped-name>
| </resource-ref>
| <resource-ref>
| <description/>
| <res-ref-name>queue/TransactionProcessors</res-ref-name>
| <res-type>javax.jms.Queue</res-type>
| <res-auth>Container</res-auth>
|
<mapped-name>jnp://localhost:1100/queue/TransactionProcessors</mapped-name>
| </resource-ref>
| </message-driven>
|
I was hoping to do the final mapping to the real JNDI name in the jboss.xml
file, however during deployment an error require me to add the mapped Name
element.
It seems to me that message servers (factories and queue) only exist in the
HAJNDI context and need to be looked up via jnp://localhost:1100/... My attempt
to look up those services in the local JNDI context failed so far.
I do have the jboss.xml file configured, but it does not seem to have any
effect. I wonder what I missed as I would prefer to keep the jboss specific
binding to the real jndi name in a jboss specific configuration file.
| <message-driven>
| <ejb-name>BatchJobProcessor</ejb-name>
|
<destination-jndi-name>queue/BatchJobProcessors</destination-jndi-name>
| <resource-ref>
| <res-ref-name>jms/ConnectionFactory</res-ref-name>
| <jndi-name>jnp://localhost:1100/ConnectionFactory</jndi-name>
| </resource-ref>
| <resource-ref>
| <res-ref-name>queue/TransactionProcessors</res-ref-name>
|
<jndi-name>jnp://localhost:1100/queue/TransactionProcessors</jndi-name>
| </resource-ref>
| </message-driven>
|
Thanks in advance
Alex
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4093031#4093031
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4093031
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user