2.8.2 排他制御

XDM/SDの排他制御には,次の二つの方法があります。

  1. C++クラスライブラリを利用する方法
    基本的にはC++クラスライブラリを利用して排他制御を行ないます。
    簡易版クラスではResultSetに結果を得るときDBRResultSetクラスのExecuteメソッドの引数で,詳細版クラスではResultSetに結果を得るときSetResultSetTypeメソッドの引数で排他の種類を設定します。排他の種類によって,次のオプションが設定されます。
    TYPE_EXCLUSIVE:LOCK SU
    TYPE_NONE:付加しません(SDEXCLUSIVE値が仮定されます)。
    TYPE_WAIT:LOCK SR
    TYPE_NOWAIT:LOCK NR
    TYPE_SHARED:LOCK SR
    各オプションの詳細については,マニュアル「Database Connection Server」を参照してください。
  2. Database Connection ServerのRDML文で指定する方法
    Database Connection ServerのRDML文のSELECT文にLOCK句を付加して排他制御を指定することもできます。
    ただし,資源競合時に共用できない場合,エラーになります。
    また,Database Connection Serverの起動制御文の一つであるコントロール空間起動制御文でも指定できます。コントロール空間起動制御文のSDPARAMセクションのオペランドSDEXCLUSIVE,SDLOCKRANGE,SDRELEASEで指定できます。
    起動制御文については,マニュアル「Database Connection Server」を参照してください。