-->

JBoss的垃圾邮件XA恢复警告(JBoss spamming XA Recovery warnin

2019-08-07 22:38发布

我正在连接到Microsoft SQL Server上多个支持XA数据源的一个JPA / Spring应用程序。 一切都运行得很好,随着全球交易正常启动,并根据需要回滚...

但是,飘飞的JBoss去野外,开始滥发以下警告每隔几秒钟:

10:25:22,524 WARN  [com.arjuna.ats.jta] (Periodic Recovery) ARJUNA016027: Local XARecoveryModule.xaRecovery got XA exception XAException.XAER_RMERR: javax.transaction.xa.XAException: The function RECOVER: failed. The status is: -3. Error: "*** SQLJDBC_XA DTC_ERROR Context: xa_recover, state=1, StatusCode:-3 (0xFFFFFFFD) ***"
    at com.microsoft.sqlserver.jdbc.SQLServerXAResource.DTC_XA_Interface(SQLServerXAResource.java:550)
    at com.microsoft.sqlserver.jdbc.SQLServerXAResource.recover(SQLServerXAResource.java:728)
    at org.jboss.jca.adapters.jdbc.xa.XAManagedConnection.recover(XAManagedConnection.java:358)
    at org.jboss.jca.core.tx.jbossts.XAResourceWrapperImpl.recover(XAResourceWrapperImpl.java:162)
    at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.xaRecovery(XARecoveryModule.java:503) [jbossjts-4.16.2.Final.jar:]
    at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.resourceInitiatedRecoveryForRecoveryHelpers(XARecoveryModule.java:471) [jbossjts-4.16.2.Final.jar:]
    at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.bottomUpRecovery(XARecoveryModule.java:385) [jbossjts-4.16.2.Final.jar:]
    at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.periodicWorkSecondPass(XARecoveryModule.java:166) [jbossjts-4.16.2.Final.jar:]
    at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.doWorkInternal(PeriodicRecovery.java:789) [jbossjts-4.16.2.Final.jar:]
    at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.run(PeriodicRecovery.java:371) [jbossjts-4.16.2.Final.jar:]

到目前为止,我一直无法破译什么,我希望在这里做的,我有点担心投入这种状态的应用程序投入生产。

任何人都可以阐明为什么发生这种情况,如何解决和避免一些轻?

编辑:

在Windows日志中我找不到任何东西,看起来像一个DTC错误:

MSDTC开始进行如下设置:

安全配置(OFF = 0和ON = 1):允许远程管理= 0,网络客户端= 0,事务管理器通信:允许入站事务= 0,允许出站事务= 0,事务Internet协议(TIP)= 0,启用XA事务= 1,启用SNA LU 6.2事务= 1,MSDTC通信安全=需要相互身份验证,账户= NT AUTHORITY \网络服务,防火墙排除检测= 0

交易桥安装= 0过滤重复事件= 1


尝试初始化Microsoft分布式事务处理协调器(MS DTC)。 这只是一个信息性消息。 无需用户操作。


涉及Microsoft分布式事务处理协调器(MS DTC)任何怀疑分布式事务的恢复已完成。 这只是一个信息性消息。 无需用户操作。


恢复完成了在1秒(或多个)数据库MyDatabase的(数据库ID 20)(分析589毫秒,重做0毫秒,撤消398毫秒。)这只是一个信息性消息。 无需用户操作。

Answer 1:

有同样的问题。

我怎么解决呢? 使用分布式事务(在我的情况下插入一些数据)。

我的猜测,我说想因为sqljdbc4.jar源代码没有被释放,分不清什么是真正的问题。 好了,我的猜测是,每个JBoss服务器启动时,为您的交易分布式事务的框架检查恢复 。 这些都是保持在一个表中的第一次是空的,所以这次提高警戒(com.microsoft.sqlserver.jdbc.SQLServerXAResource.DTC_XA_Interface(SQLServerXAResource.java:550)),因为再xp_sqljdbc_xa_recover存储过程不能找到任何东西(我M重新猜测)。

所以基本上,插入一些内容使用分布式事务,然后再次运行在JBoss / Tomcat服务器摆脱了警告的数据库。



Answer 2:

我有同样的问题,错误继续显示,无论我跑,只要它指出相同的DBMS哪个实例。 当我运行存储过程“xp_sqljdbc_xa_recover”问题自动解决。 正如Painy詹姆斯指出,



Answer 3:

你要么没有在DTC支持XA或忘了授予SqlJDBCXAUser作用。



文章来源: JBoss spamming XA Recovery warnings