Statefull Session EJB(2.1)朇lient Crashed朒ow to rollback the transaction?
I wish to begin a transaction (JTA) in one method of a statefull BMP EJB, call multiple methods from multiple client calls (which could even be JSPs/Servlets initiated by the user from his browser in a session), all the methods are in same transaction and would process the client input in the same transaction, and finally the transaction would be committed in the last method.
I am testing this in JDeveloper 10.1.3.0.2
All this works fine. But when the client crashes how do I rollback the transaction which was started by the client?
I understand that the ejbTimeout and timer service is for stateless session beans, not statefull. So that could not be used. Am I correct on that?
I tried setting time out in orion deployment descriptor of the EJB. It just marks the transaction as STATUS_MARKED_ROLLBACK, the pending updates to data are not rolled back by the container/transaction manager ?causing issues to other clients trying to access data.
Also I tried setTRansactionTimeOut() on the user transaction. But that marks the transaction for rollback, does not do actual rollback.
I tried doing rollback in ejbRemove/Passivate. But they do not get called while the bean is associated with the transaction.
So how is this to be handled?
Many thanks & regards

