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 は次の設定で開始されました。
セキュリティ構成 (オフ = 0 およびオン = 1): リモート管理者を許可する = 0、ネットワーク クライアント = 0、トランザクション マネージャー通信: インバウンド トランザクションを許可する = 0、アウトバウンド トランザクションを許可する = 0、トランザクション インターネット プロトコル (TIP) = 0、XA を有効にするトランザクション = 1、SNA LU 6.2 トランザクションを有効にする = 1、MSDTC 通信セキュリティ = 相互認証が必要、アカウント = NT AUTHORITY\NetworkService、検出されたファイアウォールの除外 = 0
トランザクション ブリッジのインストール = 0 重複イベントのフィルタリング = 1
Microsoft 分散トランザクション コーディネーター (MS DTC) を初期化しようとしています。これは単なる通知メッセージです。ユーザーの操作は必要ありません。
Microsoft 分散トランザクション コーディネーター (MS DTC) が関与するインダウト分散トランザクションの回復が完了しました。これは単なる通知メッセージです。ユーザーの操作は必要ありません。
データベース MyDatabase (データベース ID 20) のリカバリが 1 秒で完了しました (分析 589 ミリ秒、やり直し 0 ミリ秒、元に戻す 398 ミリ秒)。これは単なる情報メッセージです。ユーザーの操作は必要ありません。