Cannot bind MDB to jms queue
milesif Sep 9, 2002 7:52 AMHi everibody.
I have a problem binding a MDB to a queue. I am using JBoss 3.0.2 and I did the following to setup a MDB listening on a queue.
1. In ejb-jar.xml I put the following entries:
<message-driven>
<ejb-name>MailerMDB</ejb-name>
<ejb-class>session.mdb.MailerMDB</ejb-class>
<message-selector></message-selector>
<transaction-type>Container</transaction-type>
<message-driven-destination>
<destination-type>javax.jms.Queue</destination-type>
</message-driven-destination>
</message-driven>
plus the transaction attributes and security permission as usual
2. In JBoss.xml I put:
<?xml version="1.0" encoding="UTF-8"?>
<security-domain>java:/jaas/SISDomain</security-domain>
<message-driven>
<ejb-name>MailerMDB</ejb-name>
<configuration-name>Standard Message Driven Bean</configuration-name>
<destination-jndi-name>queue/MailQueue</destination-jndi-name>
</message-driven>
3. In jbossmq-destinations-service.xml I added the following entry:
<depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager
<depends optional-attribute-name="SecurityManager">jboss.mq:service=SecurityManager
When I start up the server I get this output
...........................................
12:26:22,856 INFO [MailQueue] Creating
12:26:22,856 INFO [MailQueue] Created
........................................
12:26:22,996 INFO [MailQueue] Starting
12:26:23,027 INFO [MailQueue] Bound to JNDI name: queue/MailQueue
12:26:23,037 INFO [MailQueue] Started
............................................
12:26:32,399 INFO [EjbModule] Deploying MailerMDB
12:26:32,999 INFO [JMSContainerInvoker] Creating
12:26:32,999 INFO [JMSContainerInvoker] Created
12:26:33,580 INFO [EjbModule] Created
12:26:33,580 INFO [EjbModule] Starting
12:26:34,652 WARN [StatelessSessionContainer] No resource manager found for mai
l/MailSessionFactory
12:26:34,792 INFO [JMSContainerInvoker] Starting
12:26:34,802 INFO [DLQHandler] Creating
12:26:34,972 INFO [DLQHandler] Created
12:26:34,982 WARN [JMSContainerInvoker] destination not found: queue/MailerMDB
reason: javax.naming.NameNotFoundException: MailerMDB not bound
12:26:34,982 WARN [JMSContainerInvoker] creating a new temporary destination: q
ueue/MailerMDB
12:26:34,992 INFO [MailerMDB] Creating
12:26:34,992 INFO [MailerMDB] Created
12:26:34,992 INFO [MailerMDB] Starting
12:26:35,002 INFO [MailerMDB] Bound to JNDI name: queue/MailerMDB
12:26:35,002 INFO [MailerMDB] Started12:26:35,122 WARN [SecurityManager] No SecurityMetadadata was available for Mai
lerMDB adding default security conf
If I try to send a message to the original queue "queue/MailQueue" from a session I get an error, while if I send it to the temporary queue "queue/MailerMDB" it is all right and MailMDB is waked up.
So JMS and MDB work correctly, but I do not understand where I am wrong. It am certainly missing something in my configuration, but I do not see what.
I can see that the deployer looks for a queue that has the name of my MDB and not that of the queue I indicated in jBoss.jar and I configured in jbossmq-destinations-service.xml.
I did not modify anything else of JMS configuration, that remained as it comes after download.
Thanks to anybody helping me
Ciao Francesco