我正在连接到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毫秒。)这只是一个信息性消息。 无需用户操作。