0 Replies Latest reply on Dec 4, 2002 8:37 AM by Bernd Zeitler

    Right configuration for MDB with JMS as managed resource (XA

    Bernd Zeitler Expert

      I hava a problem configuring my MDBs with JMS as a managed resource on JBoss 3.0.4.
      I am using Oracle with XA as persistent store for JBossMQ.

      My example:
      Two MDBs sending messages to each other on different queues. Acknowledge and committing should happen in the same XA transaction.

      jboss.xml:
      [pre]
      <?xml version="1.0" encoding="UTF-8"?>

      <resource-managers>
      <resource-manager>
      <res-name>managedQueueConnectionFactory</res-name>
      <res-jndi-name>java:JmsXA</res-jndi-name>
      </resource-manager>
      <resource-manager>
      <res-name>managedQueuePing</res-name>
      <res-jndi-name>queue/queuePing</res-jndi-name>
      </resource-manager>
      <resource-manager>
      <res-name>managedQueuePong</res-name>
      <res-jndi-name>queue/queuePong</res-jndi-name>
      </resource-manager>
      </resource-managers>
      <enterprise-beans>
      <message-driven>
      <ejb-name>test/pingpong/PingMDB</ejb-name>
      <configuration-name>My Message Driven Bean</configuration-name>
      <!--destination-jndi-name>java:comp/env/managedQueuePing</destination-jndi-name-->
      <destination-jndi-name>queue/queuePing</destination-jndi-name>
      </message-driven>
      <message-driven>
      <ejb-name>test/pingpong/PongMDB</ejb-name>
      <configuration-name>My Message Driven Bean</configuration-name>
      <!--destination-jndi-name>java:comp/env/managedQueuePong</destination-jndi-name-->
      <destination-jndi-name>queue/queuePong</destination-jndi-name>
      </message-driven>
      </enterprise-beans>

      [/pre]
      How do I have to use the <destination-jndi-name> tag? As I did above (the real jndi name) or as I did in the commented out version (the managed jndi name as link to the real jndi name)?

      The problem with both versions:
      when I use the managed jndi-name, the MDB is never invoked (indeed StdServerSession is never invoked).
      When using the real jndi-name, StdServerSession starts with useLocalTX=true (acknowledging messages even when the global tx is rolled back afterwards.

      What should I do? One of those must be a bug, right?

      Thanks in advance,

      Frito