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