Hitachi

DBPARTNER2 Client プログラマーズガイド


6.4.2 排他制御

DBPARTNER2 Clientのアプリケーションからデータを抽出/更新するときには,ほかのアプリケーションからのアクセスを許すかどうかを設定します。これを排他制御といいます。

〈この項の構成〉

(1) 排他制御の設定

排他制御は,データにアクセスするプロパティ(QueryDefine.Exclusiveプロパティ又はUpdateDefine.Exclusiveプロパティ)に文字列で設定します。アクセスするデータベースによって,設定する内容が異なります。設定する内容については,アクセスするデータベースのマニュアルを参照してください。

(2) 排他エラーになったときの動作の設定

データにアクセスしようとした場合に,ほかのアプリケーションがデータを確保しているときは,データが解放されるまで待つか,エラーにするかを選べます。どちらにするかは,データにアクセスするプロパティ(QueryDefine.Exclusiveプロパティ又はUpdateDefine.Exclusiveプロパティ)に設定します。

データが解放されるまで待つ設定をすると,複数のアプリケーションが互いが確保しているデータの解放を待ち続ける状態(デッドロック)になるおそれがあります。デッドロックにならないように,複数のアプリケーション間でデータを確保する順番を決めておいてください。さらに,複数のアプリケーションからデータベースにアクセスするときは,確保するデータの範囲を最小限に抑えてください。

エラーにする設定をするときは,データベースアクセスごとにエラーの対処(一定時間を空けてリトライをするなど)が必要になります。