我使用Hibernate的3.6.0與JBoss的6.0決賽釋放和我的數據庫是MS-SQL Server 2008的。 我必須從LDAP服務器獲取員工數據並將其插入到數據庫中 - LDAP條目的數量爲180,000或更多。 我使用Bean管理的事務,因爲使用CMT我的交易從未被提交(因爲插入的高volumn)。爲什麼在JBoss的 「TransactionReaper ::檢查超時TX」 警告的server.log
邏輯是:在一個while循環中,我繼續獲取&使用JPA(Hibernate)在數據庫中創建條目。因此,我作爲無狀態EJB api的一部分進行了一系列的獲取創建活動。 我正在調用entityManager.flush()/ clear()和提交事務處理後每20個記錄。
我在JBoss Serevr.log中收到以下WARN消息我插入了40,000條記錄。 不確定它是否真的是一個警告或錯誤?
雖然我得到這個錯誤,服務器仍然運行,並繼續在數據庫中插入新記錄。
任何人都可以建議如果我做錯了什麼?或者是什麼導致這個錯誤?
有沒有辦法讓增加EJB超時?
16:52:49,690 WARN [com.arjuna.ats.arjuna] ARJUNA-12117 TransactionReaper::check timeout for TX 0:ffff105966b8:126a:4db9fc0a:a4 in state RUN
16:52:49,691 WARN [com.arjuna.ats.arjuna] ARJUNA-12121 TransactionReaper::doCancellations worker Thread[Transaction Reaper Worker 0,5,jboss] successfully canceled TX 0:ffff105966b8:126a:4db9fc0a:a4
任何幫助將不勝感激。
增加一個**更高的** TransactionTimeout值(如3600秒),我沒有看到這樣的警告了。所以看起來我需要爲這種類型的工作流設置「更高的TransactionTimeout」值。 – javauser71 2011-04-29 06:25:49
我找到了原因,可以使用Api級別通過註釋來增加超時值。 – javauser71 2011-06-13 18:28:04