@Published(tag="architect")
public interface ExclusiveControlManager
ExclusiveControlManager.updateVersion(ExclusiveControlContext)
メソッドにより、
処理の開始時にバージョン番号を更新することでロックを実現する。
トランザクションがコミット又はロールバックされるまで、ロックが維持される。
楽観的ロックは、ExclusiveControlManager.getVersion(ExclusiveControlContext)
メソッドでバージョン番号を取得しておき、
ExclusiveControlManager.checkVersions(List)
、ExclusiveControlManager.updateVersionsWithCheck(List)
メソッドにより、
取得したバージョン番号が更新されていないかをチェックすることで実現する。Modifier and Type | Method and Description |
---|---|
void |
addVersion(ExclusiveControlContext context)
バージョン番号を追加する。
|
void |
checkVersions(java.util.List<Version> versions)
バージョン番号が更新されていないかチェックする。(楽観的ロック)
|
Version |
getVersion(ExclusiveControlContext context)
バージョン番号を取得する。(楽観的ロック)
|
void |
removeVersion(ExclusiveControlContext context)
バージョン番号を削除する。
|
void |
updateVersion(ExclusiveControlContext context)
バージョン番号を更新する。(悲観的ロック)
|
void |
updateVersionsWithCheck(java.util.List<Version> versions)
バージョン番号の更新チェックとバージョン番号の更新を行う。(楽観的ロック)
|
Version getVersion(ExclusiveControlContext context)
context
- 排他制御コンテキストvoid checkVersions(java.util.List<Version> versions) throws OptimisticLockException
versions
- バージョン番号OptimisticLockException
- バージョン番号が更新されていた場合void updateVersionsWithCheck(java.util.List<Version> versions) throws OptimisticLockException
versions
- バージョン番号OptimisticLockException
- バージョン番号が更新されていた場合void updateVersion(ExclusiveControlContext context)
context
- 排他制御コンテキストvoid addVersion(ExclusiveControlContext context)
context
- 排他制御コンテキストvoid removeVersion(ExclusiveControlContext context)
context
- 排他制御コンテキスト