Hi All, For Stateless bean with BMT: If a bean method in tx neither commits nor rollbacks the tx and throws an Application Exception, what happens to tx and what exception client receives? 1.From one side App Exception doesn't automaticly causes tx to rollback, 2.from another side Stateless must to end the tx before returning from the method. Spec says that App Exception is propagated to client always, but this is contradicting to side 2. So what is the answer? Thanks, :roll:
Diana<p>--------<br />SCJP<br />SCWD<br />Passed IBM Portal Multiplatform Implementation
If a stateless session bean instance starts a transaction in a business method, it must commit the transaction before the business method returns. The Container must detect the case in which a transaction was started, but not completed, in the business method, and handle it as follows:
Log this as an application error to alert the system administrator.
Roll back the started transaction
Discard the instance of the session bean
Throw the java.rmi.RemoteException to the client if the client is a remote client, or throw the javax.ejb.EJBException if the client is a local client.
From this, I believe the Container would enforce rule 2. Regards, Andrew [ September 23, 2003: Message edited by: Andrew Monkhouse ]
Thanks Andrew, It makes sense now. So even if bean throws an AppException without ending a tx, container will respond as you described instead of propagating AppException to the client. Am I right? Thanks, Diana
author and jackaroo