IUocLockTableクラス
- 〈このページの構成〉
lockメソッド
排他ロックを取得するメソッドです。排他ロックを開始したい所でこのメソッドを実行します。引数lockKeysのListに,取得したいロックのキーを指定することで,そのキーをロックオブジェクトとして排他ロックを取得することができます。ロックキーとして,IPアドレスの文字列を与えることによって,VM単位で排他制御を行うことを想定しています。ロック獲得中に,再度このメソッドを実行して別のロックを取得(ネスト)することはできません。なお,ロック獲得待ち時間は,システム定義ファイル(csd.properties)のuoc.timer.lock定義で指定します。
形式
public void lock(List<String> lockKeys)
入力
項番 |
引数名:型 |
引数の意味 |
制限 |
---|---|---|---|
1 |
lockKeys :List<String> |
ロックオブジェクトの識別子(ロックキー)を格納したリストです。 ロックキーは複数指定できます。 |
String型のIPアドレスをListにして指定し,VM単位で排他制御を行うことを目的としています。指定したIPアドレスが有効であるかはチェックしません。 |
出力
なし
例外
項番 |
Exception |
発生理由 (原因コード) |
発生後の動作 |
---|---|---|---|
1 |
CsdUocRemoteExecuteAssertionFailedException |
P_RemoCon.001 |
処理を中断し,リターンします。 |
P_RemoCon.002 |
処理を中断し,リターンします。 |
||
2 |
CsdUocRemoteExecuteMultipleLockException |
P_RemoCon.003 |
処理を中断し,リターンします。 |
3 |
CsdUocRemoteExecuteTimeoutException |
P_RemoCon.004 |
処理を中断し,リターンします。 |
注意事項
タイムアウト時間の設定は,ほかのUOCスレッドの処理時間も考慮して設定してください。設定時間が長過ぎる場合,ロックが獲得できるまで処理が待たされることになり,UOCのタイムアウト時間まで処理が終了しないことがあります。