Win a copy of Think Java: How to Think Like a Computer Scientist this week in the Java in General forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Transactions and MDBs

 
Nidhi Juneja
Greenhorn
Posts: 27
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi all,
Need ur inputs about using Container Managed Transaction with MDBs.

I have a MDB which uses some helper classes and a Stateless Session Bean for performing its business logic. I am using Container Managed Transaction for the MDB. Do I need to seperately specify the transaction attribute for the Stateless Session Bean this MDB uses or will it be automatically included in the MDB's transaction.
According to Ed Roman:
If you use Conatiner Managed Transaction, MDB will read off the message in the same transaction as it performs its business logic.

Also how can I test that transactions are working as expected.

Thanks,
Nidhi
 
Sergiu Truta
Ranch Hand
Posts: 121
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
If you want the Stateless Session Bean's methods to run inside the transaction started by the MDB, you should use "Required" as a <trans-attribute>.
For example, if inside onMessage() you are calling a session bean named ProcessSession, inside the deployment descriptor for this session bean you should have:
<container-transaction>
<method>
<ejb-name>ProcessSession</ejb-name>
<method-name>methodName or '*' for all methods</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
Inside Ed Roman's "Mastering EJB 2nd edition" you can find a pretty detailed explanation about Container Managed Transaction.
cheers
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic