またUserTransactionのアクセスなどに使う2相コミットはXA?
-
19-09-2019 - |
質問
UserTransaction ut=ルックアップ....ut.beginTransaction();saveToFooDB();statelessEjb.transactionSupportedMethod();/データ保存などを行えるソフトもそうですが、Foo DB saveToFooDB();ut.commit();
場合はやっていたのを私の理解ではないXAトランザクションとしてではなスパンが複数の資源DBプラスJMS).私の理解で正しいのですか。
解決
データソース設定でき二種類:
- XA:これらのデータソースに参加できる配信取引
- 地:とも呼ばれる非XAれに参加することのできない分散トランザクション
の UserTransaction
で定義されてJTA仕様を記述する方法の参加者は、分散トランザクション.
アプリケーションサーバを実装するJTA仕様は無料でたくさんの最適化.一例として、 last-agent-optimization
, できる最後の参加者は、分散トランザクションする 地.通常のコミット後の最後ます。をいただいた場合には参加している。
短:
- い参加者XA2相コミットでご利用いただく必要があり
- をいただいた場合には参加者の多くのアプリケーションサーバーのサポート地域のデータソースを使用しない"のフルブロー2相コミットプロトコルです。
のためのGlassfish参照:
編集
項"取引の適用範囲"では、"glassfish 文書 説明です。うことなんでしょうけれど同じすべてのアプリケーションサーバーです。
地元の取引の必要 非XA資源を必要とするすべて 参加アプリケーションコンポーネント 行以内です。 地 取引最適化は特定の のリソースマネージャで 透明は、Java EE 願います。
アプリケーションサーバでは、JDBC リソースが非XAました 以下の条件:
のJDBC接続プールの構成では、データソースクラス な行 javax.sql.XADataSourceインタフェース。
のグローバル-トランザクション支援ボックスがチェックされていない、またはリソース タイプの設定が存在しないのではない 設定javax.sql.XADataSource.
の取引には地元の場合 以下の条件はtrue:
- 一つだけの非XA資源を使用します。する場合追加非XA 資源使用すると、取引 中断されました。
- な取引は輸出入が発生します。
取引に係る複数の 資源または複数の参加者 プロセスの分布やグローバル ます。グローバルトランザクションで る非XA資源の場合は最後の 剤の最適化を有効にします。その他、すべての十分な資源が与えばXA.の使用-最終エージェントの最適化 物件はデフォルトではtrueになります。詳細につきましてはこのセット 物見の設定 取引サービスです。
だけXA資源使用される 取引、相コミットが その他の取引 協調の二相コミット プロトコルです。
他のヒント
、接続がXAトランザクションの一部になることを意味します。また、それはあなたがJMSやデータベースなどのリソースの単一または複数のタイプに接続しているかどうかは全く問題ではありません。
希望に役立ちます。
ニティン