JTA事务超时故障排除

时间:2018-05-17 13:59:21

标签: java oracle jboss jta

设定:

  • Oracle 12 DB
  • JBoss EAP7
  • 在JBoss上运行的Web服务,插入到数据库
  • Batchprogramm在一小时内从多个线程调用web服务大约130.000次

问题:

  

2018-04-26 18:20:44,675 +0200 [WARN] [com.arjuna.ats.arjuna](交易收割者)ARJUNA012117:TransactionReaper :: TX 0的检查超时:ffffac110923:-4c44ed1d:5ac9329e:6866ea在州RUN

     

2018-04-26 18:20:44,675 +0200 [WARN] [com.arjuna.ats.arjuna](交易收割者工人0)ARJUNA012095:行动中止ID 0:ffffac110923:-4c44ed1d:5ac9329e:6866ea被调用当多个线程在其中活动时。

     

2018-04-26 18:20:44,679 +0200 [WARN] [com.arjuna.ats.arjuna](交易收割者工人0)ARJUNA012381:行动ID 0:ffffac110923:-4c44ed1d:5ac9329e:6866ea已完成多个线程 - 线程默认任务-48正在进行中xxx.BaseEntity.getNextValue(BaseEntity.java:28)

这种情况在重负载的生产环境中经常发生,而不是在处理较少的记录时,而不是在具有完全相同负载的相同测试环境中。

最后一行显示从序列中获取下一个值时发生此事务超时(300秒):

CREATE SEQUENCE "XXX_S"  MINVALUE xxx MAXVALUE xxx INCREMENT BY 1 START WITH xxx CACHE 2 NOORDER  NOCYCLE  NOPARTITION ;

我知道Oracle需要锁定/解锁序列以保持序列一致,因此我的并行webservice调用必须以某种方式遇到死锁或大量争用,从而产生超时。

如何找到此问题的根源?我可以尝试操作哪些参数?

1 个答案:

答案 0 :(得分:0)

问题已经解决,尽管非常令人不满意。我们删除了并行性。

相关问题