Class JdbcLockRegistry
java.lang.Object
org.springframework.integration.jdbc.lock.JdbcLockRegistry
- All Implemented Interfaces:
ExpirableLockRegistry,LockRegistry,RenewableLockRegistry
public class JdbcLockRegistry extends Object implements ExpirableLockRegistry, RenewableLockRegistry
An
ExpirableLockRegistry using a shared database to co-ordinate the locks.
Provides the same semantics as the
DefaultLockRegistry, but the
locks taken will be global, as long as the underlying database supports the
"serializable" isolation level in its transactions.- Since:
- 4.3
- Author:
- Dave Syer, Artem Bilan, Vedran Pavic, Kai Zimmermann, Bartosz Rempuszewski, Gary Russell, Alexandre Strubel, Stefan Vassilev, Olivier Hubaut, Fran Aranda
-
Constructor Summary
Constructors Constructor Description JdbcLockRegistry(LockRepository client) -
Method Summary
Modifier and Type Method Description voidexpireUnusedOlderThan(long age)Remove locks last acquired more than 'age' ago that are not currently locked.Lockobtain(Object lockKey)Obtains the lock associated with the parameter object.voidrenewLock(Object lockKey)Renew the time to live of the lock is associated with the parameter object.voidsetIdleBetweenTries(Duration idleBetweenTries)Specify a @link Duration} to sleep between lock record insert/update attempts.
-
Constructor Details
-
Method Details
-
setIdleBetweenTries
Specify a @link Duration} to sleep between lock record insert/update attempts. Defaults to 100 milliseconds.- Parameters:
idleBetweenTries- theDurationto sleep between insert/update attempts.- Since:
- 5.1.8
-
obtain
Description copied from interface:LockRegistryObtains the lock associated with the parameter object.- Specified by:
obtainin interfaceLockRegistry- Parameters:
lockKey- The object with which the lock is associated.- Returns:
- The associated lock.
-
expireUnusedOlderThan
public void expireUnusedOlderThan(long age)Description copied from interface:ExpirableLockRegistryRemove locks last acquired more than 'age' ago that are not currently locked.- Specified by:
expireUnusedOlderThanin interfaceExpirableLockRegistry- Parameters:
age- the time since the lock was last obtained.
-
renewLock
Description copied from interface:RenewableLockRegistryRenew the time to live of the lock is associated with the parameter object. The lock must be held by the current thread- Specified by:
renewLockin interfaceRenewableLockRegistry- Parameters:
lockKey- The object with which the lock is associated.
-