为什么要"TransactionReaper ::检查TX超时"? JBoss server.log中的警告 [英] Why "TransactionReaper::check timeout for TX" warning in JBoss server.log
问题描述
我正在使用 Hibernate 3.6.0 和 JBoss 6.0-Final 版本,并且我的数据库是 MS-SQL Server 2008 .
我必须从LDAP服务器中获取员工数据并将其插入数据库-LDAP条目的数量为180,000或更多.
我使用 bean管理的交易,因为使用 CMT ,我的交易 从不 被落实(由于插入量很大)
I am using Hibernate 3.6.0 with JBoss 6.0-Final release and my Database is MS-SQL Server 2008.
I have to fetch employee data from LDAP server and insert those into database - the count of LDAP entries are 180,000 or more.
I am using bean managed transaction because using CMT my transaction never gets committed (because of high volumn of insert).
逻辑是:在while循环中,我继续获取&使用JPA(休眠)在数据库中创建条目.因此,作为无状态EJB api的一部分,我进行了大量的访存创建活动. 在处理每20 个记录之后,我调用了EntityManager.flush()/clear()和提交事务.
The logic is: in a while-loop I am keep on fetching & creating entries in database using JPA (Hibernate). Thus I am having a long series of fetch-create activities as part of a stateless EJB api. I am invoking entityManager.flush()/clear() and commiting transaction after processing every 20 records.
在我插入40,000条记录后,我正在关注JBoss Serevr.log中的 WARN消息.
不确定是警告还是错误?
虽然出现此错误,但服务器仍在运行,并继续在DB中插入新记录.
I am getting following WARN message in JBoss Serevr.log after I have inserted 40,000 records.
Not sure if it is really an warning or error?
Though I get this error, the server still runs and continues with inserting new records in DB.
有人可以建议我做错了什么吗?还是导致此错误的原因?
Can anyone suggest if I am doing something wrong? Or what causes this error?
是否可以增加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
任何帮助将不胜感激.
推荐答案
This website summarizes a couple of more ways for changing the transaction timeout of jboss. For example, you can specify it in your standalone.xml configuration file as a subsystem like this:
<subsystem xmlns="urn:jboss:domain:transactions:3.0">
<core-environment>
<process-id><uuid/></process-id>
</core-environment>
<recovery-environment socket-binding="txn-recovery-environment" status-socket-binding="txn-status-manager"/>
<coordinator-environment default-timeout="<your timeout value here>"/>
</subsystem>
或者通过子系统-> transaction-> Time Out
Alternative adjust the transaction timeout prameter via the jboss admin platform under subsystems->transaction->Time Out
也许会有所帮助.
这篇关于为什么要"TransactionReaper ::检查TX超时"? JBoss server.log中的警告的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!