3 Replies Latest reply on Jan 16, 2008 8:14 AM by dreuzel

    Transaction TimeOut and Stateful Session Bean

    rodrigotico

      Hello 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.