Package nablarch.common.exclusivecontrol
Interface ExclusiveControlManager
- All Known Implementing Classes:
BasicExclusiveControlManager
排他制御(悲観的ロック、楽観的ロック)を管理するインタフェース。
排他制御用テーブルを使用した排他制御(悲観的ロック、楽観的ロック)を行うための機能、
及び排他制御用テーブルに対する行データの追加と削除を行う機能を提供する。
排他制御用テーブルは、排他制御の対象に含めるテーブルの範囲を決めた上で、
親となるテーブルを決定し排他制御用テーブルとする。
排他制御用テーブルには、バージョン番号をカラムを定義する。
悲観的ロックは、
updateVersion(ExclusiveControlContext)
メソッドにより、
処理の開始時にバージョン番号を更新することでロックを実現する。
トランザクションがコミット又はロールバックされるまで、ロックが維持される。
楽観的ロックは、getVersion(ExclusiveControlContext)
メソッドでバージョン番号を取得しておき、
checkVersions(List)
、updateVersionsWithCheck(List)
メソッドにより、
取得したバージョン番号が更新されていないかをチェックすることで実現する。- Author:
- Kiyohito Itoh
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addVersion
(ExclusiveControlContext context) バージョン番号を追加する。void
checkVersions
(List<Version> versions) バージョン番号が更新されていないかチェックする。(楽観的ロック)getVersion
(ExclusiveControlContext context) バージョン番号を取得する。(楽観的ロック)void
removeVersion
(ExclusiveControlContext context) バージョン番号を削除する。void
updateVersion
(ExclusiveControlContext context) バージョン番号を更新する。(悲観的ロック)void
updateVersionsWithCheck
(List<Version> versions) バージョン番号の更新チェックとバージョン番号の更新を行う。(楽観的ロック)
-
Method Details
-
getVersion
バージョン番号を取得する。(楽観的ロック)- Parameters:
context
- 排他制御コンテキスト- Returns:
- バージョン番号。バージョン番号が存在しない場合はnull
-
checkVersions
バージョン番号が更新されていないかチェックする。(楽観的ロック)- Parameters:
versions
- バージョン番号- Throws:
OptimisticLockException
- バージョン番号が更新されていた場合
-
updateVersionsWithCheck
バージョン番号の更新チェックとバージョン番号の更新を行う。(楽観的ロック)- Parameters:
versions
- バージョン番号- Throws:
OptimisticLockException
- バージョン番号が更新されていた場合
-
updateVersion
バージョン番号を更新する。(悲観的ロック)- Parameters:
context
- 排他制御コンテキスト
-
addVersion
バージョン番号を追加する。- Parameters:
context
- 排他制御コンテキスト
-
removeVersion
バージョン番号を削除する。- Parameters:
context
- 排他制御コンテキスト
-