11.4. 最終リソースコミット最適化 (LRCO: Last Resource Commit Optimization)


XA トランザクションプロトコルは、2フェーズのコミットプロトコルを用いることで ACID プロパティを提供するように設計されていますが、モデルが常に正しいというわけではありません。時には、XA 非対応のリソースマネージャーがトランザクションに参加できるようにする必要がある場合もあります。これは通常、分散トランザクションに対応していないデータストアを使う場合に該当します。
このような場合、Last Resource Commit Optimization (LRCO)と呼ばれる技術を使うことができます。これは、Last Resource Gambit と呼ばれることもあります。この技術を使用すると、1 フェーズ対応リソースがトランザクションの prepare フェーズの最後に処理され、その時にコミットが試行されます。コミットに成功すると、トランザクションログが書き込まれ、残りのリソースはフェーズ 2 コミットに進みます。最後のリソースのコミットに失敗すると、トランザクションはロールバックされます。このプロトコルにより、 ほとんどのトランザクションは普通通りに完了しますが、エラーの種類によっては不整合なトランザクション結果が生じる原因となります。そのため、 他に手段がない場合のみ LRCO を使ってください。トランザクションに単一の <local-tx-datasource> が使用される場合、LRCO が自動的に適用されます。その他の場合、特別なマーカーインターフェースを使用して最終リソースを指定することが可能です。詳細は JBoss Transactions のプログラマーガイドを参照してください。
同じトランザクションに1フェーズリソースを複数使うと、トランザクション的に安全ではないため、推奨されません。JBoss Transaction Service は、2番目のこのようなリソースをエラーとして登録するよう試行し、トランザクションを終了します。この種のエラーは JBoss Application Server のレガシーバージョンから移行する際に最も頻繁に見られます。できる限り、<local-tx-datasource> は <xa-datasource> に変換しこの問題を解決します。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat