@Component(value="jpaLockingStrategy")
public class JpaLockingStrategy
extends java.lang.Object
implements org.jasig.cas.ticket.registry.support.LockingStrategy
| Modifier and Type | Field and Description |
|---|---|
static int |
DEFAULT_LOCK_TIMEOUT
Default lock timeout is 1 hour.
|
protected javax.persistence.EntityManager |
entityManager
Transactional entity manager from Spring context.
|
| Constructor and Description |
|---|
JpaLockingStrategy() |
| Modifier and Type | Method and Description |
|---|---|
boolean |
acquire() |
java.lang.String |
getOwner()
Gets the current owner of the lock as determined by querying for
uniqueId.
|
void |
release() |
void |
setApplicationId(java.lang.String id) |
void |
setLockTimeout(int seconds) |
void |
setUniqueId(java.lang.String id) |
java.lang.String |
toString() |
public static final int DEFAULT_LOCK_TIMEOUT
@NotNull protected javax.persistence.EntityManager entityManager
public void setApplicationId(java.lang.String id)
id - Application identifier that identifies a row in the lock
table for which multiple clients vie to hold the lock.
This must be the same for all clients contending for a
particular lock.public void setUniqueId(java.lang.String id)
id - Identifier used to identify this instance in a row of the
lock table. Must be unique across all clients vying for
locks for a given application ID.public void setLockTimeout(int seconds)
seconds - Maximum amount of time in seconds lock may be held.
A value of zero indicates that locks are held indefinitely.
Use of a reasonable timeout facilitates recovery from node failures,
so setting to zero is discouraged.public boolean acquire()
acquire in interface org.jasig.cas.ticket.registry.support.LockingStrategypublic void release()
release in interface org.jasig.cas.ticket.registry.support.LockingStrategypublic java.lang.String getOwner()
public java.lang.String toString()
toString in class java.lang.Object