org.quartz.impl.jdbcjobstore
Class JobStoreCMT

java.lang.Object
  extended byorg.quartz.impl.jdbcjobstore.JobStoreSupport
      extended byorg.quartz.impl.jdbcjobstore.JobStoreCMT
All Implemented Interfaces:
Constants, JobStore

public class JobStoreCMT
extends JobStoreSupport

JobStoreCMT is meant to be used in an application-server environment that provides container-managed-transactions. No commit / rollback will be1 handled by this class.

If you need commit / rollback, use JobStoreTX instead.

Author:
Jeffrey Wescott, James House, Srinivas Venkatarangaiah

Field Summary
protected  boolean dontSetNonManagedTXConnectionAutoCommitFalse
           
protected  String nonManagedTxDsName
           
protected  boolean setTxIsolationLevelReadCommitted
           
 
Fields inherited from class org.quartz.impl.jdbcjobstore.JobStoreSupport
calendarCache, delegateClass, delegateClassName, dsName, firstCheckIn, instanceId, instanceName, lastCheckin, LOCK_CALENDAR_ACCESS, LOCK_JOB_ACCESS, LOCK_MISFIRE_ACCESS, LOCK_STATE_ACCESS, LOCK_TRIGGER_ACCESS, maxToRecoverAtATime, tablePrefix, useProperties
 
Fields inherited from interface org.quartz.impl.jdbcjobstore.Constants
ALIAS_COL_NEXT_FIRE_TIME, ALL_GROUPS_PAUSED, COL_BLOB, COL_CALENDAR, COL_CALENDAR_NAME, COL_CHECKIN_INTERVAL, COL_CRON_EXPRESSION, COL_DESCRIPTION, COL_END_TIME, COL_ENTRY_ID, COL_ENTRY_STATE, COL_FIRED_TIME, COL_INSTANCE_NAME, COL_IS_DURABLE, COL_IS_STATEFUL, COL_IS_VOLATILE, COL_JOB_CLASS, COL_JOB_DATAMAP, COL_JOB_GROUP, COL_JOB_LISTENER, COL_JOB_NAME, COL_LAST_CHECKIN_TIME, COL_LOCK_NAME, COL_MISFIRE_INSTRUCTION, COL_NEXT_FIRE_TIME, COL_PREV_FIRE_TIME, COL_RECOVERER, COL_REPEAT_COUNT, COL_REPEAT_INTERVAL, COL_REQUESTS_RECOVERY, COL_START_TIME, COL_TIME_ZONE_ID, COL_TIMES_TRIGGERED, COL_TRIGGER_GROUP, COL_TRIGGER_LISTENER, COL_TRIGGER_NAME, COL_TRIGGER_STATE, COL_TRIGGER_TYPE, DEFAULT_TABLE_PREFIX, STATE_ACQUIRED, STATE_BLOCKED, STATE_COMPLETE, STATE_DELETED, STATE_ERROR, STATE_EXECUTING, STATE_MISFIRED, STATE_PAUSED, STATE_PAUSED_BLOCKED, STATE_WAITING, TABLE_BLOB_TRIGGERS, TABLE_CALENDARS, TABLE_CRON_TRIGGERS, TABLE_FIRED_TRIGGERS, TABLE_JOB_DETAILS, TABLE_JOB_LISTENERS, TABLE_LOCKS, TABLE_PAUSED_TRIGGERS, TABLE_SCHEDULER_STATE, TABLE_SIMPLE_TRIGGERS, TABLE_TRIGGER_LISTENERS, TABLE_TRIGGERS, TTYPE_BLOB, TTYPE_CRON, TTYPE_SIMPLE
 
Constructor Summary
JobStoreCMT()
           
 
Method Summary
 Trigger acquireNextTrigger(SchedulingContext ctxt, long noLaterThan)
           Get a handle to the next trigger to be fired, and mark it as 'reserved' by the calling scheduler.
protected  void cleanVolatileTriggerAndJobs()
           Removes all volatile data
protected  boolean doCheckin()
           
