トランザクション(transactions)

トランザクションは、データベース操作を管理するためのインタフェースである。トランザクション内のデータ変更の操作がすべて成功していない場合、その変更はサーバーに受け入れられない。これらの操作には、属性値や標準のSQLコール(INSERT、UPDATE、DELETEなど)を設定するメソッド、またはJavaストアド・プロシージャやSQLパッケージのコールなどの特殊なコールを設定するメソッドが含まれる。トランザクションは最小の単位である。つまり、1つのトランザクション内の操作の結果は、すべてコミット(データベースに保存)されるか、すべてロールバック(元に戻される)される。

たとえば、銀行サービスを使用するクライアントが普通預金口座から当座預金口座へ振替を行う場合、トランザクションは、普通預金口座の減額、当座預金口座の増額、取引記録への取引の記録という3つの異なる操作から構成される。3つの操作すべてが実行されて口座の残高が適切であれば、トランザクションはコミットされ、操作の結果がデータベースに適用される。しかし、(残高の不足、無効な口座番号、ハードウェア障害などの)なんらかの理由で操作のいずれかが完了されない場合、すべての口座の残高が正しくなるようトランザクション全体をロールバックする必要がある。

また、トランザクションにより、複数ユーザーが共有するデータ・ストアの一貫性が保たれる。あるクライアントがデータを変更する場合、ロックが行われ、最初のクライアントが操作を完了するまで他のクライアントは他の変更を行えなくなる。トランザクションがコミットまたはロールバックされた場合、ロックが解放される。

Business Components for Javaアプリケーション・モジュールでは、デフォルトのトランザクションおよび同時実行サポートが提供されている。デフォルトの動作をカスタマイズする場合以外は、コーディングの必要はない。

ビジネス・コンポーネントを使用してプログラミングする場合、トランザクション管理の原則はビジネス・ロジック層でもクライアントでも同じである。

  1. データベースに接続するアプリケーション・モジュールを作成し、トランザクションのコンテキストを確立する。

  2. 問合せを実行する。

  3. 結果セットを操作する(属性を設定し、値を検証する)。

  4. 変更をデータベースにコミットする(新規データを他のアプリケーション・モジュールに対して使用可能にする)か、ロールバックする。

ビジネス・コンポーネント・フレームワークでは、キャッシュとデータベースで変更の同期をとるため、(変更指向の方法ではなく)バッチ指向の方法が使用される。この方法には、次のような利点がある。