外部トランザクション管理 (SDO クライアントにより実行) において、JDBC メディエーターをトランザクション・マネージャーとして使用するか、あるいはそうした行為を避けるかを指定できます。
メディエーター管理トランザクション
JDBC 接続は、接続ラッパー内でラップされ、
インスタンス作成時にデータ・メディエーター・サービス (DMS) に渡されます。
ConnectionWrapper オブジェクトは、JDBC DMS によって使用される接続を含み、
メディエーターが現行のトランザクションを管理しているかどうかを示します。
JDBC DMS がトランザクションを管理する場合は、
必要に応じてコミットおよびロールバック操作を実行します。
ただし、ラップされた接続がその時点で他のトランザクションとかかわっている場合、
DMS は、どのトランザクション管理アクティビティーも実行しません。
一般的には、アクティブ・トランザクション管理には createConnectionWrapper メソッドを使用します。
非メディエーター管理トランザクション
受動 接続ラッパーが
DMS に渡された場合、DMS は管理アクションは実行しません。通常、受動ラッパーは、
外部管理下にある既存のトランザクションを対象としています。
この場合は、コミットおよびロールバック操作は接続ラッパーによって実行されません。
createPassiveConnectionWrapper メソッドを使用します。
参照保全性 (RI) 違反からの保護
JDBC データ・メディエーター・サービスは、
RI 違反およびその他のデータベース論理違反からデータ・トランザクションを保護します。
JDBC DMS は、データ・グラフの更新をバックエンドに適用する場合、
自動的に変更操作の命令を出し、
その更新がデータベースの RI ポリシーに違反しないようにします。同様に、
DMS はカウンター操作 (INSERT、DELETE など) をフィルターに掛けて、
対立するクライアント要求が論理順序で更新を実行できるようにします。クライアントは、
1 つのオブジェクトを削除してから、同じ基本キーを使用してまったく別のオブジェクトを作成します。
DMS は、この 2 つの操作を、
既存のデータベース・オブジェクトを変更する更新操作に変換します。