protected  boolean doRecoverMisfires()
           
 String[] getCalendarNames(SchedulingContext ctxt)
           Get the names of all of the Calendar s in the JobStore.
 String[] getJobGroupNames(SchedulingContext ctxt)
           Get the names of all of the Job groups.
 String[] getJobNames(SchedulingContext ctxt, String groupName)
           Get the names of all of the Job s that have the given group name.
protected  Connection getNonManagedTXConnection()
           
 String getNonManagedTXDataSource()
           Get the name of the DataSource that should be used for performing database functions.
 int getNumberOfCalendars(SchedulingContext ctxt)
           Get the number of Calendar s that are stored in the JobsStore.
 int getNumberOfJobs(SchedulingContext ctxt)
           Get the number of Job s that are stored in the JobStore.
 int getNumberOfTriggers(SchedulingContext ctxt)
           Get the number of Trigger s that are stored in the JobsStore.
 Set getPausedTriggerGroups(SchedulingContext ctxt)
           
 String[] getTriggerGroupNames(SchedulingContext ctxt)
           Get the names of all of the Trigger groups.
 String[] getTriggerNames(SchedulingContext ctxt, String groupName)
           Get the names of all of the Trigger s that have the given group name.
 Trigger[] getTriggersForJob(SchedulingContext ctxt, String jobName, String groupName)
           Get all of the Triggers that are associated to the given Job.
 int getTriggerState(SchedulingContext ctxt, String triggerName, String groupName)
           Get the current state of the identified Trigger.
 void initialize(ClassLoadHelper loadHelper, SchedulerSignaler signaler)
           Called by the QuartzScheduler before the JobStore is used, in order to give the it a chance to initialize.
 boolean isDontSetNonManagedTXConnectionAutoCommitFalse()
           
 boolean isTxIsolationLevelReadCommitted()
           
 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 Job with the given name - by pausing all of its current Triggers.
 void pauseJobGroup(SchedulingContext ctxt, String groupName)
           Pause all of the Jobs in the given group - by pausing all of their Triggers.
 void pauseTrigger(SchedulingContext ctxt, String triggerName, String groupName)
           Pause the Trigger with the given name.
 void pauseTriggerGroup(SchedulingContext ctxt, String groupName)
           Pause all of the Triggers in the given group.
protected  void recoverJobs()
           Recover any failed or misfired jobs and clean up the data store as appropriate.
 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).
 boolean removeCalendar(SchedulingContext ctxt, String calName)
           Remove (delete) the Calendar with the given name.
 boolean removeJob(SchedulingContext ctxt, String jobName, String groupName)
           Remove (delete) the Job with the given name, and any Trigger s that reference it.
 boolean removeTrigger(SchedulingContext ctxt, String triggerName, String groupName)
           Remove (delete) the Trigger with the given name.
 boolean replaceTrigger(SchedulingContext ctxt, String triggerName, String groupName, Trigger newTrigger)
           Remove (delete) the Trigger with the given name, and store the new given one - which must be associated with the same job.
 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 Job with the given name.
 void resumeJobGroup(SchedulingContext ctxt, String groupName)
           Resume (un-pause) all of the Jobs in the given group.
 void resumeTrigger(SchedulingContext ctxt, String triggerName, String groupName)
           Resume (un-pause) the Trigger with the given name.
 void resumeTriggerGroup(SchedulingContext ctxt, String groupName)
           Resume (un-pause) all of the Triggers in the given group.
 Calendar retrieveCalendar(SchedulingContext ctxt, String calName)
           Retrieve the given Trigger.
 JobDetail retrieveJob(SchedulingContext ctxt, String jobName, String groupName)
           Retrieve the JobDetail for the given Job.
 Trigger retrieveTrigger(SchedulingContext ctxt, String triggerName, String groupName)
           Retrieve the given Trigger.
 void setDontSetNonManagedTXConnectionAutoCommitFalse(boolean b)
          Don't call set autocommit(false) on connections obtained from the DataSource.
 void setNonManagedTXDataSource(String nonManagedTxDsName)
           Set the name of the DataSource that should be used for performing database functions.
 void setTxIsolationLevelReadCommitted(boolean b)
          Set the transaction isolation level of DB connections to sequential.
 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.
 void storeCalendar(SchedulingContext ctxt, String calName, Calendar calendar, boolean replaceExisting, boolean updateTriggers)
           Store the given Calendar.
 void storeJob(SchedulingContext ctxt, JobDetail newJob, boolean replaceExisting)
           Store the given JobDetail.
 void storeJobAndTrigger(SchedulingContext ctxt, JobDetail newJob, Trigger newTrigger)
           Store the given JobDetail and Trigger.
 void storeTrigger(SchedulingContext ctxt, Trigger newTrigger, boolean replaceExisting)
           Store the given Trigger.
 void triggeredJobComplete(SchedulingContext ctxt, Trigger trigger, JobDetail jobDetail, int triggerInstCode)
           Inform the JobStore that the scheduler has completed the firing of the given Trigger (and the execution its associated Job), and that the JobDataMap in the given JobDetail should be updated if the Job is stateful.
 TriggerFiredBundle triggerFired(SchedulingContext ctxt, Trigger trigger)
           Inform the JobStore that the scheduler is now firing the given Trigger (executing its associated Job), that it had previously acquired (reserved).
 
