[jboss-user] [Beginners Corner] - jta transactions - simple question
vitor_b
do-not-reply at jboss.com
Fri Nov 17 16:53:48 EST 2006
Hello
Jboss: 4.0.5GA
java: 1.4
I think I'm missing something. Below you can find a simple piece of code. It is similar to every example which shows how to handle with jta transactions. It is from my stateful session bean. Ok lets look at that:
UserTransaction uT = sessionContext.getUserTransaction();
| try {
| uT.begin();
|
| uT.setRollbackOnly();
|
| uT.commit();
|
| }catch (Exception ex) {
| try {
| System.out.println("Caught exception: " + ex.getMessage());
| uT.rollback();
| System.out.println("rollback OK");
| } catch (Exception rex){
| System.out.println("***********************");
| System.out.println("Caught exception: " + rex.getMessage());
| throw new EJBException("Rollback failed: " + rex.getMessage());
| }
| throw new EJBException("Transaction failed: " + ex.getMessage());
|
| }
I expected to catch exception thrown by commit() method due to transaction rolled back. Then rollback transaction, and... the end. But something doesn't work like i expected. There is an exception thrown by method rollback(). Why?
Below interesting output:
22:29:44,625 INFO [STDOUT] Caught exception: Already marked for rollback TransactionImpl:XidImpl[FormatId=257, GlobalId=LENOVO-98B03F24/89, BranchQual=, localId=89] OK
22:29:44,625 INFO [STDOUT] *********************** ???
22:29:44,671 INFO [STDOUT] Caught exception: No transaction.???
22:29:44,671 ERROR [LogInterceptor] EJBException in method: public abstract void home.main.Main.rollbackMethod() throws java.rmi.RemoteException:
javax.ejb.EJBException: Rollback failed: No transaction.
at home.main.MainBean.rollbackMethod(MainBean.java:128)
...
Can you explain me why i cannot roll back my transaction?
vitor_b
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3986998#3986998
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3986998
More information about the jboss-user
mailing list