1 Reply Latest reply on Oct 17, 2008 8:48 AM by jblas

    Deadlock on sqlserver

    owensky

      I am getting deadlock problems running against sqlserver, running with isolation level 2 (Read Committed). The same app runs ok against Oracle.

      The problem occurs under load typically after a few hundred transactions

      Dropping the isolation level to 1 (Read Uncommitted) stops the deadlocks (though naturally introducing the risk of dirty reads).

      I'm running jbpm 3.1.2 (the same occurs on 3.1), SQL Server 2005 Standard Ed (same occurs on Express), sqljdbc 1.1.

      Any suggestions or comments anyone?

      Owen.


      ERROR - JDBCExceptionReporter - Transaction (Process ID 58) was deadlocked on lock resources with another proce
      ss and has been chosen as the deadlock victim. Rerun the transaction.
      org.hibernate.exception.GenericJDBCException: could not initialize a collection: [org.jbpm.taskmgmt.exe.TaskMgmtInstance
      .taskInstances#4377]
      at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:91)
      at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:79)
      at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
      at org.hibernate.loader.Loader.loadCollection(Loader.java:1926)
      at org.hibernate.loader.collection.CollectionLoader.initialize(CollectionLoader.java:71)
      at org.hibernate.persister.collection.AbstractCollectionPersister.initialize(AbstractCollectionPersister.java:52
      0)
      at org.hibernate.event.def.DefaultInitializeCollectionEventListener.onInitializeCollection(DefaultInitializeColl
      ectionEventListener.java:60)
      at org.hibernate.impl.SessionImpl.initializeCollection(SessionImpl.java:1627)
      at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:344)
      at org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:86)
      at org.hibernate.collection.AbstractPersistentCollection.readElementExistence(AbstractPersistentCollection.java:
      142)
      at org.hibernate.collection.PersistentSet.add(PersistentSet.java:162)
      at org.jbpm.taskmgmt.exe.TaskMgmtInstance.addTaskInstance(TaskMgmtInstance.java:376)
      at org.jbpm.taskmgmt.exe.TaskMgmtInstance.createTaskInstance(TaskMgmtInstance.java:104)
      at org.jbpm.taskmgmt.exe.TaskMgmtInstance.createStartTaskInstance(TaskMgmtInstance.java:272)

        • 1. Re: Deadlock on sqlserver

          I have the same problem with Oracle 9i. But it happens somtimes only.
          My app is ajax-based so the problem is about session and LIE's. With hibernate.initialization method I've resolved many issues like this.