Transaction TimeOut and Stateful Session Bean
rodrigotico Jan 15, 2008 8:00 PMHello All,
********
This is not a doubt, it's just a report of a problem that I had and solve it after hours!
This is just in case someone pass thru the same error!
********
I have a SFSB on my project that inserts records to my database from a uploaded file.
My session timeout is huge. When I use a file with many records to import (more than 5 minutes making database operations) I get this error:
22:15:56,250 WARN [arjLoggerI18N] [com.arjuna.ats.arjuna.coordinator.BasicAction_58] - Abort of action id -3f57fe87:dd1e:478d4a9e:49 invoked while multiple threads active within it. 22:15:56,251 WARN [arjLoggerI18N] [com.arjuna.ats.arjuna.coordinator.CheckedAction_2] - CheckedAction::check - atomic action -3f57fe87:dd1e:478d4a9e:49 aborting with 1 threads active! 22:15:56,282 ERROR [AssertionFailure] an assertion failure occured (this may indicate a bug in Hibernate, but is more likely due to unsafe use of the session) org.hibernate.AssertionFailure: bug adding collection twice at org.hibernate.engine.StatefulPersistenceContext.addCollection(StatefulPersistenceContext.java:720) at org.hibernate.engine.StatefulPersistenceContext.addInitializedDetachedCollection(StatefulPersistenceContext.java:753) at org.hibernate.event.def.ProxyVisitor.reattachCollection(ProxyVisitor.java:65) at org.hibernate.event.def.WrapVisitor.processCollection(WrapVisitor.java:45) at org.hibernate.event.def.AbstractVisitor.processValue(AbstractVisitor.java:101) at org.hibernate.event.def.WrapVisitor.processValue(WrapVisitor.java:98) at org.hibernate.event.def.AbstractVisitor.processEntityPropertyValues(AbstractVisitor.java:55) at org.hibernate.event.def.DefaultFlushEntityEventListener.wrapCollections(DefaultFlushEntityEventListener.java:192) at org.hibernate.event.def.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:125) at org.hibernate.event.def.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:196) at org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:76) at org.hibernate.event.def.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:35) at org.hibernate.impl.SessionImpl.autoFlushIfRequired(SessionImpl.java:969) at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1114) at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
I changed the transaction timeout at jboss config and everything worked good:
(/server/default/config/jboss-service.xml)
<!-- The default was 300 seconds --> <attribute name="TransactionTimeout">1000</attribute>
Thanks.