Class HttpExclusiveControlUtil
java.lang.Object
nablarch.common.web.exclusivecontrol.HttpExclusiveControlUtil
画面処理における排他制御機能(楽観的ロック)のユーティリティクラス。
楽観的ロックは、下記の機能により実現する。
- 処理対象データに対するバージョン番号を取得する。
- 取得済みのバージョン番号が更新されていないかチェックする。
- 取得済みのバージョン番号が更新されていないかチェックし、バージョン番号を更新する。
ExclusiveControlUtil
に委譲する。
UniversalDao
を使用する場合には、
このクラスではなくUniversalDao
を使用して排他制御を行うこと。-
Field Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic void
checkVersion
(HttpRequest request, ExecutionContext context, ExclusiveControlContext exclusiveControlContext) 引数で渡された排他制御コンテキストに格納されたPK値に対してバージョン番号をチェックする。static void
checkVersions
(HttpRequest request, ExecutionContext context) バージョン番号をチェックする。static void
checkVersions
(HttpRequest request, ExecutionContext context, String targetPkListParamName) 指定されたウィンドウスコープ変数上の配列に格納された各PK値に対して バージョン番号をチェックする。static boolean
prepareVersion
(ExecutionContext context, ExclusiveControlContext exclusiveControlContext) バージョン番号を準備する。static boolean
prepareVersions
(ExecutionContext context, List<? extends ExclusiveControlContext> exclusiveControlContexts) バージョン番号を準備する。static void
updateVersionsWithCheck
(HttpRequest request) バージョン番号の更新チェックとバージョン番号の更新を行う。static void
updateVersionsWithCheck
(HttpRequest request, String targetPkListParamName) 指定されたウィンドウスコープ変数上の配列に格納された各PK値に対して バージョン番号の更新チェックとバージョン番号の更新を行う。static void
updateVersionWithCheck
(HttpRequest request, ExclusiveControlContext exclusiveControlContext) 引数で渡された排他制御コンテキストに格納されたPK値に対してバージョン番号のチェックとバージョン情報の更新を行う。
-
Field Details
-
VERSION_PARAM_NAME
バージョン番号をhiddenタグに出力する際に使用するパラメータ名- See Also:
-
VERSIONS_VARIABLE_NAME
バージョン番号をリクエストスコープに設定する際に使用する変数名- See Also:
-
-
Method Details
-
prepareVersions
public static boolean prepareVersions(ExecutionContext context, List<? extends ExclusiveControlContext> exclusiveControlContexts) バージョン番号を準備する。 指定されたExclusiveControlContext
リストを使用してバージョン番号を取得し、 次回リクエスト時にバージョン番号を送信するために、バージョン番号をリクエストスコープに設定する。 リクエストスコープに設定したバージョン番号は、n:formタグによりウィンドウスコープに設定される。 1つでもバージョン番号を準備できなかった場合は処理を中断しfalseを返す。- Parameters:
context
- 実行コンテキストexclusiveControlContexts
- 排他制御コンテキストリスト- Returns:
- すべてのバージョン番号を準備できた場合はtrue
-
prepareVersion
public static boolean prepareVersion(ExecutionContext context, ExclusiveControlContext exclusiveControlContext) バージョン番号を準備する。 指定されたExclusiveControlContext
を使用してバージョン番号を取得し、 次回リクエスト時にバージョン番号を送信するために、バージョン番号をリクエストスコープに設定する。 リクエストスコープに設定したバージョン番号は、n:formタグによりウィンドウスコープに設定される。- Parameters:
context
- 実行コンテキストexclusiveControlContext
- 排他制御コンテキスト- Returns:
- バージョン番号を準備できた場合はtrue
-
checkVersions
public static void checkVersions(HttpRequest request, ExecutionContext context) throws OptimisticLockException バージョン番号をチェックする。 リクエストパラメータに含まれるバージョン番号を使用して、 バージョン番号が更新されていないかをチェックする。 どれか一つでもバージョン番号が更新されていた場合は、 更新されているバージョン番号を設定したOptimisticLockException
を送出する。 全てのバージョン番号が更新されていない場合は、 次回リクエスト時にバージョン番号を送信するために、バージョン番号をリクエストスコープに設定する。 リクエストスコープに設定したバージョン番号は、n:formタグによりウィンドウスコープに設定される。- Parameters:
request
- リクエストcontext
- 実行コンテキスト- Throws:
OptimisticLockException
- バージョン番号が更新されていた場合
-
checkVersions
public static void checkVersions(HttpRequest request, ExecutionContext context, String targetPkListParamName) throws OptimisticLockException 指定されたウィンドウスコープ変数上の配列に格納された各PK値に対して バージョン番号をチェックする。 リクエストパラメータに含まれるバージョン番号を使用して、 バージョン番号が更新されていないかをチェックする。 どれか一つでもバージョン番号が更新されていた場合は、 更新されているバージョン番号を設定したOptimisticLockException
を送出する。 全てのバージョン番号が更新されていない場合は、 次回リクエスト時にバージョン番号を送信するために、バージョン番号をリクエストスコープに設定する。 リクエストスコープに設定したバージョン番号は、n:formタグによりウィンドウスコープに設定される。 なお、PKが組み合わせキーとなる場合はcheckVersion(HttpRequest, ExecutionContext, ExclusiveControlContext)
を使用すること。- Parameters:
request
- リクエストcontext
- 実行コンテキストtargetPkListParamName
- 更新対象のPK値の配列を格納したウィンドウスコープ変数名- Throws:
OptimisticLockException
- バージョン番号が更新されていた場合
-
checkVersion
public static void checkVersion(HttpRequest request, ExecutionContext context, ExclusiveControlContext exclusiveControlContext) throws OptimisticLockException 引数で渡された排他制御コンテキストに格納されたPK値に対してバージョン番号をチェックする。 排他制御コンテキストに格納されたバージョン番号を使用して、バージョン番号が更新されていないかをチェックする。 どれか一つでもバージョン番号が更新されていた場合は、更新されているバージョン番号を設定したOptimisticLockException
を送出する。 全てのバージョン番号が更新されていない場合は、 次回リクエスト時にバージョン番号を送信するために、バージョン番号をリクエストスコープに設定する。 リクエストスコープに設定したバージョン番号は、n:formタグによりウィンドウスコープに設定される。- Parameters:
request
- リクエストcontext
- 実行コンテキストexclusiveControlContext
- 排他制御コンテキスト- Throws:
OptimisticLockException
- バージョン番号が更新されていた場合
-
updateVersionsWithCheck
バージョン番号の更新チェックとバージョン番号の更新を行う。 リクエストパラメータに含まれるバージョン番号を使用して、 バージョン番号が更新されていないかのチェックと更新を行う。 どれか一つでもバージョン番号が更新されていた場合は、 更新されているバージョン番号を設定したOptimisticLockException
を送出する。- Parameters:
request
- リクエスト- Throws:
OptimisticLockException
- バージョン番号が更新されていた場合
-
updateVersionsWithCheck
public static void updateVersionsWithCheck(HttpRequest request, String targetPkListParamName) throws OptimisticLockException 指定されたウィンドウスコープ変数上の配列に格納された各PK値に対して バージョン番号の更新チェックとバージョン番号の更新を行う。 リクエストパラメータに含まれるバージョン番号を使用して、 バージョン番号が更新されていないかのチェックと更新を行う。 どれか一つでもバージョン番号が更新されていた場合は、 更新されているバージョン番号を設定したOptimisticLockException
を送出する。 なお、PKが組み合わせキーとなる場合は、updateVersionWithCheck(HttpRequest, ExclusiveControlContext)
を使用すること。- Parameters:
request
- リクエストtargetPkListParamName
- 更新対象のPK値の配列を格納したウィンドウスコープ変数名- Throws:
OptimisticLockException
- バージョン番号が更新されていた場合
-
updateVersionWithCheck
public static void updateVersionWithCheck(HttpRequest request, ExclusiveControlContext exclusiveControlContext) throws OptimisticLockException 引数で渡された排他制御コンテキストに格納されたPK値に対してバージョン番号のチェックとバージョン情報の更新を行う。 排他制御コンテキストに格納されたバージョン番号を使用して、バージョン番号が更新されていないかのチェックと更新を行う。 どれか一つでもバージョン番号が更新されていた場合は、更新されているバージョン番号を設定したOptimisticLockException
を送出する。- Parameters:
request
- リクエストexclusiveControlContext
- 排他制御コンテキスト- Throws:
OptimisticLockException
- バージョン番号が更新されていた場合
-