Methods inherited from class org.quartz.impl.jdbcjobstore.JobStoreSupport
acquireNextTrigger, calcFailedIfAfter, calendarExists, canUseProperties, cleanVolatileTriggerAndJobs, closeConnection, clusterCheckIn, clusterRecover, commitConnection, findFailedInstances, getCalendarNames, getClassLoadHelper, getClusterCheckinInterval, getConnection, getDataSource, getDbRetryInterval, getDelegate, getDriverDelegateClass, getFiredTriggerRecordId, getInstanceId, getInstanceName, getJobGroupNames, getJobNames, getLockHandler, getMaxMisfiresToHandleAtATime, getMisfireThreshold, getMisfireTime, getNewStatusForTrigger, getNumberOfCalendars, getNumberOfJobs, getNumberOfTriggers, getPausedTriggerGroups, getSelectWithLockSQL, getStatusForResumedTrigger, getTablePrefix, getTriggerGroupNames, getTriggerNames, getTriggersForJob, getTriggerState, getUseDBLocks, isClustered, isDontSetAutoCommitFalse, isLockOnInsert, isTxIsolationLevelSerializable, jobExists, logWarnIfNonZero, pauseAll, pauseTrigger, pauseTriggerGroup, recoverJobs, recoverMisfiredJobs, releaseAcquiredTrigger, releaseLock, removeCalendar, removeJob, removeTrigger, replaceTrigger, resumeAll, resumeTrigger, resumeTriggerGroup, retrieveCalendar, retrieveJob, retrieveTrigger, rollbackConnection, schedulerStarted, setClusterCheckinInterval, setDataSource, setDbRetryInterval, setDontSetAutoCommitFalse, setDriverDelegateClass, setInstanceId, setInstanceName, setIsClustered, setLockOnInsert, setMaxMisfiresToHandleAtATime, setMisfireThreshold, setSelectWithLockSQL, setTablePrefix, setTxIsolationLevelSerializable, setUseDBLocks, setUseProperties, signalSchedulingChange, storeCalendar, storeJob, storeTrigger, supportsPersistence, triggeredJobComplete, triggerExists, triggerFired, updateMisfiredTrigger
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

nonManagedTxDsName

protected String nonManagedTxDsName

dontSetNonManagedTXConnectionAutoCommitFalse

protected boolean dontSetNonManagedTXConnectionAutoCommitFalse

setTxIsolationLevelReadCommitted

protected boolean setTxIsolationLevelReadCommitted
Constructor Detail

JobStoreCMT

public JobStoreCMT()
Method Detail

setNonManagedTXDataSource

public void setNonManagedTXDataSource(String nonManagedTxDsName)

Set the name of the DataSource that should be used for performing database functions.


getNonManagedTXDataSource

public String getNonManagedTXDataSource()

Get the name of the DataSource that should be used for performing database functions.


isDontSetNonManagedTXConnectionAutoCommitFalse

