[jboss-dev-forums] [Design of Messaging on JBoss (Messaging/JBoss)] - Re: JBMESSAGING-410 - Use of JmsXA in non transactional envi

ovidiu.feodorov@jboss.com do-not-reply at jboss.com
Thu Aug 31 16:48:54 EDT 2006


JMS 1.1 Specification Section 8.5 XA Session:

anonymous wrote : 
  | XASession provides access to what looks like a normal Session object and a javax.transaction.xa.XAResource object which controls the session?s transaction context. The functionality of XAResource closely resembles that defined by the standard X/Open XA Resource interface.
  | 
  | An application server controls the transactional assignment of an XASession by obtaining its XAResource. It uses the XAResource to assign the session to a distributed transaction, prepare and commit work on the transaction, and so on.
  | 
  | An XAResource provides some fairly sophisticated facilities for interleaving work on multiple transactions, recovering a list of transactions in progress, and so on. A JTA aware JMS provider must fully implement this functionality. This could be done by using the services of a database that supports XA, or a JMS provider may choose to implement this functionality from scratch. A client of the application server is given the XASession?s Session. Behind the scenes, the application server controls the transaction management of the underlying XASession.
  | 
  | It is important to note that a distributed transaction context does not flow with a message; that is, the receipt of the message cannot be part of the same
  | transaction that produced the message. This is the fundamental difference between messaging and synchronized processing. Message producers and
  | consumers use an alternative approach to reliability that is built upon a JMS provider ?s ability to supply a once-and-only-once message delivery guarantee.
  | 
  | To reiterate, the act of producing and/or consuming messages in a Session can be transactional. The act of producing and consuming a specific message across different sessions cannot.
  | anonymous wrote : 
  |   | 
  |   | This is the letter of the spec, and nothing else of substance is specified about XASession throughout. The phrase that I find interesting is the following: "An application server controls the transactional assignment of an XASession by obtaining its XAResource. It uses the XAResource to assign the session to a distributed transaction, prepare and commit work on the transaction, and so on."
  |   | 
  |   | Zooming again, "It uses the XAResource to assign the session to a distributed transaction [...]".
  |   | 
  |   | If there is no distributed transaction, then there can be no "prepare and commit work on the transaction", hence the session is non-transactional.

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

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



More information about the jboss-dev-forums mailing list