Class DefaultLockRepository
java.lang.Object
org.springframework.integration.jdbc.lock.DefaultLockRepository
- All Implemented Interfaces:
Closeable
,AutoCloseable
,InitializingBean
,LockRepository
@Repository @Transactional public class DefaultLockRepository extends Object implements LockRepository, InitializingBean
The default implementation of the
LockRepository
based on the
table from the script presented in the org/springframework/integration/jdbc/schema-*.sql
.
This repository can't be shared between different JdbcLockRegistry
instances.
Otherwise it opens a possibility to break Lock
contract,
where JdbcLockRegistry
uses non-shared ReentrantLock
s
for local synchronizations.
- Since:
- 4.3
- Author:
- Dave Syer, Artem Bilan, Glenn Renfro, Gary Russell, Alexandre Strubel
-
Field Summary
Fields Modifier and Type Field Description static String
DEFAULT_TABLE_PREFIX
Default value for the table prefix property.static int
DEFAULT_TTL
Default value for the time-to-live property. -
Constructor Summary
Constructors Constructor Description DefaultLockRepository(DataSource dataSource)
Constructor that initializes the client id that will be associated for all the locks persisted by the store instance to a randomUUID
.DefaultLockRepository(DataSource dataSource, String id)
Constructor that allows the user to specify a client id that will be associated for all the locks persisted by the store instance. -
Method Summary
Modifier and Type Method Description boolean
acquire(String lock)
void
afterPropertiesSet()
void
close()
void
delete(String lock)
void
deleteExpired()
boolean
isAcquired(String lock)
boolean
renew(String lock)
void
setPrefix(String prefix)
Specify the prefix for target data base table used from queries.void
setRegion(String region)
A unique grouping identifier for all locks persisted with this store.void
setTimeToLive(int timeToLive)
Specify the time (in milliseconds) to expire dead locks.
-
Field Details
-
DEFAULT_TABLE_PREFIX
Default value for the table prefix property.- See Also:
- Constant Field Values
-
DEFAULT_TTL
public static final int DEFAULT_TTLDefault value for the time-to-live property.- See Also:
- Constant Field Values
-
-
Constructor Details
-
DefaultLockRepository
Constructor that initializes the client id that will be associated for all the locks persisted by the store instance to a randomUUID
.- Parameters:
dataSource
- theDataSource
used to maintain the lock repository.
-
DefaultLockRepository
Constructor that allows the user to specify a client id that will be associated for all the locks persisted by the store instance.- Parameters:
dataSource
- theDataSource
used to maintain the lock repository.id
- the client id to be associated with locks handled by the repository.- Since:
- 4.3.13
-
-
Method Details
-
setRegion
A unique grouping identifier for all locks persisted with this store. Using multiple regions allows the store to be partitioned (if necessary) for different purposes. Defaults toDEFAULT
.- Parameters:
region
- the region name to set
-
setPrefix
Specify the prefix for target data base table used from queries.- Parameters:
prefix
- the prefix to set (default INT_).
-
setTimeToLive
public void setTimeToLive(int timeToLive)Specify the time (in milliseconds) to expire dead locks.- Parameters:
timeToLive
- the time to expire dead locks.
-
afterPropertiesSet
public void afterPropertiesSet()- Specified by:
afterPropertiesSet
in interfaceInitializingBean
-
close
public void close()- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Specified by:
close
in interfaceLockRepository
-
delete
- Specified by:
delete
in interfaceLockRepository
-
acquire
- Specified by:
acquire
in interfaceLockRepository
-
isAcquired
- Specified by:
isAcquired
in interfaceLockRepository
-
deleteExpired
public void deleteExpired()- Specified by:
deleteExpired
in interfaceLockRepository
-
renew
- Specified by:
renew
in interfaceLockRepository
-