更新の衝突によって生じるトランザクションの問題を診断するには、JDBC DMS 用のオプティミスティック並行性制御 (OCC) ストラテジーを実装します。
更新の衝突 は、 データ・グラフを取り込むクライアント・データが、そのデータ・グラフがクライアントの変更を 実行依頼する前にデータベース内で変更された場合に発生します。JDBC DMS を OCC 用に構成すると、 そのようなデータの衝突が発生した場合に、DMS は OCC 固有の例外を発行します。 OCC 例外には、行の元の値、行の現在値、および行の試行された値など、 衝突の詳細が含まれます。 クライアント・アプリケーションは、これらの値によって、衝突からリカバリーする方法を決定します。 例えば、アプリケーションはデータを再読み取りして、 トランザクションを再始動することができます。
ただし、1 つの例外が発生すると、 データ・グラフ・スキーマの深いところにあるために表示されない例外がさらに存在するかどうかを 知る方法はありません。
データ・メディエーター・サービスで OCC を有効にするには、 OCC 列をデータベース表に取り込む必要があります。
任意の表に OCC Integer 列を追加し、 この列がメタデータ内で OCC のために使用されるように指定します。 定義された OCC 衝突列は、メディエーターの排他使用のために予約されます。 表のために OCC 列が定義されていない場合、DMS は、衝突の更新をモニターせず、通知もしません。 このセットアップは、以下の汎用コード・セグメントにより作成されています。