我使用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