[jboss-dev-forums] [Design of Messaging on JBoss (Messaging/JBoss)] - Re: Bug in transactional delivery in an MDB

timfox do-not-reply at jboss.com
Thu Apr 26 14:05:12 EDT 2007


This is what we need to work out:

"adrian at jboss.org" wrote : 
  | 
  | The JBossMQ behaviour is to assume that an XASession behaves like
  | AUTO_ACKNOWLEDGE when the XASession is not enlisted in a JTA transaction.
  | (Some JMS implements throw an exception in this case).
  | 
  | There is one exception to this. When the XASession is being used as part of
  | a ServerSessionPool, the semantics need to be receive then enlist.
  | So for this, the XASession behaves like there is a transaction, it will be told
  | later what XID to use for the 2PC protocol.

The question I still don't understand is how does the XASession know it is being used as part of the ServerSessionPool, so it can apply the different behaviour.

Looking through the code, I can't for the life of me work out how this information is passed from the ServerSessionPool to the session.

Can anyone (Adrian? Weston?) shed any light on this. This is becoming a bit of a blocker for us.

So to recap:

We have an XASession that is not enlisted in a global tx.

In the case that XASession is created using a ServerSessionPool we want it to fall back to local transaction semantics. For all other cases we want it to have AUTO_ACK semantics.

How does the session know which semantics to follow in the absence of a global tx?

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4041124#4041124

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4041124



More information about the jboss-dev-forums mailing list