ee_lck_get
- 〈このページの構成〉
形式
ANSI C,C++の形式
#include <eelck.h> int ee_lck_get(char *name, EELONG lockmode, EELONG ownerflag, EELONG flags)
機能
UAPで使用する資源の排他を指定します。排他の管理は,TP1/EEのトランザクションマネジャで管理するグローバルトランザクション単位で処理されます。
ここで指定した排他は,排他を解除する関数(ee_lck_release_all関数またはee_lck_release_byname関数)を呼び出すか,またはee_lck_get関数を呼び出したグローバルトランザクションの同期点取得後に解除されます。
UAPで値を設定する引数
●name
排他する資源の名称を,16バイトの英数字で設定します。ここで設定した資源名称を基に,ロックサービスで排他を管理します。16バイト未満で,NULL文字がある場合は,そこまでの値が資源名称と見なされます。16バイトを超えた値を設定した場合は,16バイト目までが資源名称と見なされて,超えた部分が切り捨てられます。ロックサービスでは,文字列の内容についてはチェックしません。論理的に正しい名称を設定してください。資源名称に英数字以外の値を使った場合は,タイムアウト情報,およびeelcklsコマンドの表示が乱れることがあります。
●lockmode
排他制御モードとして,次のどちらかを設定します。重複して指定することはできません。
- EELCK_PR
-
資源を参照します。ほかのUAPには参照だけを許可し,更新を禁止します。
- EELCK_EX
-
資源を更新します。ほかのUAPには参照と更新の両方を禁止します。
●ownerflag
EELCK_OWNER_MIGRATEを設定します。
●flags
資源の排他に関するフラグを設定します。設定できる値を次に示します。
- EELCK_WAIT
-
ほかのUAPと資源を競合した場合に,資源を排他できるまで待ちます。競合した場合にこのフラグが設定されていないときは,エラーリターンします。EELCK_TESTと同時に設定したときは,このフラグの設定は無効となります。
- EELCK_TEST
-
資源が使えるかどうかをテストする場合に設定します。このフラグを設定したときは,ee_lck_get関数が正常終了しても,nameに設定した資源は確保されていないので注意してください。
- EENOFLAGS
-
フラグを設定しません。
リターン値
リターン値 |
意味 |
---|---|
EE_OK |
正常に終了しました。 |
EECOMER_CNDBPP |
オフラインバッチプロセスから発行しているため,この機能は使用できません。 |
EECOMER_CNDUOC |
UOCから発行しているため,この機能は使用できません。 |
EECOMER_ENVIRON |
TP1/EEの環境下にありません。 |
EELCKER_CONDITION |
この機能は使用できません。 |
EELCKER_MEMORY |
排他制御用のテーブルが不足しています。 |
EELCKER_OUTOFTRN |
トランザクション処理でないUAPから指定しています。 |
EELCKER_PARAM |
引数に設定した値が間違っています。 |
EELCKER_TIMOUT |
排他待ち限界経過時間(トランザクション関連定義のlck_wait_timeoutオペランドの指定値)を超えたため,資源を確保できませんでした。 |
EELCKER_WAIT |
ほかのUAPがnameに設定した資源を使っています。 |