問題タブ [xa]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - JBoss スパム XA Recovery 警告
Microsoft SQL Server 上の複数の XA 対応データソースに接続する JPA/Spring アプリケーションを実行しています。グローバルトランザクションが正しく開始され、必要に応じてロールバックされるため、すべてが正常に機能します...
しかし、JBoss はときどき暴走し、数秒ごとに次の警告をスパム送信し始めます。
これまでのところ、ここで何をすることが期待されているかを解読できず、そのような状態のアプリケーションを本番環境に置くことについて少し心配しています.
なぜこれが起こっているのか、それを解決して回避する方法について誰かが光を当てることができますか?
編集:
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 ミリ秒)。これは単なる情報メッセージです。ユーザーの操作は必要ありません。
jdbc - 古い JDBC プログラムを移行して XA を使用する
XA をサポートするために古い JDBC インターフェースを使用しているプログラムを移行したい場合、何をする必要がありますか? コードで実行する必要がある詳細な手順を意味します。プログラムは単一の DB で実行されていますが、新しい機能では新しいスキーマを導入する必要があり、一部の古い機能では 2 つのスキーマ間のトランザクションをサポートする必要があります。JBOSSを使用しています。これを移行するための最小限の手順は何ですか? ありがとう。
java - XA / JTAトランザクション:DBの変更が表示される前にJMSメッセージが到着します
コンテキストは次のとおりです。
- プロデューサー(JTAトランザクションPT)は、JMSキューにメッセージを送信し、DBを更新しています。
- コンシューマー(JTAトランザクションCT)は同じキューでリッスンし、メッセージを受信するとDBを読み取ります。
- アプリケーションサーバー-WebLogic、DB-Oracle。
対応するJMSメッセージがすでに受信されている場合(PTがコミットされている場合)、CTがPTのDB変更を(まだ?)確認できない場合があることを確認しました。
JTAはそのような種類の一貫性を保証できないようです(これはJurgen Hollerのプレゼンテーション「TransactionChoicesforPerformance」でも確認されています)。
そのような問題を回避するための最良の方法は何ですか(明白な場合を除いて-JTAを使用しない)?
ありがとう。
apache-camel - Fuse ESB 7.1.0 での「Cannot rollback() inside an XASession」エラー
昨日、バンドルを ServiceMix 4.4.1 から Fuse ESB Enterprise 7.1.0 に移行しようとしました。ローカル トランザクションを含むバンドルは問題なく動作しますが、XA トランザクションを含むその他のバンドルはうまく動作しません。次のメッセージを含むトレースバックを継続的にログ ファイルに書き込みます。
空のキューで発生します。
私の activemq エンドポイント構成は次のようになります。
このエンドポイントは、キャメル コンテキストで次のように非常に簡単に使用できます。
誰かがこの問題を解決するのを手伝ってくれたらうれしいです。必要に応じて詳細を提供できます。
編集
問題は JMS 接続プールに関連しているようです。接続ファクトリを単純な ActiveMQXAConnectionFactory に変更すると、例外が消えます。
activemq - XA トランザクションは本当にアトミックですか?
XA トランザクションのしくみを完全には理解していないようです。アトミックだと思いました。トランザクションをコミットすると、新しいメッセージと新しいデータが同時に利用可能になると思いました。
この誤解により、次の問題が発生しました。新しい行が DB に挿入され、メッセージがトランザクション ルートのキューに送信されます。別のルートでメッセージが受信されます。次に、このルートは、前のルートで挿入された行でいくつかの操作を実行しようとします。しかし、それはそれらを見ません!
2 番目のルートは、例外が発生したときにメッセージをキューにロールバックするように構成されています。そして、2 回目の実行後、ルートが行を認識していることがわかります。
結論として、次の質問をします。
- XA トランザクションは本当にアトミックですか?
- いいえの場合、トランザクション リソースのコミット順序を構成するにはどうすればよいですか?
追記:この問題は Fuse ESB/ServiceMix 4.4.1 で発見されました。
2 Jake: 私のキャメル コンテキスト構成は次のようになります。
DB データ ソースは次のように構成されます。
java - JPA / Hibernate/MySQLを使用したJTAXA分散トランザクションのテスト
私の目標は、JPA over Hibernate over MySQLを使用して、ローカルトランザクションと分散トランザクションのJUnitテストを構築するためのスタンドアロンソリューションを用意することです。
これまでのところ、XADataSourceを使用してXAResourceにアクセスし、2フェーズコミットプロトコルに従って分散トランザクションを管理することができました。ただし、SQLステートメントを直接発行する必要があります。
私は同じことをしようとしていますが、JPA2.0の永続性を使用しています。simple-jndiを使用して、メモリ内にJNDIを実装しています。
ただし、HibernateがTransactionManagerにアクセスしようとするたびにNullPointerExceptionが発生し続けます。
何か案は?構成に何が欠けていますか?
これが私がやりたいことです:
これがpersistence.xmlです:
jdbc - ariesトランザクションマネージャはいつjdbc接続を閉じますか?
FUSE ESB 7.1.0 で aries トランザクション マネージャーがどのように動作するか完全には理解できません。以下の状況について、どなたか教えていただけると幸いです。
私はバンドルで jdbc XADataSource (org.postgresql.xa.PGXADataSource) を使用していますが、ここに私が見ているものがあります。 DB にコミットします。接続はアイドル状態のままになります。しかし、しばらくすると、それらは最終的に閉鎖されます。
これにより、接続プールを使用しようとすると大きな問題が発生しました。アプリケーションが接続プールを非常に高速に使い果たし、開いているすべての接続がビジー状態のままになります。
aries トランザクション マネージャーについて次の質問があります。
- jdbc接続を閉じるのはいつですか?
- メッセージが処理され、変更がコミットされたときに、jdbc 接続を閉じるように指示するにはどうすればよいですか?
java - リモート XA JMS 接続
JBoss AS 7 でトランザクショナルな接続ファクトリーを提供および検索することは可能ですか? 標準の「RemoteConnectionFactory」はトランザクション (XA) ではないようで、XA にする方法や、リモート クライアントから使用できる XARemoteConnectionFactory を定義する方法がわかりません。
<xa>true</xa>
要素 (hornetq 構成では機能しますが、jboss 構成ファイルでは無効です) を追加して<pooled-connection-factory>
、「java:/jmsXA」のようなものを作成しようとしました (ただし、エクスポートするための正しい名前)。
java - AkkaアクターはXAトランザクションに参加できますか?
AkkaアクターはXAトランザクションに参加できますか?たとえば、アクターは、データベース操作と同じXAトランザクション内のリモートアクターにメッセージを送信して(JDBCドライバーがXAドライバーであると想定)、データベース操作が失敗した場合にアクターがメッセージを送信しないようにすることができますか?
spring - Spring + hibernate を使用すると、グローバル (XA) トランザクションを処理できると言う人もいますが、本当かどうかはわかりません。
Spring + hibernate を使用すると、あらゆるグローバル トランザクションを処理できると言う人もいますが、本当かどうかはわかりません。
アプリケーション サーバーの XA データソースや、atomikos、JbossTS、Bitronix などの別の XA JTA 実装も必要だと言う人もいます。
正しい人は?
A) スプリング + 休止状態
B) スプリング + 休止状態 + 別の XA JTA 実装?