public boolean isDontSetNonManagedTXConnectionAutoCommitFalse()

setDontSetNonManagedTXConnectionAutoCommitFalse

public void setDontSetNonManagedTXConnectionAutoCommitFalse(boolean b)
Don't call set autocommit(false) on connections obtained from the DataSource. This can be helpfull in a few situations, such as if you have a driver that complains if it is called when it is already off.

Parameters:
b -

isTxIsolationLevelReadCommitted

public boolean isTxIsolationLevelReadCommitted()

setTxIsolationLevelReadCommitted

public void setTxIsolationLevelReadCommitted(boolean b)
Set the transaction isolation level of DB connections to sequential.

Parameters:
b -

initialize

public void initialize(ClassLoadHelper loadHelper,
                       SchedulerSignaler signaler)
                throws SchedulerConfigException
Description copied from class: JobStoreSupport

Called by the QuartzScheduler before the JobStore is used, in order to give the it a chance to initialize.

Specified by:
initialize in interface JobStore
Overrides:
initialize in class JobStoreSupport
Throws:
SchedulerConfigException

shutdown

public void shutdown()
Description copied from class: JobStoreSupport

Called by the QuartzScheduler to inform the JobStore that it should free up all of it's resources because the scheduler is shutting down.

Specified by:
shutdown in interface JobStore
Overrides:
shutdown in class JobStoreSupport

recoverJobs

protected void recoverJobs()
                    throws JobPersistenceException

Recover any failed or misfired jobs and clean up the data store as appropriate.

Specified by:
recoverJobs in class JobStoreSupport
Throws:
JobPersistenceException - if jobs could not be recovered

cleanVolatileTriggerAndJobs

protected void cleanVolatileTriggerAndJobs()
                                    throws JobPersistenceException
Description copied from class: JobStoreSupport

Removes all volatile data

Specified by:
cleanVolatileTriggerAndJobs in class JobStoreSupport
Throws:
JobPersistenceException - if jobs could not be recovered

storeJobAndTrigger

public void storeJobAndTrigger(SchedulingContext ctxt,
                               JobDetail newJob,
                               Trigger newTrigger)
                        throws ObjectAlreadyExistsException,
                               JobPersistenceException

Store the given JobDetail and Trigger.

Parameters:
newJob - The JobDetail to be stored.
newTrigger - The Trigger to be stored.
Throws:
ObjectAlreadyExistsException - if a Job with the same name/group already exists.
JobPersistenceException

storeJob

public void storeJob(SchedulingContext ctxt,
                     JobDetail newJob,
                     boolean replaceExisting)
              throws ObjectAlreadyExistsException,
                     JobPersistenceException

Store the given JobDetail.

Parameters:
newJob - The JobDetail to be stored.
replaceExisting - If true, any Job existing in the JobStore with the same name & group should be over-written.
Throws:
ObjectAlreadyExistsException - if a Job with the same name/group already exists, and replaceExisting is set to false.
JobPersistenceException

removeJob

public boolean removeJob(SchedulingContext ctxt,
                         String jobName,
                         String groupName)
                  throws JobPersistenceException

Remove (delete) the Job with the given name, and any Trigger s that reference it.

If removal of the Job results in an empty group, the group should be removed from the JobStore's list of known group names.

Parameters:
jobName - The name of the Job to be removed.
groupName - The group name of the Job to be removed.
Returns:
true if a Job with the given name & group was found and removed from the store.
Throws:
JobPersistenceException

retrieveJob

public JobDetail retrieveJob(SchedulingContext ctxt,
                             String jobName,
                             String groupName)
                      throws JobPersistenceException

Retrieve the JobDetail for the given Job.

Parameters:
jobName - The name of the Job to be retrieved.
groupName - The group name of the Job to be retrieved.
Returns:
The desired Job, or null if there is no match.
Throws:
JobPersistenceException

storeTrigger

public void storeTrigger(SchedulingContext ctxt,
                         Trigger newTrigger,
                         boolean replaceExisting)
                  throws ObjectAlreadyExistsException,
                         JobPersistenceException

Store the given Trigger.

