【问题标题】:Could not commit session or rollback无法提交会话或回滚
【发布时间】:2014-12-01 21:05:15
【问题描述】:

我正在使用 jBPM5,并且我已经将 Bitronix 事务管理器 (BTM) 配置为 jBPM 流程持久性单元使用的事务管理器。

过去两周一切正常,但突然开始失败并出现以下异常,这导致我重新启动应用程序服务器。重启后一切正常。

异常堆栈跟踪:

com.xxx.jbpm.workflow.exception.WorkflowException: Could not commit session or rollback
  at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:97)
  at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:334)
  at com.xxx.platform.eventpublisher.xxxEventPublisher.publish(xxxEventPublisher.java:16)
  at com.xxx.xxx.wsserver.impl.dlp.DLPCheckTask.publish(DLPCheckTask.java:97)
  at com.xxx.xxx.wsserver.impl.dlp.DLPCheckTask.run(DLPCheckTask.java:56)
  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
  at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.RuntimeException: Could not commit session or rollback
  at org.drools.persistence.SingleSessionCommandService.rollbackTransaction(SingleSessionCommandService.java:406)
  at org.drools.persistence.SingleSessionCommandService.execute(SingleSessionCommandService.java:381)
  at org.drools.command.impl.CommandBasedStatefulKnowledgeSession.startProcessInstance(CommandBasedStatefulKnowledgeSession.java:237)
  at com.xxx.jbpm.workflow.services.WorkflowServiceHandler.startWorkflow(WorkflowServiceHandler.java:71)
  at com.xxx.jbpm.workflow.impl.WorkflowManagerImpl.startWorkflow(WorkflowManagerImpl.java:46)
  ... 12 more
Caused by: java.lang.RuntimeException: Unable to rollback transaction
  at org.drools.persistence.jta.JtaTransactionManager.rollback(JtaTransactionManager.java:197)
  at org.drools.persistence.SingleSessionCommandService.rollbackTransaction(SingleSessionCommandService.java:402)
  ... 16 more
Caused by: java.lang.IllegalStateException: no transaction started on this thread
  at bitronix.tm.BitronixTransactionManager.rollback(BitronixTransactionManager.java:150)
  at org.drools.persistence.jta.JtaTransactionManager.rollback(JtaTransactionManager.java:191)
  ... 17 more

我们正在启动大量事务/工作流并使用 5.5.0 版的 jbpm 库。jbpm-human-task-core、jbpm-bpmn2、jbpm-persistence-jpa 的最终版本。

有人可以帮我指出正确的方向吗?

非常感谢, 马扬克

【问题讨论】:

    标签: transactions persistence drools jbpm bitronix


    【解决方案1】:

    事务回滚期间出现问题。但是,回滚本身是由另一个问题引起的(可能是与启动事务有关的问题)。但是,这里没有显示该异常。在此之前是否记录了任何异常?如果没有,能否尝试调试 SingleSessionCommandService.rollbackTransaction 操作,看看是哪个异常触发了回滚?

    关于您正在使用哪个版本的一些帮助会很有帮助,例如在最新版本中,应该已经记录了回滚的原因: https://github.com/droolsjbpm/drools/blob/master/drools-persistence-jpa/src/main/java/org/drools/persistence/SingleSessionCommandService.java#L364

    【讨论】:

    • 嗨@Kris,我正在使用与jBPM5(*.5.5.0.Final.jar)相关的所有库。我仔细观察了一下,发现 jBPM 5.2 库中存在一些错误。发布link。不确定它是否在 5.5.0 最终版本中得到修复。
    猜你喜欢
    • 1970-01-01
    • 2016-10-28
    • 1970-01-01
    • 2013-05-10
    • 1970-01-01
    • 1970-01-01
    • 2012-06-12
    • 1970-01-01
    相关资源
    最近更新 更多