[jboss-user] [JBoss Messaging] - Re: automatically truncate message table on server startup

paul_da_programmer do-not-reply at jboss.com
Wed May 23 15:51:31 EDT 2007


"timfox" wrote : If you are using only non persistent messages, then there is nothing to "back out" from the DB, since nothing has been saved to the db.
  | 
  | Perhaps I don't follow what you are trying to say...

What I want to back out (or commit atomically) is the XA DB work that my biz functionality has done - using 2PC prepare,ack, commit semantics. If the JMS implementation is an XA compliant one, even without persistence then the answer is yes.

I'm thinking this is the sequence of events
1. TX manager starts a new XA transaction
2. JMS (since its XA) enrolls in the transaction.
3. onMsg is invoked, 2 Oracle XA DS are updated, DS1 and DS2. Both are enrolled in the same transaction.
4. onMsg returns successfully (so far so good)
5. the TX Manager calls prepare on all 3 resources JMS, DS1, DS2
6. the TX Mananger receives OK from all three resources
7. the TX Manager calls commit on all 3 resources JMS, DS1, DS2
8. whoops, DS2 commit fails - and notifies TX Manager
9. the TX Manager calls rollback on all 3 resources

If JMS if not a XA resource it will not honor the rollback at the last step and would cause the DB updates to never be applied.

I hope this explains my motivation...

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

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



More information about the jboss-user mailing list