3.4.2 排他制御
DBPARTNER2 Clientのアプリケーションからデータを抽出/更新するときには,ほかのアプリケーションからのアクセスを許すかどうかを設定します。これを排他制御といいます。
- 〈この項の構成〉
(1) 排他制御の設定
排他制御は,データにアクセスするプロパティ(QueryDefine.Exclusiveプロパティ又はUpdateDefine.Exclusiveプロパティ)に文字列で設定します。アクセスするデータベースによって,設定する内容が異なります。設定する内容については,アクセスするデータベースのマニュアルを参照してください。
(2) 排他エラーになったときの動作の設定
データにアクセスしようとした場合に,ほかのアプリケーションがデータを確保しているときは,データが解放されるまで待つか,エラーにするかを選べます。どちらにするかは,データにアクセスするプロパティ(QueryDefine.Exclusiveプロパティ又はUpdateDefine.Exclusiveプロパティ)に設定します。
データが解放されるまで待つ設定をすると,複数のアプリケーションが互いが確保しているデータの解放を待ち続ける状態(デッドロック)になるおそれがあります。デッドロックにならないように,複数のアプリケーション間でデータを確保する順番を決めておいてください。さらに,複数のアプリケーションからデータベースにアクセスするときは,確保するデータの範囲を最小限に抑えてください。
エラーにする設定をするときは,データベースアクセスごとにエラーの対処(一定時間を空けてリトライをするなど)が必要になります。