|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.quartz.impl.jdbcjobstore.DBSemaphore
public abstract class DBSemaphore
Base class for database based lock handlers for providing thread/resource locking in order to protect resources from being altered by multiple threads at the same time.
Field Summary |
---|
Constructor Summary | |
---|---|
DBSemaphore(String tablePrefix,
String sql,
String defaultSQL)
|
Method Summary | |
---|---|
protected abstract void |
executeSQL(Connection conn,
String lockName,
String expandedSQL)
Execute the SQL that will lock the proper database row. |
protected org.apache.commons.logging.Log |
getLog()
|
protected String |
getSQL()
|
protected String |
getTablePrefix()
|
boolean |
isLockOwner(Connection conn,
String lockName)
Determine whether the calling thread owns a lock on the identified resource. |
boolean |
obtainLock(Connection conn,
String lockName)
Grants a lock on the identified resource to the calling thread (blocking until it is available). |
void |
releaseLock(Connection conn,
String lockName)
Release the lock on the identified resource if it is held by the calling thread. |
boolean |
requiresConnection()
This Semaphore implementation does use the database. |
protected void |
setSQL(String sql)
|
void |
setTablePrefix(String tablePrefix)
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public DBSemaphore(String tablePrefix, String sql, String defaultSQL)
Method Detail |
---|
protected org.apache.commons.logging.Log getLog()
protected abstract void executeSQL(Connection conn, String lockName, String expandedSQL) throws LockException
LockException
public boolean obtainLock(Connection conn, String lockName) throws LockException
obtainLock
in interface Semaphore
conn
- Database connection used to establish lock. Can be null if
Semaphore.requiresConnection()
returns false.
LockException
public void releaseLock(Connection conn, String lockName)
releaseLock
in interface Semaphore
conn
- Database connection used to establish lock. Can be null if
Semaphore.requiresConnection()
returns false.public boolean isLockOwner(Connection conn, String lockName)
isLockOwner
in interface Semaphore
conn
- Database connection used to establish lock. Can be null if
Semaphore.requiresConnection()
returns false.public boolean requiresConnection()
requiresConnection
in interface Semaphore
Semaphore.isLockOwner(Connection, String)
,
Semaphore.obtainLock(Connection, String)
,
Semaphore.releaseLock(Connection, String)
protected String getSQL()
protected void setSQL(String sql)
protected String getTablePrefix()
public void setTablePrefix(String tablePrefix)
setTablePrefix
in interface TablePrefixAware
|
Quartz Enterprise Job Scheduler Project Page | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |