4.6.7 排他のテスト
資源の排他をする関数(dc_lck_get関数)で,資源を排他できるかどうかをテスト(flagsにDC_LCK_TESTを設定)できます。この場合dc_lck_get関数は,資源を確保できる状態でも実際に排他をしないで正常終了します。指定した資源がほかのUAPから排他されていて共用ができない場合は,排他待ちの指定の有無に関係なくDCLCKER_WAIT(00450)でエラーリターンとなります。そのほか,テストの排他の場合は次のリターン値が戻ります。デッドロックやタイムアウト,メモリ不足のエラーリターンはしません。ロックマイグレーションは起こりません。
-
DCLCKER_PARAM(00401)
引数の設定誤り
-
DCLCKER_OUTOFTRN(00455)
トランザクション処理でないUAPからの関数呼び出し
-
DCLCKER_VERSION(00457)
OpenTP1のライブラリとロックサービスのバージョン不一致
- 〈この項の構成〉
(1) 排他のテストをする場合の注意事項
排他のテストは,排他できる状態かどうかを知るために行います。排他のテストが正常終了したことで,それ以降の排他要求が正常終了するかどうかは保証されません。また,排他のテストが正常終了しても,実際には資源は占有されていません。そのため,排他のテストが正常終了したあとに排他を解除する関数(dc_lck_release_all関数,dc_lck_release_byname関数)を呼び出すとエラーリターンします。