Parameters:
newTrigger - The Trigger to be stored.
replaceExisting - If true, any Trigger existing in the JobStore with the same name & group should be over-written.
Throws:
ObjectAlreadyExistsException - if a Trigger with the same name/group already exists, and replaceExisting is set to false.
JobPersistenceException
See Also:
JobStore.pauseTriggerGroup(SchedulingContext, String)

removeTrigger

public boolean removeTrigger(SchedulingContext ctxt,
                             String triggerName,
                             String groupName)
                      throws JobPersistenceException

Remove (delete) the Trigger with the given name.

If removal of the Trigger results in an empty group, the group should be removed from the JobStore's list of known group names.

If removal of the Trigger results in an 'orphaned' Job that is not 'durable', then the Job should be deleted also.

Parameters:
triggerName - The name of the Trigger to be removed.
groupName - The group name of the Trigger to be removed.
Returns:
true if a Trigger with the given name & group was found and removed from the store.
Throws:
JobPersistenceException

replaceTrigger

public boolean replaceTrigger(SchedulingContext ctxt,
                              String triggerName,
                              String groupName,
                              Trigger newTrigger)
                       throws JobPersistenceException
Description copied from interface: JobStore

Remove (delete) the Trigger with the given name, and store the new given one - which must be associated with the same job.

Parameters:
triggerName - The name of the Trigger to be removed.
groupName - The group name of the Trigger to be removed.
newTrigger - The new Trigger to be stored.
Returns:
true if a Trigger with the given name & group was found and removed from the store.
Throws:
JobPersistenceException
See Also:
JobStore.replaceTrigger(org.quartz.core.SchedulingContext, java.lang.String, java.lang.String, org.quartz.Trigger)

retrieveTrigger

public Trigger retrieveTrigger(SchedulingContext ctxt,
                               String triggerName,
                               String groupName)
                        throws JobPersistenceException

Retrieve the given Trigger.

Parameters:
triggerName - The name of the Trigger to be retrieved.
groupName - The group name of the Trigger to be retrieved.
Returns:
The desired Trigger, or null if there is no match.
Throws:
JobPersistenceException

storeCalendar

public void storeCalendar(SchedulingContext ctxt,
                          String calName,
                          Calendar calendar,
                          boolean replaceExisting,
                          boolean updateTriggers)
                   throws ObjectAlreadyExistsException,
                          JobPersistenceException

Store the given Calendar.

Parameters:
calName - The name of the calendar.
calendar - The Calendar to be stored.
replaceExisting - If true, any Calendar existing in the JobStore with the same name & group should be over-written.
updateTriggers - If true, any Triggers existing in the JobStore that reference an existing Calendar with the same name with have their next fire time re-computed with the new Calendar.
Throws:
ObjectAlreadyExistsException - if a Calendar with the same name already exists, and replaceExisting is set to false.
JobPersistenceException

removeCalendar

public boolean removeCalendar(SchedulingContext ctxt,
                              String calName)
                       throws JobPersistenceException

Remove (delete) the Calendar with the given name.

If removal of the Calendar would result in s pointing to non-existent calendars, then a JobPersistenceException will be thrown.

*

Parameters:
calName - The name of the Calendar to be removed.
Returns:
true if a Calendar with the given name was found and removed from the store.
Throws:
JobPersistenceException

retrieveCalendar

public Calendar retrieveCalendar(SchedulingContext ctxt,
                                 String calName)
                          throws JobPersistenceException

Retrieve the given Trigger.

Parameters:
calName - The name of the Calendar to be retrieved.
Returns:
The desired Calendar, or null if there is no match.
Throws:
JobPersistenceException

getNumberOfJobs

public int getNumberOfJobs(SchedulingContext ctxt)
                    throws JobPersistenceException

Get the number of Job s that are stored in the JobStore.

Throws:
JobPersistenceException

getNumberOfTriggers

public int getNumberOfTriggers(SchedulingContext ctxt)
                        throws JobPersistenceException

Get the number of Trigger s that are stored in the JobsStore.

Throws:
JobPersistenceException

getNumberOfCalendars

