Uploaded image for project: 'jBPM'
  1. jBPM
  2. JBPM-8587

Deadlock deducted on JBPM tables for concurrent transaction

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • Major
    • None
    • 7.0.0.Final
    • Persistence
    • None
    • NEW
    • NEW
    • Hide

      Hello, we are using drools-flow with JPA, using Hibernate and Oracle RDBMS.

      We do have multiple concurrent stateful sessions.
      Trying to process around 350 requests by posting the request into weblogic queue one after the other.

      The deadlock error occurs.

      Logs ;

      Hibernate: delete from CorrelationPropertyInfo where propertyId=? and OPTLOCK=?
      Hibernate: delete from CorrelationKeyInfo where keyId=? and OPTLOCK=?
      <04-Jun-2019, 12:19:31,513 PM BST> <Warning> <org.drools.persistence.PersistableRunner> <BEA-000000> <Could not commit session
      org.jbpm.workflow.instance.WorkflowRuntimeException: [MDAProcess2:123,225 - No Device for Rollback:28] – org.hibernate.exception.LockAcquisitionException: could not execute statement
      at org.jbpm.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:180)
      at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerNodeInstance(NodeInstanceImpl.java:367)
      at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerCompleted(NodeInstanceImpl.java:326)
      at org.jbpm.workflow.instance.node.ActionNodeInstance.triggerCompleted(ActionNodeInstance.java:60)
      at org.jbpm.workflow.instance.node.ActionNodeInstance.internalTrigger(ActionNodeInstance.java:56)
      Truncated. see log file for complete stacktrace
      Caused By: javax.persistence.PersistenceException: org.hibernate.exception.LockAcquisitionException: could not execute statement
      at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1692)
      at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1602)
      at org.hibernate.jpa.internal.QueryImpl.getResultList(QueryImpl.java:492)
      at org.jbpm.persistence.JpaProcessPersistenceContext.remove(JpaProcessPersistenceContext.java:76)
      at org.jbpm.persistence.processinstance.JPAProcessInstanceManager.removeProcessInstance(JPAProcessInstanceManager.java:176)
      Truncated. see log file for complete stacktrace
      Caused By: org.hibernate.exception.LockAcquisitionException: could not execute statement
      at org.hibernate.dialect.Oracle8iDialect$3.convert(Oracle8iDialect.java:520)
      at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:42)
      at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:111)
      at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:97)
      at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:207)
      Truncated. see log file for complete stacktrace
      Caused By: java.sql.SQLException: ORA-00060: deadlock detected while waiting for resource

      at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:450)
      at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:399)
      at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1059)
      at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:522)
      at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:257)
      Truncated. see log file for complete stacktrace

      Show
      Hello, we are using drools-flow with JPA, using Hibernate and Oracle RDBMS. We do have multiple concurrent stateful sessions. Trying to process around 350 requests by posting the request into weblogic queue one after the other. The deadlock error occurs. Logs ; Hibernate: delete from CorrelationPropertyInfo where propertyId=? and OPTLOCK=? Hibernate: delete from CorrelationKeyInfo where keyId=? and OPTLOCK=? <04-Jun-2019, 12:19:31,513 PM BST> <Warning> <org.drools.persistence.PersistableRunner> <BEA-000000> <Could not commit session org.jbpm.workflow.instance.WorkflowRuntimeException: [MDAProcess2:123,225 - No Device for Rollback:28] – org.hibernate.exception.LockAcquisitionException: could not execute statement at org.jbpm.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:180) at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerNodeInstance(NodeInstanceImpl.java:367) at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerCompleted(NodeInstanceImpl.java:326) at org.jbpm.workflow.instance.node.ActionNodeInstance.triggerCompleted(ActionNodeInstance.java:60) at org.jbpm.workflow.instance.node.ActionNodeInstance.internalTrigger(ActionNodeInstance.java:56) Truncated. see log file for complete stacktrace Caused By: javax.persistence.PersistenceException: org.hibernate.exception.LockAcquisitionException: could not execute statement at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1692) at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1602) at org.hibernate.jpa.internal.QueryImpl.getResultList(QueryImpl.java:492) at org.jbpm.persistence.JpaProcessPersistenceContext.remove(JpaProcessPersistenceContext.java:76) at org.jbpm.persistence.processinstance.JPAProcessInstanceManager.removeProcessInstance(JPAProcessInstanceManager.java:176) Truncated. see log file for complete stacktrace Caused By: org.hibernate.exception.LockAcquisitionException: could not execute statement at org.hibernate.dialect.Oracle8iDialect$3.convert(Oracle8iDialect.java:520) at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:42) at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:111) at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:97) at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:207) Truncated. see log file for complete stacktrace Caused By: java.sql.SQLException: ORA-00060: deadlock detected while waiting for resource at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:450) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:399) at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1059) at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:522) at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:257) Truncated. see log file for complete stacktrace

    Description

      Hello, we are using drools-flow with JPA, using Hibernate and Oracle RDBMS.

      We do have multiple concurrent stateful sessions.

      We are getting Deadlock error when we try processing heavy load.
      There is a deadlock which is happening on correlationkey info table when the load is high.
      I have created the index on event types table for instance id column as suggested in the other thread . but still we are facing the same issue.

      Hibernate: delete from CorrelationPropertyInfo where propertyId=? and OPTLOCK=?
      Hibernate: delete from CorrelationKeyInfo where keyId=? and OPTLOCK=?
      <04-Jun-2019, 12:19:31,513 PM BST> <Warning> <org.drools.persistence.PersistableRunner> <BEA-000000> <Could not commit session
      org.jbpm.workflow.instance.WorkflowRuntimeException: [MDAProcess2:123,225 - No Device for Rollback:28] – org.hibernate.exception.LockAcquisitionException: could not execute statement
      at org.jbpm.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:180)
      at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerNodeInstance(NodeInstanceImpl.java:367)
      at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerCompleted(NodeInstanceImpl.java:326)
      at org.jbpm.workflow.instance.node.ActionNodeInstance.triggerCompleted(ActionNodeInstance.java:60)
      at org.jbpm.workflow.instance.node.ActionNodeInstance.internalTrigger(ActionNodeInstance.java:56)
      Truncated. see log file for complete stacktrace
      Caused By: javax.persistence.PersistenceException: org.hibernate.exception.LockAcquisitionException: could not execute statement
      at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1692)
      at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1602)
      at org.hibernate.jpa.internal.QueryImpl.getResultList(QueryImpl.java:492)
      at org.jbpm.persistence.JpaProcessPersistenceContext.remove(JpaProcessPersistenceContext.java:76)
      at org.jbpm.persistence.processinstance.JPAProcessInstanceManager.removeProcessInstance(JPAProcessInstanceManager.java:176)
      Truncated. see log file for complete stacktrace
      Caused By: org.hibernate.exception.LockAcquisitionException: could not execute statement
      at org.hibernate.dialect.Oracle8iDialect$3.convert(Oracle8iDialect.java:520)
      at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:42)
      at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:111)
      at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:97)
      at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:207)
      Truncated. see log file for complete stacktrace
      Caused By: java.sql.SQLException: ORA-00060: deadlock detected while waiting for resource

      at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:450)
      at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:399)
      at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1059)
      at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:522)
      at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:257)
      Truncated. see log file for complete stacktrace

      Attachments

        Activity

          People

            swiderski.maciej Maciej Swiderski (Inactive)
            vinuthnareddy vinuthna Reddy (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated: