java - JTA Atomikos 和 JBPM 死锁
问题描述
场景:
- 线程 1 将执行命令 get 任务,它们锁定运行时引擎并执行 getTask
07:29:05.875 [http-nio-8080-exec-1] DEBUG o.j.r.m.i.PerProcessInstanceRuntimeManager - Trying to get a lock java.util.concurrent.locks.ReentrantLock@624abefe[Unlocked] for org.kie.internal.runtime.manager.context.ProcessInstanceIdContext@11ae246a by org.jbpm.runtime.manager.impl.RuntimeEngineImpl@22cfbd8f
07:29:05.875 [http-nio-8080-exec-1] DEBUG o.j.r.m.i.PerProcessInstanceRuntimeManager - Lock java.util.concurrent.locks.ReentrantLock@624abefe[Locked by thread http-nio-8080-exec-1] taken for org.kie.internal.runtime.manager.context.ProcessInstanceIdContext@11ae246a by org.jbpm.runtime.manager.impl.RuntimeEngineImpl@22cfbd8f for waiting threads by false
07:29:05.876 [http-nio-8080-exec-1] DEBUG o.j.s.t.p.TaskTransactionInterceptor - Instantiating KieSpringTransactionManager
- 完成任务后,他们仍然锁定运行时引擎
- 发出执行另一任务的请求,应用程序尝试获取锁
07:30:22.224 [http-nio-8080-exec-5] DEBUG o.j.r.m.i.DefaultRuntimeEnvironment - Unable to find on initialize ejb schduler service due to org.jbpm.services.ejb.timer.EjbSchedulerService
07:30:22.272 [http-nio-8080-exec-5] DEBUG o.j.r.m.i.PerProcessInstanceRuntimeManager - Trying to get a lock java.util.concurrent.locks.ReentrantLock@624abefe[Locked by thread http-nio-8080-exec-1] for org.kie.internal.runtime.manager.context.ProcessInstanceIdContext@16bd5ad7 by org.jbpm.runtime.manager.impl.RuntimeEngineImpl@45c4e851
在这一步,他们将等待超时以获取锁。
我的问题是如何在步骤 1 之后无法释放锁。
解决方案
推荐阅读
- vee-validate - Vee-validate 使用 3rd 方库扩展验证
- javascript - Ant design的“Step组件”这行怎么去掉?
- sql - 如何获取第二行
- excel - 我无法对单列数据集进行排序
- ssl - 科尔多瓦混合应用程序中的 NSURLErrorDomain 代码 1200 和 1004
- angular - Angular 8 库的全局 CSS
- angular - 用于获取令牌 api 的 Microsoft Graph api 返回请求的资源上不存在“Access-Control-Allow-Origin”标头
- django - 如何更改 django filter_horizontal 过滤器参数
- actionscript-3 - 使 TLFTextField 的宽度适合其在 AS3 中的 html 内容的长度
- javascript - React Router - 链接点击时的 URL 更新但组件未呈现