aspose file tools*
The moose likes EJB Certification (SCBCD/OCPJBCD) and the fly likes Clarification on Trsxn propagation frm BMT to CMT Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Certification » EJB Certification (SCBCD/OCPJBCD)
Bookmark "Clarification on Trsxn propagation frm BMT to CMT" Watch "Clarification on Trsxn propagation frm BMT to CMT" New topic
Author

Clarification on Trsxn propagation frm BMT to CMT

Stephen Selvaraj
Greenhorn

Joined: Jan 21, 2005
Posts: 21
Hi All,
I have a doubt, say I start a trsxn (tc1) in a BMT its not committed, i call a method of another bean with CMT with a trsxn (tb2), if I call setRollBackOnly() over in this method, while this method returns to my bmt method which is in trsxn tc1 and try to do a getStatus() will my trsxn be rolled back.
Ogi.. let me summarize, Can I rollback a BMT trsxn from CMT trsxn?

-Stephen
Jim Janssens
Ranch Hand

Joined: Sep 24, 2004
Posts: 210
I you start a transaction in a BMT bean, you can call a CMT bean which will participate in the same transaction. If the CMT bean calls setRollbackOnly() the transaction will be rolled back.

1. Bean1 start a transaction (tx.begin)
2. Bean1 calls method on bean2 which has tx attrib required (so its CMT)
3. The method on bean2 calls setRollbackOnly
4. The method in bean1 will get a TransactionRolledBack(Local)Exception

Note that there is NO tx2. If the trans attrib on bean2 was requiresNew, a tx2 would have been started by bean2 which would not affect the tx started by bean 1. Also, Bean one cannot start a second transaction when the first one is not commited.

So, a BMT started transaction can propagate to a CMT bean. A transaction started in a CMT bean can only progagate to a CMT bean and NOT a BMT bean.
Stephen Selvaraj
Greenhorn

Joined: Jan 21, 2005
Posts: 21
many thanks Koen,
-Stephen
 
Consider Paul's rocket mass heater.
 
subject: Clarification on Trsxn propagation frm BMT to CMT