[英]JTA Transaction Timeout Troubleshooting
設定:
問題:
2018-04-26 18:20:44,675 +0200 [WARN] [com.arjuna.ats.arjuna](事務收割機)ARJUNA012117:TransactionReaper ::檢查TX超時0:ffffac110923:-4c44ed1d:5ac9329e:6866ea處於運行狀態
2018-04-26 18:20:44,675 +0200 [WARN] [com.arjuna.ats.arjuna](Transaction Reaper Worker 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)
這通常是在生產環境中承受高負載的情況下發生的,而不是在處理較少的記錄時發生,也並非在負載完全相同的相同測試環境中發生。
最后一行顯示此事務超時(300s)在從序列中獲取下一個值時發生:
CREATE SEQUENCE "XXX_S" MINVALUE xxx MAXVALUE xxx INCREMENT BY 1 START WITH xxx CACHE 2 NOORDER NOCYCLE NOPARTITION ;
我知道Oracle需要鎖定/解鎖序列以使其保持一致,因此我的並行Web服務調用必須以某種方式陷入死鎖或大量爭用,從而導致超時。
我如何找到這個問題的根源? 我可以嘗試操縱哪些參數?
問題已經解決,盡管非常令人不滿意。 我們刪除了並行性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.