public int getNumberOfCalendars(SchedulingContext ctxt)
                         throws JobPersistenceException

Get the number of Calendar s that are stored in the JobsStore.

Throws:
JobPersistenceException

getPausedTriggerGroups

public Set getPausedTriggerGroups(SchedulingContext ctxt)
                           throws JobPersistenceException
Throws:
JobPersistenceException

getJobNames

public String[] getJobNames(SchedulingContext ctxt,
                            String groupName)
                     throws JobPersistenceException

Get the names of all of the Job s that have the given group name.

If there are no jobs in the given group name, the result should be a zero-length array (not null).

Throws:
JobPersistenceException

getTriggerNames

public String[] getTriggerNames(SchedulingContext ctxt,
                                String groupName)
                         throws JobPersistenceException

Get the names of all of the Trigger s that have the given group name.

If there are no triggers in the given group name, the result should be a zero-length array (not null).

Throws:
JobPersistenceException

getJobGroupNames

public String[] getJobGroupNames(SchedulingContext ctxt)
                          throws JobPersistenceException

Get the names of all of the Job groups.

If there are no known group names, the result should be a zero-length array (not null).

Throws:
JobPersistenceException

getTriggerGroupNames

public String[] getTriggerGroupNames(SchedulingContext ctxt)
                              throws JobPersistenceException

Get the names of all of the Trigger groups.

If there are no known group names, the result should be a zero-length array (not null).

Throws:
JobPersistenceException

getCalendarNames

public String[] getCalendarNames(SchedulingContext ctxt)
                          throws JobPersistenceException

Get the names of all of the Calendar s in the JobStore.

If there are no Calendars in the given group name, the result should be a zero-length array (not null).

Throws:
JobPersistenceException

getTriggersForJob

public Trigger[] getTriggersForJob(SchedulingContext ctxt,
                                   String jobName,
                                   String groupName)
                            throws JobPersistenceException

Get all of the Triggers that are associated to the given Job.

If there are no matches, a zero-length array should be returned.

Throws:
JobPersistenceException

getTriggerState

public int getTriggerState(SchedulingContext ctxt,
                           String triggerName,
                           String groupName)
                    throws JobPersistenceException

Get the current state of the identified Trigger.

Throws:
JobPersistenceException
See Also:
Trigger.STATE_NORMAL, Trigger.STATE_PAUSED, Trigger.STATE_COMPLETE, Trigger.STATE_ERROR, Trigger.STATE_NONE

pauseTrigger

public void pauseTrigger(SchedulingContext ctxt,
                         String triggerName,
                         String groupName)
                  throws JobPersistenceException

Pause the Trigger with the given name.

Throws:
JobPersistenceException
See Also:
resumeTrigger(SchedulingContext, String, String)

pauseTriggerGroup

public void pauseTriggerGroup(SchedulingContext ctxt,
                              String groupName)
                       throws JobPersistenceException

Pause all of the Triggers in the given group.

Throws:
JobPersistenceException
See Also:
resumeTriggerGroup(SchedulingContext, String)

pauseJob

public void pauseJob(SchedulingContext ctxt,
                     String jobName,
                     String groupName)
              throws JobPersistenceException

Pause the Job with the given name - by pausing all of its current Triggers.

Throws:
JobPersistenceException
See Also:
resumeJob(SchedulingContext, String, String)

pauseJobGroup

public void pauseJobGroup(SchedulingContext ctxt,
                          String groupName)
                   throws JobPersistenceException

Pause all of the Jobs in the given group - by pausing all of their Triggers.

Throws:
JobPersistenceException
See Also:
resumeJobGroup(SchedulingContext, String)

resumeTrigger

public void resumeTrigger(SchedulingContext ctxt,
                          String triggerName,
                          String groupName)
                   throws JobPersistenceException

Resume (un-pause) the Trigger with the given name.

If the Trigger missed one or more fire-times, then the Trigger's misfire instruction will be applied.

Throws:
JobPersistenceException
See Also:
pauseTrigger(SchedulingContext, String, String)

resumeTriggerGroup

public void resumeTriggerGroup(SchedulingContext ctxt,
                               String groupName)
                        throws JobPersistenceException

