org.quartz.impl.jdbcjobstore
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Nested Class Summary | |
|---|---|
protected static class |
JobStoreSupport.RecoverMisfiredJobsResult
Helper class for returning the composite result of trying to recover misfired jobs. |
protected static interface |
JobStoreSupport.TransactionCallback
Implement this interface to provide the code to execute within the a transaction template. |
protected static interface |
JobStoreSupport.VoidTransactionCallback
Implement this interface to provide the code to execute within the a transaction template that has no return value. |
| Field Summary | |
|---|---|
protected HashMap |
calendarCache
|
protected Class |
delegateClass
|
protected String |
delegateClassName
|
protected String |
dsName
|
protected boolean |
firstCheckIn
|
protected String |
instanceId
|
protected String |
instanceName
|
protected long |
lastCheckin
|
protected static String |
LOCK_CALENDAR_ACCESS
|
protected static String |
LOCK_JOB_ACCESS
|
protected static String |
LOCK_MISFIRE_ACCESS
|
protected static String |
LOCK_STATE_ACCESS
|
protected static String |
LOCK_TRIGGER_ACCESS
|
protected int |
maxToRecoverAtATime
|
protected String |
tablePrefix
|
protected boolean |
useProperties
|
| Constructor Summary | |
|---|---|
JobStoreSupport()
|
|
| Method Summary | |
|---|---|
protected Trigger |
acquireNextTrigger(Connection conn,
SchedulingContext ctxt,
long noLaterThan)
|
Trigger |
acquireNextTrigger(SchedulingContext ctxt,
long noLaterThan)
Get a handle to the next N triggers to be fired, and mark them as 'reserved' by the calling scheduler. |
protected long |
calcFailedIfAfter(SchedulerStateRecord rec)
|
protected boolean |
calendarExists(Connection conn,
String calName)
|
boolean |
canUseProperties()
Get whether String-only properties will be handled in JobDataMaps. |
protected String |
checkBlockedState(Connection conn,
SchedulingContext ctxt,
String jobName,
String jobGroupName,
String currentState)
Determines if a Trigger for the given job should be blocked. |
protected void |
cleanupConnection(Connection conn)
Cleanup the given database connection. |
protected void |
cleanVolatileTriggerAndJobs()
Removes all volatile data. |
protected void |
cleanVolatileTriggerAndJobs(Connection conn)
Removes all volatile data. |
protected void |
closeConnection(Connection conn)
Closes the supplied Connection. |
protected List |
clusterCheckIn(Connection conn)
|
protected void |
clusterRecover(Connection conn,
List failedInstances)
|
protected void |
commitConnection(Connection conn)
Commit the supplied connection |
protected boolean |
doCheckin()
|
protected JobStoreSupport.RecoverMisfiredJobsResult |
doRecoverMisfires()
|
protected abstract Object |
executeInLock(String lockName,
JobStoreSupport.TransactionCallback txCallback)
Execute the given callback having aquired the given lock. |
protected void |
executeInLock(String lockName,
JobStoreSupport.VoidTransactionCallback txCallback)
Execute the given callback having aquired the given lock. |
protected Object |
executeInNonManagedTXLock(String lockName,
JobStoreSupport.TransactionCallback txCallback)
Execute the given callback having optionally aquired the given lock. |
protected void |
executeInNonManagedTXLock(String lockName,
JobStoreSupport.VoidTransactionCallback txCallback)
Execute the given callback having optionally aquired the given lock. |
Object |
executeWithoutLock(JobStoreSupport.TransactionCallback txCallback)
Execute the given callback in a transaction. |
protected List |
findFailedInstances(Connection conn)
Get a list of all scheduler instances in the cluster that may have failed. |
protected Connection |
getAttributeRestoringConnection(Connection conn)
Wrap the given Connection in a Proxy such that attributes
that might be set will be restored before the connection is closed
(and potentially restored to a pool). |
protected String[] |
getCalendarNames(Connection conn,
SchedulingContext ctxt)
|
String[] |
getCalendarNames(SchedulingContext ctxt)
Get the names of all of the s
in the JobStore. |
protected ClassLoadHelper |
getClassLoadHelper()
|
long |
getClusterCheckinInterval()
Get the frequency (in milliseconds) at which this instance "checks-in" with the other instances of the cluster. |
protected Connection |
getConnection()
|
String |
getDataSource()
Get the name of the DataSource that should be used for
performing database functions. |
long |
getDbRetryInterval()
|
protected org.quartz.impl.jdbcjobstore.DriverDelegate |
getDelegate()
Get the driver delegate for DB operations. |
boolean |
getDoubleCheckLockMisfireHandler()
Get whether to check to see if there are Triggers that have misfired before actually acquiring the lock to recover them. |
String |
getDriverDelegateClass()
Get the JDBC driver delegate class name. |
protected String |
getFiredTriggerRecordId()
|
String |
getInstanceId()
Get the instance Id of the Scheduler (must be unique within a cluster). |
String |
getInstanceName()
Get the instance name of the Scheduler (must be unique within this server instance). |
protected String[] |
getJobGroupNames(Connection conn,
SchedulingContext ctxt)
|
String[] |
getJobGroupNames(SchedulingContext ctxt)
Get the names of all of the
groups. |
protected String[] |
getJobNames(Connection conn,
SchedulingContext ctxt,
String groupName)
|
String[] |
getJobNames(SchedulingContext ctxt,
String groupName)
Get the names of all of the s that
have the given group name. |
protected Semaphore |
getLockHandler()
|
protected org.apache.commons.logging.Log |
getLog()
|
boolean |
getMakeThreadsDaemons()
Get whether the threads spawned by this JobStore should be marked as daemon. |
int |
getMaxMisfiresToHandleAtATime()
Get the maximum number of misfired triggers that the misfire handling thread will try to recover at one time (within one transaction). |
long |
getMisfireThreshold()
|
protected long |
getMisfireTime()
|
protected abstract Connection |
getNonManagedTXConnection()
|
protected int |
getNumberOfCalendars(Connection conn,
SchedulingContext ctxt)
|
int |
getNumberOfCalendars(SchedulingContext ctxt)
Get the number of s that are
stored in the JobsStore. |
protected int |
getNumberOfJobs(Connection conn,
SchedulingContext ctxt)
|
int |
getNumberOfJobs(SchedulingContext ctxt)
Get the number of s that are
stored in the JobStore. |
protected int |
getNumberOfTriggers(Connection conn,
SchedulingContext ctxt)
|
int |
getNumberOfTriggers(SchedulingContext ctxt)
Get the number of s that are
stored in the JobsStore. |
Set |
getPausedTriggerGroups(Connection conn,
SchedulingContext ctxt)
Pause all of the in the
given group. |
Set |
getPausedTriggerGroups(SchedulingContext ctxt)
|
String |
getSelectWithLockSQL()
|
String |
getTablePrefix()
Get the prefix that should be pre-pended to all table names. |
protected String[] |
getTriggerGroupNames(Connection conn,
SchedulingContext ctxt)
|
String[] |
getTriggerGroupNames(SchedulingContext ctxt)
Get the names of all of the
groups. |
protected String[] |
getTriggerNames(Connection conn,
SchedulingContext ctxt,
String groupName)
|
String[] |
getTriggerNames(SchedulingContext ctxt,
String groupName)
Get the names of all of the s
that have the given group name. |
protected Trigger[] |
getTriggersForJob(Connection conn,
SchedulingContext ctxt,
String jobName,
String groupName)
|
Trigger[] |
getTriggersForJob(SchedulingContext ctxt,
String jobName,
String groupName)
Get all of the Triggers that are associated to the given Job. |
int |
getTriggerState(Connection conn,
SchedulingContext ctxt,
String triggerName,
String groupName)
|
int |
getTriggerState(SchedulingContext ctxt,
String triggerName,
String groupName)
Get the current state of the identified . |
boolean |
getUseDBLocks()
Get whether this instance should use database-based thread synchronization. |
void |
initialize(ClassLoadHelper loadHelper,
SchedulerSignaler signaler)
Called by the QuartzScheduler before the JobStore is
used, in order to give it a chance to initialize. |
boolean |
isAcquireTriggersWithinLock()
Whether or not the query and update to acquire a Trigger for firing should be performed after obtaining an explicit DB lock (to avoid possible race conditions on the trigger's db row). |
boolean |
isClustered()
Get whether this instance is part of a cluster. |
boolean |
isDontSetAutoCommitFalse()
|
boolean |
isLockOnInsert()
|
boolean |
isThreadsInheritInitializersClassLoadContext()
Get whether to set the class load context of spawned threads to that of the initializing thread. |
boolean |
isTxIsolationLevelSerializable()
|
protected boolean |
jobExists(Connection conn,
String jobName,
String groupName)
Check existence of a given job. |
protected void |
logWarnIfNonZero(int val,
String warning)
|
void |
pauseAll(Connection conn,
SchedulingContext ctxt)
Pause all triggers - equivalent of calling pauseTriggerGroup(group)
on every group. |
void |
pauseAll(SchedulingContext ctxt)
Pause all triggers - equivalent of calling pauseTriggerGroup(group)
on every group. |
void |
pauseJob(SchedulingContext ctxt,
String jobName,
String groupName)
Pause the with the given name - by
pausing all of its current Triggers. |
void |
pauseJobGroup(SchedulingContext ctxt,
String groupName)
Pause all of the in the given
group - by pausing all of their Triggers. |
void |
pauseTrigger(Connection conn,
SchedulingContext ctxt,
String triggerName,
String groupName)
Pause the with the given name. |
void |
pauseTrigger(SchedulingContext ctxt,
String triggerName,
String groupName)
Pause the with the given name. |
void |
pauseTriggerGroup(Connection conn,
SchedulingContext ctxt,
String groupName)
Pause all of the in the
given group. |
void |
pauseTriggerGroup(SchedulingContext ctxt,
String groupName)
Pause all of the in the
given group. |
protected void |
recoverJobs()
Recover any failed or misfired jobs and clean up the data store as appropriate. |
protected void |
recoverJobs(Connection conn)
Will recover any failed or misfired jobs and clean up the data store as appropriate. |
protected JobStoreSupport.RecoverMisfiredJobsResult |
recoverMisfiredJobs(Connection conn,
boolean recovering)
|
protected void |
releaseAcquiredTrigger(Connection conn,
SchedulingContext ctxt,
Trigger trigger)
|
void |
releaseAcquiredTrigger(SchedulingContext ctxt,
Trigger trigger)
Inform the JobStore that the scheduler no longer plans to
fire the given Trigger, that it had previously acquired
(reserved). |
protected void |
releaseLock(Connection conn,
String lockName,
boolean doIt)
|
protected boolean |
removeCalendar(Connection conn,
SchedulingContext ctxt,
String calName)
|
boolean |
removeCalendar(SchedulingContext ctxt,
String calName)
Remove (delete) the with the
given name. |
protected boolean |
removeJob(Connection conn,
SchedulingContext ctxt,
String jobName,
String groupName,
boolean activeDeleteSafe)
|
boolean |
removeJob(SchedulingContext ctxt,
String jobName,
String groupName)
Remove (delete) the with the given
name, and any s that reference
it. |
protected boolean |
removeTrigger(Connection conn,
SchedulingContext ctxt,
String triggerName,
String groupName)
|
boolean |
removeTrigger(SchedulingContext ctxt,
String triggerName,
String groupName)
Remove (delete) the with the
given name. |
protected boolean |
replaceTrigger(Connection conn,
SchedulingContext ctxt,
String triggerName,
String groupName,
Trigger newTrigger)
|
boolean |
replaceTrigger(SchedulingContext ctxt,
String triggerName,
String groupName,
Trigger newTrigger)
Remove (delete) the with the
given name, and store the new given one - which must be associated
with the same job. |
void |
resumeAll(Connection conn,
SchedulingContext ctxt)
protected |
void |
resumeAll(SchedulingContext ctxt)
Resume (un-pause) all triggers - equivalent of calling resumeTriggerGroup(group)
on every group. |
void |
resumeJob(SchedulingContext ctxt,
String jobName,
String groupName)
Resume (un-pause) the with the
given name. |
void |
resumeJobGroup(SchedulingContext ctxt,
String groupName)
Resume (un-pause) all of the in
the given group. |
void |
resumeTrigger(Connection conn,
SchedulingContext ctxt,
String triggerName,
String groupName)
Resume (un-pause) the with the
given name. |
void |
resumeTrigger(SchedulingContext ctxt,
String triggerName,
String groupName)
Resume (un-pause) the with the
given name. |
void |
resumeTriggerGroup(Connection conn,
SchedulingContext ctxt,
String groupName)
Resume (un-pause) all of the
in the given group. |
void |
resumeTriggerGroup(SchedulingContext ctxt,
String groupName)
Resume (un-pause) all of the
in the given group. |
protected Calendar |
retrieveCalendar(Connection conn,
SchedulingContext ctxt,
String calName)
|
Calendar |
retrieveCalendar(SchedulingContext ctxt,
String calName)
Retrieve the given . |
protected JobDetail |
retrieveJob(Connection conn,
SchedulingContext ctxt,
String jobName,
String groupName)
|
JobDetail |
retrieveJob(SchedulingContext ctxt,
String jobName,
String groupName)
Retrieve the for the given
. |
protected Trigger |
retrieveTrigger(Connection conn,
SchedulingContext ctxt,
String triggerName,
String groupName)
|
protected Trigger |
retrieveTrigger(Connection conn,
String triggerName,
String groupName)
|
Trigger |
retrieveTrigger(SchedulingContext ctxt,
String triggerName,
String groupName)
Retrieve the given . |
protected void |
rollbackConnection(Connection conn)
Rollback the supplied connection. |
void |
schedulerStarted()
Called by the QuartzScheduler to inform the JobStore that
the scheduler has started. |
void |
setAcquireTriggersWithinLock(boolean acquireTriggersWithinLock)
Whether or not the query and update to acquire a Trigger for firing should be performed after obtaining an explicit DB lock. |
void |
setClusterCheckinInterval(long l)
Set the frequency (in milliseconds) at which this instance "checks-in" with the other instances of the cluster. |
void |
setDataSource(String dsName)
Set the name of the DataSource that should be used for
performing database functions. |
void |
setDbRetryInterval(long dbRetryInterval)
|
void |
setDontSetAutoCommitFalse(boolean b)
Don't call set autocommit(false) on connections obtained from the DataSource. |
void |
setDoubleCheckLockMisfireHandler(boolean doubleCheckLockMisfireHandler)
Set whether to check to see if there are Triggers that have misfired before actually acquiring the lock to recover them. |
void |
setDriverDelegateClass(String delegateClassName)
Set the JDBC driver delegate class. |
void |
setInstanceId(String instanceId)
Set the instance Id of the Scheduler (must be unique within a cluster). |
void |
setInstanceName(String instanceName)
Set the instance name of the Scheduler (must be unique within this server instance). |
void |
setIsClustered(boolean isClustered)
Set whether this instance is part of a cluster. |
void |
setLockHandler(Semaphore lockHandler)
|
void |
setLockOnInsert(boolean lockOnInsert)
Whether or not to obtain locks when inserting new jobs/triggers. |
void |
setMakeThreadsDaemons(boolean makeThreadsDaemons)
Set whether the threads spawned by this JobStore should be marked as daemon. |
void |
setMaxMisfiresToHandleAtATime(int maxToRecoverAtATime)
Set the maximum number of misfired triggers that the misfire handling thread will try to recover at one time (within one transaction). |
void |
setMisfireThreshold(long misfireThreshold)
The the number of milliseconds by which a trigger must have missed its next-fire-time, in order for it to be considered "misfired" and thus have its misfire instruction applied. |
void |
setSelectWithLockSQL(String string)
set the SQL statement to use to select and lock a row in the "locks" table. |
void |
setTablePrefix(String prefix)
Set the prefix that should be pre-pended to all table names. |
void |
setThreadsInheritInitializersClassLoadContext(boolean threadsInheritInitializersClassLoadContext)
Set whether to set the class load context of spawned threads to that of the initializing thread. |
void |
setTxIsolationLevelSerializable(boolean b)
Set the transaction isolation level of DB connections to sequential. |
void |
setUseDBLocks(boolean useDBLocks)
Set whether this instance should use database-based thread synchronization. |
void |
setUseProperties(String useProp)
Set whether String-only properties will be handled in JobDataMaps. |
void |
shutdown()
Called by the QuartzScheduler to inform the JobStore that
it should free up all of it's resources because the scheduler is
shutting down. |
protected void |
signalSchedulingChange(long candidateNewNextFireTime)
|
protected void |
storeCalendar(Connection conn,
SchedulingContext ctxt,
String calName,
Calendar calendar,
boolean replaceExisting,
boolean updateTriggers)
|
void |
storeCalendar(SchedulingContext ctxt,
String calName,
Calendar calendar,
boolean replaceExisting,
boolean updateTriggers)
Store the given . |
protected void |
storeJob(Connection conn,
SchedulingContext ctxt,
JobDetail newJob,
boolean replaceExisting)
Insert or update a job. |
void |
storeJob(SchedulingContext ctxt,
JobDetail newJob,
boolean replaceExisting)
Store the given . |
void |
storeJobAndTrigger(SchedulingContext ctxt,
JobDetail newJob,
Trigger newTrigger)
Store the given and . |
protected void |
storeTrigger(Connection conn,
SchedulingContext ctxt,
Trigger newTrigger,
JobDetail job,
boolean replaceExisting,
String state,
boolean forceState,
boolean recovering)
Insert or update a trigger. |
void |
storeTrigger(SchedulingContext ctxt,
Trigger newTrigger,
boolean replaceExisting)
Store the given . |
boolean |
supportsPersistence()
|
protected void |
triggeredJobComplete(Connection conn,
SchedulingContext ctxt,
Trigger trigger,
JobDetail jobDetail,
int triggerInstCode)
|
void |
triggeredJobComplete(SchedulingContext ctxt,
Trigger trigger,
JobDetail&n |