CMT problem rollback fails
hezimmer Jun 17, 2008 12:40 PMHi,
we are using JBoss 4.2.1 and BMP with Hibernate and an Oracle 9.2.0.8. database.
In our Session-Bean which is in CMT - Mode we have an method like this one:
public BOPlanKalk savePlanKalk(BOPlanKalk boPlanKalk) throws Exception { Plankalk planKalk = boPlanKalk.getPlankalk(); List<BOPlanAnzKalkPos> listBOplanAnzKalkPos = boPlanKalk.getlistBOPlanAnzKalkPos(); Session hnSession = HibernateUtil.getSession(); hnSession.saveOrUpdate(planKalk); Integer planKalkId = planKalk.getPrimaryKey(); for(PlanKalk kalk:listBOplanAnzKalkPos){ kalk.setPlanKalkid(planKalk.getPlankalkid); hnSession.save(kalk); } return boPlanKalk; }
Via HibernateUtil.getSession() we get an Session from the Hibernate Sessionfactory which bounds the session to the current JTA-Transaction.
After leaving the method, Hibernate begins to flush() and starts working against the database. Here the logs:
17:34:47,484 DEBUG [SQL] insert into PLANKALK (usersid, planversionid, edatum, plankalkid) values (?, ?, ?, ?) 17:34:47,484 INFO [STDOUT] Hibernate: insert into PLANKALK (usersid, planversionid, edatum, plankalkid) values (?, ?, ?, ?) 17:34:47,484 DEBUG [AbstractBatcher] Executing batch size: 1 17:34:47,484 DEBUG [Expectations] success of batch update unknown: 0 17:34:47,484 DEBUG [AbstractBatcher] about to close PreparedStatement (open PreparedStatements: 1, globally: 1) 17:34:47,484 DEBUG [ConnectionManager] skipping aggressive-release due to flush cycle
The first insert-Statement (above) was successfully processed. Due to an data error the second insert statement will fail (as expected). See below:
17:34:47,484 DEBUG [AbstractBatcher] about to open PreparedStatement (open PreparedStatements: 0, globally: 0) 17:34:47,484 DEBUG [SQL] insert into PLANPROKALKPOS (agenturnetto, frequenz, zeitungid, fixzuschlag, erscheinungstermin, mmzuschlag, kundemwst, agenturbrutto, kundebruttopreis, kundenetto, wmbezeichnung, abschlussrabatt, kundeauflage, gesamttitelkundebrutto, gesamttitelagenturnetto, anzeigenschluss, auflagesplit, gesamttitelkundemwst, ruecktritt, wmdefinition, kundeid, plankalkid, agenturmwst, druckvorlagen, titelgesamtauflage, kundebrutto, tsdpreis, pzuschlagsart, fixzuschlagsplit, gesamttitelkundenetto, mvg, steuerprozentid, waehrungid, zuschlagsart, pzuschlag, preisart, gesamttitelagenturmwst, gesamttitelagenturbrutto, planprokalkposid) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) 17:34:47,484 INFO [STDOUT] Hibernate: insert into PLANPROKALKPOS (agenturnetto, frequenz, zeitungid, fixzuschlag, erscheinungstermin, mmzuschlag, kundemwst, agenturbrutto, kundebruttopreis, kundenetto, wmbezeichnung, abschlussrabatt, kundeauflage, gesamttitelkundebrutto, gesamttitelagenturnetto, anzeigenschluss, auflagesplit, gesamttitelkundemwst, ruecktritt, wmdefinition, kundeid, plankalkid, agenturmwst, druckvorlagen, titelgesamtauflage, kundebrutto, tsdpreis, pzuschlagsart, fixzuschlagsplit, gesamttitelkundenetto, mvg, steuerprozentid, waehrungid, zuschlagsart, pzuschlag, preisart, gesamttitelagenturmwst, gesamttitelagenturbrutto, planprokalkposid) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) 17:34:47,484 WARN [TxConnectionManager] Connection error occured: org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener@1c9aeff[state=NORMAL mc=org.jboss.resource.adapter.jdbc.local.LocalManagedConnection@12646bb handles=1 lastUse=1213716882546 permit=true trackByTx=true mcp=org.jboss.resource.connectionmanager.JBossManagedConnectionPool$OnePool@36cb03 context=org.jboss.resource.connectionmanager.InternalManagedConnectionPool@14a427a xaResource=org.jboss.resource.connectionmanager.TxConnectionManager$LocalXAResource@1fa8 txSync=null] java.lang.IllegalArgumentException: Invalid Input Number at oracle.sql.NUMBER.toBytes(NUMBER.java:928) at oracle.jdbc.dbaccess.DBConversion.DoubleToNumberBytes(DBConversion.java:3065) at oracle.jdbc.driver.OraclePreparedStatement.setDouble(OraclePreparedStatement.java:1632) at org.jboss.resource.adapter.jdbc.WrappedPreparedStatement.setDouble(WrappedPreparedStatement.java:156) at org.hibernate.type.DoubleType.set(DoubleType.java:36) at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:136) at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:107) at org.hibernate.persister.entity.AbstractEntityPersister.dehydrate(AbstractEntityPersister.java:1997) at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2243) at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2660) at org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:56) at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:250) at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:234) at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:141) at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298) at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27) at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000) at de.socoto.server.ejb.mediacare.PlanKalkBean.savePlanKalk(PlanKalkBean.java:107) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:112) at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:166) at de.socoto.server.common.utils.SocotoLogInterceptor.pastInvoke(SocotoLogInterceptor.java:40) at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:118) at org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor.java:63) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:54) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:79) at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:191) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:62) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.aspects.security.RoleBasedAuthorizationInterceptor.invoke(RoleBasedAuthorizationInterceptor.java:166) at org.jboss.ejb3.security.RoleBasedAuthorizationInterceptor.invoke(RoleBasedAuthorizationInterceptor.java:108) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:77) at org.jboss.ejb3.security.Ejb3AuthenticationInterceptor.invoke(Ejb3AuthenticationInterceptor.java:106) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:46) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.stateless.StatelessContainer.dynamicInvoke(StatelessContainer.java:278) at org.jboss.aop.Dispatcher.invoke(Dispatcher.java:106) at org.jboss.aspects.remoting.AOPRemotingInvocationHandler.invoke(AOPRemotingInvocationHandler.java:82) at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:734) at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:560) at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:369) at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:165) 17:34:47,484 INFO [DoubleType] could not bind value 'NaN' to parameter: 1; Error; - nested throwable: (java.lang.IllegalArgumentException: Invalid Input Number) 17:34:47,484 DEBUG [AbstractBatcher] about to close PreparedStatement (open PreparedStatements: 1, globally: 1) 17:34:47,484 DEBUG [ConnectionManager] skipping aggressive-release due to flush cycle 17:34:47,484 DEBUG [JDBCExceptionReporter] could not insert: [de.socoto.common.pojo.Planprokalkpos] [insert into PLANPROKALKPOS (agenturnetto, frequenz, zeitungid, fixzuschlag, erscheinungstermin, mmzuschlag, kundemwst, agenturbrutto, kundebruttopreis, kundenetto, wmbezeichnung, abschlussrabatt, kundeauflage, gesamttitelkundebrutto, gesamttitelagenturnetto, anzeigenschluss, auflagesplit, gesamttitelkundemwst, ruecktritt, wmdefinition, kundeid, plankalkid, agenturmwst, druckvorlagen, titelgesamtauflage, kundebrutto, tsdpreis, pzuschlagsart, fixzuschlagsplit, gesamttitelkundenetto, mvg, steuerprozentid, waehrungid, zuschlagsart, pzuschlag, preisart, gesamttitelagenturmwst, gesamttitelagenturbrutto, planprokalkposid) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)] org.jboss.util.NestedSQLException: Error; - nested throwable: (java.lang.IllegalArgumentException: Invalid Input Number) at org.jboss.resource.adapter.jdbc.WrappedConnection.checkException(WrappedConnection.java:557) at org.jboss.resource.adapter.jdbc.WrappedStatement.checkException(WrappedStatement.java:563) at org.jboss.resource.adapter.jdbc.WrappedPreparedStatement.setDouble(WrappedPreparedStatement.java:160) at org.hibernate.type.DoubleType.set(DoubleType.java:36) at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:136) at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:107) at org.hibernate.persister.entity.AbstractEntityPersister.dehydrate(AbstractEntityPersister.java:1997) at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2243) at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2660) at org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:56) at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:250) at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:234) at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:141) at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298) at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27) at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000) at de.socoto.server.ejb.mediacare.PlanKalkBean.savePlanKalk(PlanKalkBean.java:107) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:112) at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:166) at de.socoto.server.common.utils.SocotoLogInterceptor.pastInvoke(SocotoLogInterceptor.java:40) at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:118) at org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor.java:63) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:54) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:79) at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:191) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:62) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.aspects.security.RoleBasedAuthorizationInterceptor.invoke(RoleBasedAuthorizationInterceptor.java:166) at org.jboss.ejb3.security.RoleBasedAuthorizationInterceptor.invoke(RoleBasedAuthorizationInterceptor.java:108) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:77) at org.jboss.ejb3.security.Ejb3AuthenticationInterceptor.invoke(Ejb3AuthenticationInterceptor.java:106) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:46) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.stateless.StatelessContainer.dynamicInvoke(StatelessContainer.java:278) at org.jboss.aop.Dispatcher.invoke(Dispatcher.java:106) at org.jboss.aspects.remoting.AOPRemotingInvocationHandler.invoke(AOPRemotingInvocationHandler.java:82) at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:734) at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:560) at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:369) at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:165) Caused by: java.lang.IllegalArgumentException: Invalid Input Number at oracle.sql.NUMBER.toBytes(NUMBER.java:928) at oracle.jdbc.dbaccess.DBConversion.DoubleToNumberBytes(DBConversion.java:3065) at oracle.jdbc.driver.OraclePreparedStatement.setDouble(OraclePreparedStatement.java:1632) at org.jboss.resource.adapter.jdbc.WrappedPreparedStatement.setDouble(WrappedPreparedStatement.java:156) ... 55 more 17:34:47,500 WARN [JDBCExceptionReporter] SQL Error: 0, SQLState: null 17:34:47,500 ERROR [JDBCExceptionReporter] Error; - nested throwable: (java.lang.IllegalArgumentException: Invalid Input Number)
So above is the stack from the debug output, very interesting are the following lines:
17:34:47,500 ERROR [AbstractFlushingEventListener] Could not synchronize database state with session org.hibernate.exception.GenericJDBCException: could not insert: [de.socoto.common.pojo.Planprokalkpos] at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103) at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91) at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43) at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2267) at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2660) at org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:56) at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:250) at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:234) at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:141) at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298) at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27) at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000) at de.socoto.server.ejb.mediacare.PlanKalkBean.savePlanKalk(PlanKalkBean.java:107) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:112) at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:166) at de.socoto.server.common.utils.SocotoLogInterceptor.pastInvoke(SocotoLogInterceptor.java:40) at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:118) at org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor.java:63) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:54) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:79) at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:191) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:62) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.aspects.security.RoleBasedAuthorizationInterceptor.invoke(RoleBasedAuthorizationInterceptor.java:166) at org.jboss.ejb3.security.RoleBasedAuthorizationInterceptor.invoke(RoleBasedAuthorizationInterceptor.java:108) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:77) at org.jboss.ejb3.security.Ejb3AuthenticationInterceptor.invoke(Ejb3AuthenticationInterceptor.java:106) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:46) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ej
So the problem is that the database operation fails and the connection to database is lost and there's no full rollback of the Hibernate Session. After executing the method above, the first insert-Statement is commited into database. We would expect an rollback and none of the data to be persisted in database. Maybe it could be an problem with the database-driver? (Oracle thin 9.2.0.8) The error message changed after
an test with another driver Version. Or is it a problem with Hibernate configuration?
Does anyone have an similar problem or any idea?
Thanks in advance,
Heiko