Resume (un-pause) all of the Triggers in the given group.

If any Trigger missed one or more fire-times, then the Trigger's misfire instruction will be applied.

Throws:
JobPersistenceException
See Also:
pauseTriggerGroup(SchedulingContext, String)

resumeJob

public void resumeJob(SchedulingContext ctxt,
                      String jobName,
                      String groupName)
               throws JobPersistenceException

Resume (un-pause) the Job with the given name.

If any of the Job'sTrigger s missed one or more fire-times, then the Trigger's misfire instruction will be applied.

Throws:
JobPersistenceException
See Also:
pauseJob(SchedulingContext, String, String)

resumeJobGroup

public void resumeJobGroup(SchedulingContext ctxt,
                           String groupName)
                    throws JobPersistenceException

Resume (un-pause) all of the Jobs in the given group.

If any of the Job s had Trigger s that missed one or more fire-times, then the Trigger's misfire instruction will be applied.

Throws:
JobPersistenceException
See Also:
pauseJobGroup(SchedulingContext, String)

pauseAll

public void pauseAll(SchedulingContext ctxt)
              throws JobPersistenceException

Pause all triggers - equivalent of calling pauseTriggerGroup(group) on every group.

When resumeAll() is called (to un-pause), trigger misfire instructions WILL be applied.

Throws:
JobPersistenceException
See Also:
resumeAll(SchedulingContext), pauseTriggerGroup(SchedulingContext, String)

resumeAll

public void resumeAll(SchedulingContext ctxt)
               throws JobPersistenceException

Resume (un-pause) all triggers - equivalent of calling resumeTriggerGroup(group) on every group.

If any Trigger missed one or more fire-times, then the Trigger's misfire instruction will be applied.

Throws:
JobPersistenceException
See Also:
pauseAll(SchedulingContext)

acquireNextTrigger

public Trigger acquireNextTrigger(SchedulingContext ctxt,
                                  long noLaterThan)
                           throws JobPersistenceException

Get a handle to the next trigger to be fired, and mark it as 'reserved' by the calling scheduler.

Parameters:
noLaterThan - If > 0, the JobStore should only return a Trigger that will fire no later than the time represented in this value as milliseconds.
Throws:
JobPersistenceException
See Also:
releaseAcquiredTrigger(SchedulingContext, Trigger)

releaseAcquiredTrigger

public void releaseAcquiredTrigger(SchedulingContext ctxt,
                                   Trigger trigger)
                            throws JobPersistenceException

Inform the JobStore that the scheduler no longer plans to fire the given Trigger, that it had previously acquired (reserved).

Throws:
JobPersistenceException

triggerFired

public TriggerFiredBundle triggerFired(SchedulingContext ctxt,
                                       Trigger trigger)
                                throws JobPersistenceException

Inform the JobStore that the scheduler is now firing the given Trigger (executing its associated Job), that it had previously acquired (reserved).

Returns:
null if the trigger or it's job or calendar no longer exist, or if the trigger was not successfully put into the 'executing' state.
Throws:
JobPersistenceException

triggeredJobComplete

public void triggeredJobComplete(SchedulingContext ctxt,
                                 Trigger trigger,
                                 JobDetail jobDetail,
                                 int triggerInstCode)
                          throws JobPersistenceException

Inform the JobStore that the scheduler has completed the firing of the given Trigger (and the execution its associated Job), and that the JobDataMap in the given JobDetail should be updated if the Job is stateful.

Throws:
JobPersistenceException

doRecoverMisfires

protected boolean doRecoverMisfires()
                             throws JobPersistenceException
Specified by:
doRecoverMisfires in class JobStoreSupport
Throws:
JobPersistenceException

doCheckin

protected boolean doCheckin()
                     throws JobPersistenceException
Specified by:
doCheckin in class JobStoreSupport
Throws:
JobPersistenceException

getNonManagedTXConnection

protected Connection getNonManagedTXConnection()
                                        throws JobPersistenceException
Throws:
JobPersistenceException

Quartz Enterprise Job Scheduler Project Page