「トランザクション」は、アプリケーション内の独立したアクションをひと続きにまとめたもので、一連のアクションのすべてが正常に完了する必要があります。トランザクションでは、1 つ以上のアクションをそれ以上分割不可能な作業単位にまとめることで、データの完全性と整合性を保証しています。すべてのアクションが完了しなかった場合、変更はロールバックされます。
たとえば、当座預金口座から普通預金口座に資金を移動する場合は、一般的に次のような手順が発生します。
当座預金口座にその移動をカバーするだけの金額があるかどうかを確認します。
その金額を当座預金口座の借方に記帳します。
その金額を普通預金口座の貸方に記帳します。
その移動を当座預金口座ログに記録します。
その移動を普通預金口座ログに記録します。
これらの手順をまとめて、1 つのトランザクションと見なします。
すべての手順が正常に完了すれば、トランザクションは「コミット」されます。いずれかの手順が失敗した場合は、それ以前の手順で行われた変更がすべてロールバックされ、当座預金口座と普通預金口座はトランザクションが開始される前の状態に戻されます。この種類のイベントは「ロールバック」と呼ばれます。通常のトランザクションは、コミットされた状態かロールバックされた状態で終了します。
次の要素は、さまざまな API と機能を実装することで、信頼性の高いトランザクション処理に貢献します。
「トランザクションマネージャー」。トランザクション境界、トランザクションリソース管理、同期化、およびトランザクションコンテキスト伝達のサポートに必要なサービスと管理機能を提供します。
「Enterprise Server」。トランザクション状態管理を含むアプリケーション実行環境のサポートに必要なインフラストラクチャーを提供します。
「リソースマネージャー」。リソースアダプタを通して、アプリケーションがリソースにアクセスできるようにします。リソースマネージャーは、トランザクションマネージャーがトランザクションの関連付け、トランザクションの完了、および回復作業の伝達に使用するトランザクションリソースインタフェースを実装することで、分散トランザクションに参加します。このようなリソースマネージャーの例としては、リレーショナルデータベースサーバーがあります。
「リソースアダプタ」。Enterprise Server またはクライアントがリソースマネージャーへの接続に使用する、システムレベルのソフトウェアライブラリです。通常、リソースアダプタはリソースマネージャーに固有です。リソースアダプタはライブラリとして使用可能で、クライアントのアドレス空間内で使用されます。リソースアダプタの例として、JavaTM Database Connectivity (JDBC) ドライバがあります。サポートされている JDBC ドライバについては、「JDBC ドライバに固有の構成」を参照してください。
「トランザクションユーザーアプリケーション」。Enterprise Server 環境では、トランザクションユーザーアプリケーションは Java Naming and Directory Interface (JNDI) を使用して、トランザクションデータソースおよびオプションのユーザートランザクションを検索します。アプリケーションは、Enterprise Bean の宣言的なトランザクション属性設定や、プログラムによる明示的なトランザクション境界設定を使用する場合があります。