Hi,
I am facing a strange problem regarding transaction handling in 'ejb + spring + hibernate' application. There is a need for me to create / update 5 tables (One master and 4 associated tables) in database in one shot. The thing works fine when I test with happy scenario. But when I try to crash the system, four reference tables get updated, but the master table. I am wondering why this happens, coz the system should delete updated records from the reference tables ideally.
I have set the following in spring mapping file to say I am using jboss transaction manager.
org.hibernate.dialect.Oracle9Dialect
true
false
org.hibernate.transaction.JBossTransactionManagerLookup
I am catching generic 'Exception' in the session bean (just to test), and have set the following:
this.sessionContext.setRollbackOnly();
But strangely, the application doesn't go into the catch block. So it looks like everything is ok. But when the application leaves the method it gives the following error :
11:53:16,309 ERROR [LogInterceptor] TransactionRolledbackException in method: public abstract com.... SomeException,java.rmi.RemoteException, causedBy:
org.jboss.tm.JBossRollbackException: Unable to commit, tx=TransactionImpl:XidImpl[FormatId=257, GlobalId=Asiri/19, BranchQual=, localId=19] status=STATUS_NO_TRANSACTION
at org.jboss.tm.TransactionImpl.commit(TransactionImpl.java:354)
...
If anyone has encountered a similar problem and managed solve it out, please help me in this regard.
Thanks in Advance,
Asiri