org.quartz.impl.jdbcjobstore
Class StdJDBCDelegate

java.lang.Object
  extended by org.quartz.impl.jdbcjobstore.StdJDBCDelegate
All Implemented Interfaces:
Constants, DriverDelegate, StdJDBCConstants
Direct Known Subclasses:
CloudscapeDelegate, DB2v6Delegate, DB2v7Delegate, DB2v8Delegate, HSQLDBDelegate, MSSQLDelegate, OracleDelegate, PointbaseDelegate, PostgreSQLDelegate, WebLogicDelegate

public class StdJDBCDelegate
extends Object
implements DriverDelegate, StdJDBCConstants

This is meant to be an abstract base class for most, if not all, DriverDelegate implementations. Subclasses should override only those methods that need special handling for the DBMS driver in question.

Author:
Jeffrey Wescott, James House, Eric Mueller

Field Summary
protected  String instanceId
           
protected  org.slf4j.Logger logger
           
protected  String tablePrefix
           
protected  boolean useProperties
           
 
Fields inherited from interface org.quartz.impl.jdbcjobstore.StdJDBCConstants
COUNT_MISFIRED_TRIGGERS_IN_STATES, DELETE_BLOB_TRIGGER, DELETE_CALENDAR, DELETE_CRON_TRIGGER, DELETE_FIRED_TRIGGER, DELETE_FIRED_TRIGGERS, DELETE_INSTANCES_FIRED_TRIGGERS, DELETE_JOB_DETAIL, DELETE_JOB_LISTENERS, DELETE_NO_RECOVERY_FIRED_TRIGGERS, DELETE_PAUSED_TRIGGER_GROUP, DELETE_PAUSED_TRIGGER_GROUPS, DELETE_SCHEDULER_STATE, DELETE_SIMPLE_TRIGGER, DELETE_TRIGGER, DELETE_TRIGGER_LISTENERS, DELETE_VOLATILE_FIRED_TRIGGERS, INSERT_BLOB_TRIGGER, INSERT_CALENDAR, INSERT_CRON_TRIGGER, INSERT_FIRED_TRIGGER, INSERT_JOB_DETAIL, INSERT_JOB_LISTENER, INSERT_PAUSED_TRIGGER_GROUP, INSERT_SCHEDULER_STATE, INSERT_SIMPLE_TRIGGER, INSERT_TRIGGER, INSERT_TRIGGER_LISTENER, SELECT_BLOB_TRIGGER, SELECT_CALENDAR, SELECT_CALENDAR_EXISTENCE, SELECT_CALENDARS, SELECT_CRON_TRIGGER, SELECT_FIRED_TRIGGER, SELECT_FIRED_TRIGGER_GROUP, SELECT_FIRED_TRIGGER_INSTANCE_NAMES, SELECT_FIRED_TRIGGERS, SELECT_FIRED_TRIGGERS_OF_JOB, SELECT_FIRED_TRIGGERS_OF_JOB_GROUP, SELECT_INSTANCES_FIRED_TRIGGERS, SELECT_INSTANCES_RECOVERABLE_FIRED_TRIGGERS, SELECT_JOB_DETAIL, SELECT_JOB_EXECUTION_COUNT, SELECT_JOB_EXISTENCE, SELECT_JOB_FOR_TRIGGER, SELECT_JOB_GROUPS, SELECT_JOB_LISTENERS, SELECT_JOB_STATEFUL, SELECT_JOBS_IN_GROUP, SELECT_MISFIRED_TRIGGERS, SELECT_MISFIRED_TRIGGERS_IN_GROUP_IN_STATE, SELECT_MISFIRED_TRIGGERS_IN_STATE, SELECT_MISFIRED_TRIGGERS_IN_STATES, SELECT_NEXT_FIRE_TIME, SELECT_NEXT_TRIGGER_TO_ACQUIRE, SELECT_NUM_CALENDARS, SELECT_NUM_JOBS, SELECT_NUM_TRIGGERS, SELECT_NUM_TRIGGERS_FOR_JOB, SELECT_NUM_TRIGGERS_IN_GROUP, SELECT_PAUSED_TRIGGER_GROUP, SELECT_PAUSED_TRIGGER_GROUPS, SELECT_REFERENCED_CALENDAR, SELECT_SCHEDULER_STATE, SELECT_SCHEDULER_STATES, SELECT_SIMPLE_TRIGGER, SELECT_STATEFUL_JOBS_OF_TRIGGER_GROUP, SELECT_TRIGGER, SELECT_TRIGGER_DATA, SELECT_TRIGGER_EXISTENCE, SELECT_TRIGGER_FOR_FIRE_TIME, SELECT_TRIGGER_GROUPS, SELECT_TRIGGER_LISTENERS, SELECT_TRIGGER_STATE, SELECT_TRIGGER_STATUS, SELECT_TRIGGERS_FOR_CALENDAR, SELECT_TRIGGERS_FOR_JOB, SELECT_TRIGGERS_IN_GROUP, SELECT_TRIGGERS_IN_STATE, SELECT_VOLATILE_JOBS, SELECT_VOLATILE_TRIGGERS, TABLE_PREFIX_SUBST, UPDATE_BLOB_TRIGGER, UPDATE_CALENDAR, UPDATE_CRON_TRIGGER, UPDATE_INSTANCES_FIRED_TRIGGER_STATE, UPDATE_JOB_DATA, UPDATE_JOB_DETAIL, UPDATE_JOB_TRIGGER_STATES, UPDATE_JOB_TRIGGER_STATES_FROM_OTHER_STATE, UPDATE_SCHEDULER_STATE, UPDATE_SIMPLE_TRIGGER, UPDATE_TRIGGER, UPDATE_TRIGGER_GROUP_STATE, UPDATE_TRIGGER_GROUP_STATE_FROM_STATE, UPDATE_TRIGGER_GROUP_STATE_FROM_STATES, UPDATE_TRIGGER_SKIP_DATA, UPDATE_TRIGGER_STATE, UPDATE_TRIGGER_STATE_FROM_OTHER_STATES_BEFORE_TIME, UPDATE_TRIGGER_STATE_FROM_STATE, UPDATE_TRIGGER_STATE_FROM_STATES, UPDATE_TRIGGER_STATES_FROM_OTHER_STATES
 
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_PRIORITY, 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
StdJDBCDelegate(org.slf4j.Logger logger, String tablePrefix, String instanceId)
           Create new StdJDBCDelegate instance.
StdJDBCDelegate(org.slf4j.Logger logger, String tablePrefix, String instanceId, Boolean useProperties)
           Create new StdJDBCDelegate instance.
 
Method Summary
 boolean calendarExists(Connection conn, String calendarName)
           Check whether or not a calendar exists.
 boolean calendarIsReferenced(Connection conn, String calendarName)
           Check whether or not a calendar is referenced by any triggers.
protected  boolean canUseProperties()
           
protected  void closeResultSet(ResultSet rs)
          Cleanup helper method that closes the given ResultSet while ignoring any errors.
protected  void closeStatement(Statement statement)
          Cleanup helper method that closes the given Statement while ignoring any errors.
protected  Map convertFromProperty(Properties properties)
          convert the JobDataMap into a list of properties
protected  Properties convertToProperty(Map data)
          convert the JobDataMap into a list of properties
 int countMisfiredTriggersInStates(Connection conn, String state1, String state2, long ts)
           Get the number of triggers in the given states that have misfired - according to the given timestamp.
 int deleteAllPausedTriggerGroups(Connection conn)
           
 int deleteBlobTrigger(Connection conn, String triggerName, String groupName)
           Delete the cron trigger data for a trigger.
 int deleteCalendar(Connection conn, String calendarName)
           Delete a calendar.
 int deleteCronTrigger(Connection conn, String triggerName, String groupName)
           Delete the cron trigger data for a trigger.
 int deleteFiredTrigger(Connection conn, String entryId)
           Delete a fired trigger.
 int deleteFiredTriggers(Connection conn)
           Delete all fired triggers.
 int deleteFiredTriggers(Connection conn, String instanceId)
           Delete all fired triggers of the given instance.
 int deleteJobDetail(Connection conn, String jobName, String groupName)
           Delete the job detail record for the given job.
 int deleteJobListeners(Connection conn, String jobName, String groupName)
           Delete all job listeners for the given job.
 int deletePausedTriggerGroup(Connection conn, String groupName)
           
 int deleteSchedulerState(Connection conn, String instanceId)
           Delete a scheduler-instance state record.
 int deleteSimpleTrigger(Connection conn, String triggerName, String groupName)
           Delete the simple trigger data for a trigger.
 int deleteTrigger(Connection conn, String triggerName, String groupName)
           Delete the base trigger data for a trigger.
 int deleteTriggerListeners(Connection conn, String triggerName, String groupName)
           Delete all of the listeners associated with a given trigger.
 int deleteVolatileFiredTriggers(Connection conn)
           Delete all volatile fired triggers.
protected  boolean getBoolean(ResultSet rs, int columnIndex)
          Retrieves the value of the designated column index in the current row as a boolean.
protected  boolean getBoolean(ResultSet rs, String columnName)
          Retrieves the value of the designated column in the current row as a boolean.
protected  Object getJobDetailFromBlob(ResultSet rs, String colName)
           This method should be overridden by any delegate subclasses that need special handling for BLOBs for job details.
protected  Object getKeyOfNonSerializableValue(Map data)
          Find the key of the first non-serializable value in the given Map.
protected  Object getObjectFromBlob(ResultSet rs, String colName)
           This method should be overridden by any delegate subclasses that need special handling for BLOBs.
 int insertBlobTrigger(Connection conn, Trigger trigger)
           Insert the blob trigger data.
 int insertCalendar(Connection conn, String calendarName, Calendar calendar)
           Insert a new calendar.
 int insertCronTrigger(Connection conn, CronTrigger trigger)
           Insert the cron trigger data.
 int insertFiredTrigger(Connection conn, Trigger trigger, String state, JobDetail job)
           Insert a fired trigger.
 int insertJobDetail(Connection conn, JobDetail job)
           Insert the job detail record.
 int insertJobListener(Connection conn, JobDetail job, String listener)
           Associate a listener with a job.
 int insertPausedTriggerGroup(Connection conn, String groupName)
           
 int insertSchedulerState(Connection conn, String instanceId, long checkInTime, long interval)
           Insert a scheduler-instance state record.
 int insertSimpleTrigger(Connection conn, SimpleTrigger trigger)
           Insert the simple trigger data.
 int insertTrigger(Connection conn, Trigger trigger, String state, JobDetail jobDetail)
           Insert the base trigger data.
 int insertTriggerListener(Connection conn, Trigger trigger, String listener)
           Associate a listener with the given trigger.
 boolean isExistingTriggerGroup(Connection conn, String groupName)
           
 boolean isJobStateful(Connection conn, String jobName, String groupName)
           Check whether or not the given job is stateful.
 boolean isTriggerGroupPaused(Connection conn, String groupName)
           
 boolean jobExists(Connection conn, String jobName, String groupName)
           Check whether or not the given job exists.
protected  String rtp(String query)
           Replace the table prefix in a query by replacing any occurrences of "{0}" with the table prefix.
 Calendar selectCalendar(Connection conn, String calendarName)
           Select a calendar.
 String[] selectCalendars(Connection conn)
           Select all of the stored calendars.
 Set selectFiredTriggerInstanceNames(Connection conn)
           Select the distinct instance names of all fired-trigger records.
 List selectFiredTriggerRecords(Connection conn, String triggerName, String groupName)
           Select the states of all fired-trigger records for a given trigger, or trigger group if trigger name is null.
 List selectFiredTriggerRecordsByJob(Connection conn, String jobName, String groupName)
           Select the states of all fired-trigger records for a given job, or job group if job name is null.
 List selectInstancesFiredTriggerRecords(Connection conn, String instanceName)
           Select the states of all fired-trigger records for a given scheduler instance.
 JobDetail selectJobDetail(Connection conn, String jobName, String groupName, ClassLoadHelper loadHelper)
           Select the JobDetail object for a given job name / group name.
 int selectJobExecutionCount(Connection conn, String jobName, String jobGroup)
           Get the number instances of the identified job currently executing.
 JobDetail selectJobForTrigger(Connection conn, String triggerName, String groupName, ClassLoadHelper loadHelper)
           Select the job to which the trigger is associated.
 String[] selectJobGroups(Connection conn)
           Select all of the job group names that are stored.
 String[] selectJobListeners(Connection conn, String jobName, String groupName)
           Get all of the listeners for a given job.
 String[] selectJobsInGroup(Connection conn, String groupName)
           Select all of the jobs contained in a given group.
 Key[] selectMisfiredTriggers(Connection conn, long ts)
           Get the names of all of the triggers that have misfired.
 Key[] selectMisfiredTriggersInGroupInState(Connection conn, String groupName, String state, long ts)
           Get the names of all of the triggers in the given group and state that have misfired.
 Key[] selectMisfiredTriggersInState(Connection conn, String state, long ts)
           Get the names of all of the triggers in the given state that have misfired - according to the given timestamp.
 boolean selectMisfiredTriggersInStates(Connection conn, String state1, String state2, long ts, int count, List resultList)
           Get the names of all of the triggers in the given states that have misfired - according to the given timestamp.
 long selectNextFireTime(Connection conn)
          Deprecated. Does not account for misfires.
 int selectNumCalendars(Connection conn)
           Select the total number of calendars stored.
 int selectNumJobs(Connection conn)
           Select the total number of jobs stored.
 int selectNumTriggers(Connection conn)
           Select the total number of triggers stored.
 int selectNumTriggersForJob(Connection conn, String jobName, String groupName)
           Select the number of triggers associated with a given job.
 Set selectPausedTriggerGroups(Connection conn)
           
 List selectSchedulerStateRecords(Connection conn, String instanceId)
           A List of all current SchedulerStateRecords.
 List selectStatefulJobsOfTriggerGroup(Connection conn, String groupName)
           Select the stateful jobs which are referenced by triggers in the given trigger group.
 Trigger selectTrigger(Connection conn, String triggerName, String groupName)
           Select a trigger.
 Key selectTriggerForFireTime(Connection conn, long fireTime)
           Select the trigger that will be fired at the given fire time.
 String[] selectTriggerGroups(Connection conn)
           Select all of the trigger group names that are stored.
 JobDataMap selectTriggerJobDataMap(Connection conn, String triggerName, String groupName)
           Select a trigger's JobDataMap.
 String[] selectTriggerListeners(Connection conn, String triggerName, String groupName)
           Select the listeners associated with a given trigger.
 Key[] selectTriggerNamesForJob(Connection conn, String jobName, String groupName)
           Get the names of all of the triggers associated with the given job.
 Trigger[] selectTriggersForCalendar(Connection conn, String calName)
           Select the triggers for a calendar
 Trigger[] selectTriggersForJob(Connection conn, String jobName, String groupName)
           Select the triggers for a job
 Trigger[] selectTriggersForRecoveringJobs(Connection conn)
           Select all of the triggers for jobs that are requesting recovery.
 String[] selectTriggersInGroup(Connection conn, String groupName)
           Select all of the triggers contained in a given group.
 Key[] selectTriggersInState(Connection conn, String state)
           Select all of the triggers in a given state.
 String selectTriggerState(Connection conn, String triggerName, String groupName)
           Select a trigger' state value.
 TriggerStatus selectTriggerStatus(Connection conn, String triggerName, String groupName)
           Select a trigger' status (state & next fire time).
 List selectTriggerToAcquire(Connection conn, long noLaterThan, long noEarlierThan)
           Select the next trigger which will fire to fire between the two given timestamps in ascending order of fire time, and then descending by priority.
 Key[] selectVolatileJobs(Connection conn)
           Get the names of all of the jobs that are volatile.
 Key[] selectVolatileTriggers(Connection conn)
           Get the names of all of the triggers that are volatile.
protected  ByteArrayOutputStream serializeJobData(JobDataMap data)
           Remove the transient data from and then create a serialized java.util.ByteArrayOutputStream version of a JobDataMap.
protected  ByteArrayOutputStream serializeObject(Object obj)
           Create a serialized java.util.ByteArrayOutputStream version of an Object.
protected  void setBoolean(PreparedStatement ps, int index, boolean val)
          Sets the designated parameter to the given Java boolean value.
protected  void setBytes(PreparedStatement ps, int index, ByteArrayOutputStream baos)
          Sets the designated parameter to the byte array of the given ByteArrayOutputStream.
 boolean triggerExists(Connection conn, String triggerName, String groupName)
           Check whether or not a trigger exists.
 int updateBlobTrigger(Connection conn, Trigger trigger)
           Update the blob trigger data.
 int updateCalendar(Connection conn, String calendarName, Calendar calendar)
           Update a calendar.
 int updateCronTrigger(Connection conn, CronTrigger trigger)
           Update the cron trigger data.
 int updateJobData(Connection conn, JobDetail job)
           Update the job data map for the given job.
 int updateJobDetail(Connection conn, JobDetail job)
           Update the job detail record.
 int updateSchedulerState(Connection conn, String instanceId, long checkInTime)
           Update a scheduler-instance state record.
 int updateSimpleTrigger(Connection conn, SimpleTrigger trigger)
           Update the simple trigger data.
 int updateTrigger(Connection conn, Trigger trigger, String state, JobDetail jobDetail)
           Update the base trigger data.
 int updateTriggerGroupStateFromOtherState(Connection conn, String groupName, String newState, String oldState)
           Update all of the triggers of the given group to the given new state, if they are in the given old state.
 int updateTriggerGroupStateFromOtherStates(Connection conn, String groupName, String newState, String oldState1, String oldState2, String oldState3)
           Update all triggers in the given group to the given new state, if they are in one of the given old states.
 int updateTriggerState(Connection conn, String triggerName, String groupName, String state)
           Update the state for a given trigger.
 int updateTriggerStateFromOtherState(Connection conn, String triggerName, String groupName, String newState, String oldState)
           Update the given trigger to the given new state, if it is in the given old state.
 int updateTriggerStateFromOtherStates(Connection conn, String triggerName, String groupName, String newState, String oldState1, String oldState2, String oldState3)
           Update the given trigger to the given new state, if it is one of the given old states.
 int updateTriggerStateFromOtherStatesBeforeTime(Connection conn, String newState, String oldState1, String oldState2, long time)
           Update the all triggers to the given new state, if they are in one of the given old states AND its next fire time is before the given time.
 int updateTriggerStatesForJob(Connection conn, String jobName, String groupName, String state)
           Update the states of all triggers associated with the given job.
 int updateTriggerStatesForJobFromOtherState(Connection conn, String jobName, String groupName, String state, String oldState)
           Update the states of any triggers associated with the given job, that are the given current state.
 int updateTriggerStatesFromOtherStates(Connection conn, String newState, String oldState1, String oldState2)
           Insert the job detail record.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

logger

protected org.slf4j.Logger logger

tablePrefix

protected String tablePrefix

instanceId

protected String instanceId

useProperties

protected boolean useProperties
Constructor Detail

StdJDBCDelegate

public StdJDBCDelegate(org.slf4j.Logger logger,
                       String tablePrefix,
                       String instanceId)

Create new StdJDBCDelegate instance.

Parameters:
logger - the logger to use during execution
tablePrefix - the prefix of all table names

StdJDBCDelegate

public StdJDBCDelegate(org.slf4j.Logger logger,
                       String tablePrefix,
                       String instanceId,
                       Boolean useProperties)

Create new StdJDBCDelegate instance.

Parameters:
logger - the logger to use during execution
tablePrefix - the prefix of all table names
Method Detail

canUseProperties

protected boolean canUseProperties()

updateTriggerStatesFromOtherStates

public int updateTriggerStatesFromOtherStates(Connection conn,
                                              String newState,
                                              String oldState1,
                                              String oldState2)
                                       throws SQLException

Insert the job detail record.

Specified by:
updateTriggerStatesFromOtherStates in interface DriverDelegate
Parameters:
conn - the DB Connection
newState - the new state for the triggers
oldState1 - the first old state to update
oldState2 - the second old state to update
Returns:
number of rows updated
Throws:
SQLException

selectMisfiredTriggers

public Key[] selectMisfiredTriggers(Connection conn,
                                    long ts)
                             throws SQLException

Get the names of all of the triggers that have misfired.

Specified by:
selectMisfiredTriggers in interface DriverDelegate
Parameters:
conn - the DB Connection
Returns:
an array of Key objects
Throws:
SQLException

selectTriggersInState

public Key[] selectTriggersInState(Connection conn,
                                   String state)
                            throws SQLException

Select all of the triggers in a given state.

Specified by:
selectTriggersInState in interface DriverDelegate
Parameters:
conn - the DB Connection
state - the state the triggers must be in
Returns:
an array of trigger Key s
Throws:
SQLException

selectMisfiredTriggersInState

public Key[] selectMisfiredTriggersInState(Connection conn,
                                           String state,
                                           long ts)
                                    throws SQLException
Description copied from interface: DriverDelegate

Get the names of all of the triggers in the given state that have misfired - according to the given timestamp.

Specified by:
selectMisfiredTriggersInState in interface DriverDelegate
Parameters:
conn - the DB Connection
Returns:
an array of Key objects
Throws:
SQLException

selectMisfiredTriggersInStates

public boolean selectMisfiredTriggersInStates(Connection conn,
                                              String state1,
                                              String state2,
                                              long ts,
                                              int count,
                                              List resultList)
                                       throws SQLException

Get the names of all of the triggers in the given states that have misfired - according to the given timestamp. No more than count will be returned.

Specified by:
selectMisfiredTriggersInStates in interface DriverDelegate
Parameters:
conn - The DB Connection
count - The most misfired triggers to return, negative for all
resultList - Output parameter. A List of Key objects. Must not be null.
Returns:
Whether there are more misfired triggers left to find beyond the given count.
Throws:
SQLException

countMisfiredTriggersInStates

public int countMisfiredTriggersInStates(Connection conn,
                                         String state1,
                                         String state2,
                                         long ts)
                                  throws SQLException

Get the number of triggers in the given states that have misfired - according to the given timestamp.

Specified by:
countMisfiredTriggersInStates in interface DriverDelegate
Parameters:
conn - the DB Connection
Throws:
SQLException

selectMisfiredTriggersInGroupInState

public Key[] selectMisfiredTriggersInGroupInState(Connection conn,
                                                  String groupName,
                                                  String state,
                                                  long ts)
                                           throws SQLException

Get the names of all of the triggers in the given group and state that have misfired.

Specified by:
selectMisfiredTriggersInGroupInState in interface DriverDelegate
Parameters:
conn - the DB Connection
Returns:
an array of Key objects
Throws:
SQLException

selectTriggersForRecoveringJobs

public Trigger[] selectTriggersForRecoveringJobs(Connection conn)
                                          throws SQLException,
                                                 IOException,
                                                 ClassNotFoundException

Select all of the triggers for jobs that are requesting recovery. The returned trigger objects will have unique "recoverXXX" trigger names and will be in the Scheduler.DEFAULT_RECOVERY_GROUP trigger group.

In order to preserve the ordering of the triggers, the fire time will be set from the COL_FIRED_TIME column in the TABLE_FIRED_TRIGGERS table. The caller is responsible for calling computeFirstFireTime on each returned trigger. It is also up to the caller to insert the returned triggers to ensure that they are fired.

Specified by:
selectTriggersForRecoveringJobs in interface DriverDelegate
Parameters:
conn - the DB Connection
Returns:
an array of Trigger objects
Throws:
SQLException
IOException
ClassNotFoundException

deleteFiredTriggers

public int deleteFiredTriggers(Connection conn)
                        throws SQLException

Delete all fired triggers.

Specified by:
deleteFiredTriggers in interface DriverDelegate
Parameters:
conn - the DB Connection
Returns:
the number of rows deleted
Throws:
SQLException

deleteFiredTriggers

public int deleteFiredTriggers(Connection conn,
                               String instanceId)
                        throws SQLException
Description copied from interface: DriverDelegate

Delete all fired triggers of the given instance.

Specified by:
deleteFiredTriggers in interface DriverDelegate
Parameters:
conn - the DB Connection
Returns:
the number of rows deleted
Throws:
SQLException

insertJobDetail

public int insertJobDetail(Connection conn,
                           JobDetail job)
                    throws IOException,
                           SQLException

Insert the job detail record.

Specified by:
insertJobDetail in interface DriverDelegate
Parameters:
conn - the DB Connection
job - the job to insert
Returns:
number of rows inserted
Throws:
IOException - if there were problems serializing the JobDataMap
SQLException

updateJobDetail

public int updateJobDetail(Connection conn,
                           JobDetail job)
                    throws IOException,
                           SQLException

Update the job detail record.

Specified by:
updateJobDetail in interface DriverDelegate
Parameters:
conn - the DB Connection
job - the job to update
Returns:
number of rows updated
Throws:
IOException - if there were problems serializing the JobDataMap
SQLException

selectTriggerNamesForJob

public Key[] selectTriggerNamesForJob(Connection conn,
                                      String jobName,
                                      String groupName)
                               throws SQLException

Get the names of all of the triggers associated with the given job.

Specified by:
selectTriggerNamesForJob in interface DriverDelegate
Parameters:
conn - the DB Connection
jobName - the name of the job
groupName - the group containing the job
Returns:
an array of Key objects
Throws:
SQLException

deleteJobListeners

public int deleteJobListeners(Connection conn,
                              String jobName,
                              String groupName)
                       throws SQLException

Delete all job listeners for the given job.

Specified by:
deleteJobListeners in interface DriverDelegate
Parameters:
conn - the DB Connection
jobName - the name of the job
groupName - the group containing the job
Returns:
the number of rows deleted
Throws:
SQLException

deleteJobDetail

public int deleteJobDetail(Connection conn,
                           String jobName,
                           String groupName)
                    throws SQLException

Delete the job detail record for the given job.

Specified by:
deleteJobDetail in interface DriverDelegate
Parameters:
conn - the DB Connection
jobName - the name of the job
groupName - the group containing the job
Returns:
the number of rows deleted
Throws:
SQLException

isJobStateful

public boolean isJobStateful(Connection conn,
                             String jobName,
                             String groupName)
                      throws SQLException

Check whether or not the given job is stateful.

Specified by:
isJobStateful in interface DriverDelegate
Parameters:
conn - the DB Connection
jobName - the name of the job
groupName - the group containing the job
Returns:
true if the job exists and is stateful, false otherwise
Throws:
SQLException

jobExists

public boolean jobExists(Connection conn,
                         String jobName,
                         String groupName)
                  throws SQLException

Check whether or not the given job exists.

Specified by:
jobExists in interface DriverDelegate
Parameters:
conn - the DB Connection
jobName - the name of the job
groupName - the group containing the job
Returns:
true if the job exists, false otherwise
Throws:
SQLException

updateJobData

public int updateJobData(Connection conn,
                         JobDetail job)
                  throws IOException,
                         SQLException

Update the job data map for the given job.

Specified by:
updateJobData in interface DriverDelegate
Parameters:
conn - the DB Connection
job - the job to update
Returns:
the number of rows updated
Throws:
IOException - if there were problems serializing the JobDataMap
SQLException

insertJobListener

public int insertJobListener(Connection conn,
                             JobDetail job,
                             String listener)
                      throws SQLException

Associate a listener with a job.

Specified by:
insertJobListener in interface DriverDelegate
Parameters:
conn - the DB Connection
job - the job to associate with the listener
listener - the listener to insert
Returns:
the number of rows inserted
Throws:
SQLException

selectJobListeners

public String[] selectJobListeners(Connection conn,
                                   String jobName,
                                   String groupName)
                            throws SQLException

Get all of the listeners for a given job.

Specified by:
selectJobListeners in interface DriverDelegate
Parameters:
conn - the DB Connection
jobName - the job name whose listeners are wanted
groupName - the group containing the job
Returns:
array of String listener names
Throws:
SQLException

selectJobDetail

public JobDetail selectJobDetail(Connection conn,
                                 String jobName,
                                 String groupName,
                                 ClassLoadHelper loadHelper)
                          throws ClassNotFoundException,
                                 IOException,
                                 SQLException

Select the JobDetail object for a given job name / group name.

Specified by:
selectJobDetail in interface DriverDelegate
Parameters:
conn - the DB Connection
jobName - the job name whose listeners are wanted
groupName - the group containing the job
Returns:
the populated JobDetail object
Throws:
ClassNotFoundException - if a class found during deserialization cannot be found or if the job class could not be found
IOException - if deserialization causes an error
SQLException

selectNumJobs

public int selectNumJobs(Connection conn)
                  throws SQLException

Select the total number of jobs stored.

Specified by:
selectNumJobs in interface DriverDelegate
Parameters:
conn - the DB Connection
Returns:
the total number of jobs stored
Throws:
SQLException

selectJobGroups

public String[] selectJobGroups(Connection conn)
                         throws SQLException

Select all of the job group names that are stored.

Specified by:
selectJobGroups in interface DriverDelegate
Parameters:
conn - the DB Connection
Returns:
an array of String group names
Throws:
SQLException

selectJobsInGroup

public String[] selectJobsInGroup(Connection conn,
                                  String groupName)
                           throws SQLException

Select all of the jobs contained in a given group.

Specified by:
selectJobsInGroup in interface DriverDelegate
Parameters:
conn - the DB Connection
groupName - the group containing the jobs
Returns:
an array of String job names
Throws:
SQLException

insertTrigger

public int insertTrigger(Connection conn,
                         Trigger trigger,
                         String state,
                         JobDetail jobDetail)
                  throws SQLException,
                         IOException

Insert the base trigger data.

Specified by:
insertTrigger in interface DriverDelegate
Parameters:
conn - the DB Connection
trigger - the trigger to insert
state - the state that the trigger should be stored in
Returns:
the number of rows inserted
Throws:
SQLException
IOException

insertSimpleTrigger

public int insertSimpleTrigger(Connection conn,
                               SimpleTrigger trigger)
                        throws SQLException

Insert the simple trigger data.

Specified by:
insertSimpleTrigger in interface DriverDelegate
Parameters:
conn - the DB Connection
trigger - the trigger to insert
Returns:
the number of rows inserted
Throws:
SQLException

insertCronTrigger

public int insertCronTrigger(Connection conn,
                             CronTrigger trigger)
                      throws SQLException

Insert the cron trigger data.

Specified by:
insertCronTrigger in interface DriverDelegate
Parameters:
conn - the DB Connection
trigger - the trigger to insert
Returns:
the number of rows inserted
Throws:
SQLException

insertBlobTrigger

public int insertBlobTrigger(Connection conn,
                             Trigger trigger)
                      throws SQLException,
                             IOException

Insert the blob trigger data.

Specified by:
insertBlobTrigger in interface DriverDelegate
Parameters:
conn - the DB Connection
trigger - the trigger to insert
Returns:
the number of rows inserted
Throws:
SQLException
IOException

updateTrigger

public int updateTrigger(Connection conn,
                         Trigger trigger,
                         String state,
                         JobDetail jobDetail)
                  throws SQLException,
                         IOException

Update the base trigger data.

Specified by:
updateTrigger in interface DriverDelegate
Parameters:
conn - the DB Connection
trigger - the trigger to insert
state - the state that the trigger should be stored in
Returns:
the number of rows updated
Throws:
SQLException
IOException

updateSimpleTrigger

public int updateSimpleTrigger(Connection conn,
                               SimpleTrigger trigger)
                        throws SQLException

Update the simple trigger data.

Specified by:
updateSimpleTrigger in interface DriverDelegate
Parameters:
conn - the DB Connection
trigger - the trigger to insert
Returns:
the number of rows updated
Throws:
SQLException

updateCronTrigger

public int updateCronTrigger(Connection conn,
                             CronTrigger trigger)
                      throws SQLException

Update the cron trigger data.

Specified by:
updateCronTrigger in interface DriverDelegate
Parameters:
conn - the DB Connection
trigger - the trigger to insert
Returns:
the number of rows updated
Throws:
SQLException

updateBlobTrigger

public int updateBlobTrigger(Connection conn,
                             Trigger trigger)
                      throws SQLException,
                             IOException

Update the blob trigger data.

Specified by:
updateBlobTrigger in interface DriverDelegate
Parameters:
conn - the DB Connection
trigger - the trigger to insert
Returns:
the number of rows updated
Throws:
SQLException
IOException

triggerExists

public boolean triggerExists(Connection conn,
                             String triggerName,
                             String groupName)
                      throws SQLException

Check whether or not a trigger exists.

Specified by:
triggerExists in interface DriverDelegate
Parameters:
conn - the DB Connection
triggerName - the name of the trigger
groupName - the group containing the trigger
Returns:
true if the trigger exists, false otherwise
Throws:
SQLException

updateTriggerState

public int updateTriggerState(Connection conn,
                              String triggerName,
                              String groupName,
                              String state)
                       throws SQLException

Update the state for a given trigger.

Specified by:
updateTriggerState in interface DriverDelegate
Parameters:
conn - the DB Connection
triggerName - the name of the trigger
groupName - the group containing the trigger
state - the new state for the trigger
Returns:
the number of rows updated
Throws:
SQLException

updateTriggerStateFromOtherStates

public int updateTriggerStateFromOtherStates(Connection conn,
                                             String triggerName,
                                             String groupName,
                                             String newState,
                                             String oldState1,
                                             String oldState2,
                                             String oldState3)
                                      throws SQLException

Update the given trigger to the given new state, if it is one of the given old states.

Specified by:
updateTriggerStateFromOtherStates in interface DriverDelegate
Parameters:
conn - the DB connection
triggerName - the name of the trigger
groupName - the group containing the trigger
newState - the new state for the trigger
oldState1 - one of the old state the trigger must be in
oldState2 - one of the old state the trigger must be in
oldState3 - one of the old state the trigger must be in
Returns:
int the number of rows updated
Throws:
SQLException

updateTriggerStateFromOtherStatesBeforeTime

public int updateTriggerStateFromOtherStatesBeforeTime(Connection conn,
                                                       String newState,
                                                       String oldState1,
                                                       String oldState2,
                                                       long time)
                                                throws SQLException
Description copied from interface: DriverDelegate

Update the all triggers to the given new state, if they are in one of the given old states AND its next fire time is before the given time.

Specified by:
updateTriggerStateFromOtherStatesBeforeTime in interface DriverDelegate
Parameters:
conn - the DB connection
newState - the new state for the trigger
oldState1 - one of the old state the trigger must be in
oldState2 - one of the old state the trigger must be in
time - the time before which the trigger's next fire time must be
Returns:
int the number of rows updated
Throws:
SQLException

updateTriggerGroupStateFromOtherStates

public int updateTriggerGroupStateFromOtherStates(Connection conn,
                                                  String groupName,
                                                  String newState,
                                                  String oldState1,
                                                  String oldState2,
                                                  String oldState3)
                                           throws SQLException

Update all triggers in the given group to the given new state, if they are in one of the given old states.

Specified by:
updateTriggerGroupStateFromOtherStates in interface DriverDelegate
Parameters:
conn - the DB connection
groupName - the group containing the trigger
newState - the new state for the trigger
oldState1 - one of the old state the trigger must be in
oldState2 - one of the old state the trigger must be in
oldState3 - one of the old state the trigger must be in
Returns:
int the number of rows updated
Throws:
SQLException

updateTriggerStateFromOtherState

public int updateTriggerStateFromOtherState(Connection conn,
                                            String triggerName,
                                            String groupName,
                                            String newState,
                                            String oldState)
                                     throws SQLException

Update the given trigger to the given new state, if it is in the given old state.

Specified by:
updateTriggerStateFromOtherState in interface DriverDelegate
Parameters:
conn - the DB connection
triggerName - the name of the trigger
groupName - the group containing the trigger
newState - the new state for the trigger
oldState - the old state the trigger must be in
Returns:
int the number of rows updated
Throws:
SQLException

updateTriggerGroupStateFromOtherState

public int updateTriggerGroupStateFromOtherState(Connection conn,
                                                 String groupName,
                                                 String newState,
                                                 String oldState)
                                          throws SQLException

Update all of the triggers of the given group to the given new state, if they are in the given old state.

Specified by:
updateTriggerGroupStateFromOtherState in interface DriverDelegate
Parameters:
conn - the DB connection
groupName - the group containing the triggers
newState - the new state for the trigger group
oldState - the old state the triggers must be in
Returns:
int the number of rows updated
Throws:
SQLException

updateTriggerStatesForJob

public int updateTriggerStatesForJob(Connection conn,
                                     String jobName,
                                     String groupName,
                                     String state)
                              throws SQLException

Update the states of all triggers associated with the given job.

Specified by:
updateTriggerStatesForJob in interface DriverDelegate
Parameters:
conn - the DB Connection
jobName - the name of the job
groupName - the group containing the job
state - the new state for the triggers
Returns:
the number of rows updated
Throws:
SQLException

updateTriggerStatesForJobFromOtherState

public int updateTriggerStatesForJobFromOtherState(Connection conn,
                                                   String jobName,
                                                   String groupName,
                                                   String state,
                                                   String oldState)
                                            throws SQLException
Description copied from interface: DriverDelegate

Update the states of any triggers associated with the given job, that are the given current state.

Specified by:
updateTriggerStatesForJobFromOtherState in interface DriverDelegate
Parameters:
conn - the DB Connection
jobName - the name of the job
groupName - the group containing the job
state - the new state for the triggers
oldState - the old state of the triggers
Returns:
the number of rows updated
Throws:
SQLException

deleteTriggerListeners

public int deleteTriggerListeners(Connection conn,
                                  String triggerName,
                                  String groupName)
                           throws SQLException

Delete all of the listeners associated with a given trigger.

Specified by:
deleteTriggerListeners in interface DriverDelegate
Parameters:
conn - the DB Connection
triggerName - the name of the trigger whose listeners will be deleted
groupName - the name of the group containing the trigger
Returns:
the number of rows deleted
Throws:
SQLException

insertTriggerListener

public int insertTriggerListener(Connection conn,
                                 Trigger trigger,
                                 String listener)
                          throws SQLException

Associate a listener with the given trigger.

Specified by:
insertTriggerListener in interface DriverDelegate
Parameters:
conn - the DB Connection
trigger - the trigger
listener - the name of the listener to associate with the trigger
Returns:
the number of rows inserted
Throws:
SQLException

selectTriggerListeners

public String[] selectTriggerListeners(Connection conn,
                                       String triggerName,
                                       String groupName)
                                throws SQLException

Select the listeners associated with a given trigger.

Specified by:
selectTriggerListeners in interface DriverDelegate
Parameters:
conn - the DB Connection
triggerName - the name of the trigger
groupName - the group containing the trigger
Returns:
array of String trigger listener names
Throws:
SQLException

deleteSimpleTrigger

public int deleteSimpleTrigger(Connection conn,
                               String triggerName,
                               String groupName)
                        throws SQLException

Delete the simple trigger data for a trigger.

Specified by:
deleteSimpleTrigger in interface DriverDelegate
Parameters:
conn - the DB Connection
triggerName - the name of the trigger
groupName - the group containing the trigger
Returns:
the number of rows deleted
Throws:
SQLException

deleteCronTrigger

public int deleteCronTrigger(Connection conn,
                             String triggerName,
                             String groupName)
                      throws SQLException

Delete the cron trigger data for a trigger.

Specified by:
deleteCronTrigger in interface DriverDelegate
Parameters:
conn - the DB Connection
triggerName - the name of the trigger
groupName - the group containing the trigger
Returns:
the number of rows deleted
Throws:
SQLException

deleteBlobTrigger

public int deleteBlobTrigger(Connection conn,
                             String triggerName,
                             String groupName)
                      throws SQLException

Delete the cron trigger data for a trigger.

Specified by:
deleteBlobTrigger in interface DriverDelegate
Parameters:
conn - the DB Connection
triggerName - the name of the trigger
groupName - the group containing the trigger
Returns:
the number of rows deleted
Throws:
SQLException

deleteTrigger

public int deleteTrigger(Connection conn,
                         String triggerName,
                         String groupName)
                  throws SQLException

Delete the base trigger data for a trigger.

Specified by:
deleteTrigger in interface DriverDelegate
Parameters:
conn - the DB Connection
triggerName - the name of the trigger
groupName - the group containing the trigger
Returns:
the number of rows deleted
Throws:
SQLException

selectNumTriggersForJob

public int selectNumTriggersForJob(Connection conn,
                                   String jobName,
                                   String groupName)
                            throws SQLException

Select the number of triggers associated with a given job.

Specified by:
selectNumTriggersForJob in interface DriverDelegate
Parameters:
conn - the DB Connection
jobName - the name of the job
groupName - the group containing the job
Returns:
the number of triggers for the given job
Throws:
SQLException

selectJobForTrigger

public JobDetail selectJobForTrigger(Connection conn,
                                     String triggerName,
                                     String groupName,
                                     ClassLoadHelper loadHelper)
                              throws ClassNotFoundException,
                                     SQLException

Select the job to which the trigger is associated.

Specified by:
selectJobForTrigger in interface DriverDelegate
Parameters:
conn - the DB Connection
triggerName - the name of the trigger
groupName - the group containing the trigger
Returns:
the JobDetail object associated with the given trigger
Throws:
SQLException
ClassNotFoundException

selectTriggersForJob

public Trigger[] selectTriggersForJob(Connection conn,
                                      String jobName,
                                      String groupName)
                               throws SQLException,
                                      ClassNotFoundException,
                                      IOException

Select the triggers for a job

Specified by:
selectTriggersForJob in interface DriverDelegate
Parameters:
conn - the DB Connection
jobName - the name of the trigger
groupName - the group containing the trigger
Returns:
an array of (@link org.quartz.Trigger) objects associated with a given job.
Throws:
SQLException
ClassNotFoundException
IOException

selectTriggersForCalendar

public Trigger[] selectTriggersForCalendar(Connection conn,
                                           String calName)
                                    throws SQLException,
                                           ClassNotFoundException,
                                           IOException
Description copied from interface: DriverDelegate

Select the triggers for a calendar

Specified by:
selectTriggersForCalendar in interface DriverDelegate
Parameters:
conn - the DB Connection
calName - the name of the calendar
Returns:
an array of (@link org.quartz.Trigger) objects associated with the given calendar.
Throws:
SQLException
ClassNotFoundException
IOException

selectStatefulJobsOfTriggerGroup

public List selectStatefulJobsOfTriggerGroup(Connection conn,
                                             String groupName)
                                      throws SQLException
Description copied from interface: DriverDelegate

Select the stateful jobs which are referenced by triggers in the given trigger group.

Specified by:
selectStatefulJobsOfTriggerGroup in interface DriverDelegate
Parameters:
conn - the DB Connection
groupName - the trigger group
Returns:
a List of Keys to jobs.
Throws:
SQLException

selectTrigger

public Trigger selectTrigger(Connection conn,
                             String triggerName,
                             String groupName)
                      throws SQLException,
                             ClassNotFoundException,
                             IOException

Select a trigger.

Specified by:
selectTrigger in interface DriverDelegate
Parameters:
conn - the DB Connection
triggerName - the name of the trigger
groupName - the group containing the trigger
Returns:
the Trigger object
Throws:
SQLException
ClassNotFoundException
IOException

selectTriggerJobDataMap

public JobDataMap selectTriggerJobDataMap(Connection conn,
                                          String triggerName,
                                          String groupName)
                                   throws SQLException,
                                          ClassNotFoundException,
                                          IOException

Select a trigger's JobDataMap.

Specified by:
selectTriggerJobDataMap in interface DriverDelegate
Parameters:
conn - the DB Connection
triggerName - the name of the trigger
groupName - the group containing the trigger
Returns:
the JobDataMap of the Trigger, never null, but possibly empty.
Throws:
SQLException
ClassNotFoundException
IOException

selectTriggerState

public String selectTriggerState(Connection conn,
                                 String triggerName,
                                 String groupName)
                          throws SQLException

Select a trigger' state value.

Specified by:
selectTriggerState in interface DriverDelegate
Parameters:
conn - the DB Connection
triggerName - the name of the trigger
groupName - the group containing the trigger
Returns:
the Trigger object
Throws:
SQLException

selectTriggerStatus

public TriggerStatus selectTriggerStatus(Connection conn,
                                         String triggerName,
                                         String groupName)
                                  throws SQLException

Select a trigger' status (state & next fire time).

Specified by:
selectTriggerStatus in interface DriverDelegate
Parameters:
conn - the DB Connection
triggerName - the name of the trigger
groupName - the group containing the trigger
Returns:
a TriggerStatus object, or null
Throws:
SQLException

selectNumTriggers

public int selectNumTriggers(Connection conn)
                      throws SQLException

Select the total number of triggers stored.

Specified by:
selectNumTriggers in interface DriverDelegate
Parameters:
conn - the DB Connection
Returns:
the total number of triggers stored
Throws:
SQLException

selectTriggerGroups

public String[] selectTriggerGroups(Connection conn)
                             throws SQLException

Select all of the trigger group names that are stored.

Specified by:
selectTriggerGroups in interface DriverDelegate
Parameters:
conn - the DB Connection
Returns:
an array of String group names
Throws:
SQLException

selectTriggersInGroup

public String[] selectTriggersInGroup(Connection conn,
                                      String groupName)
                               throws SQLException

Select all of the triggers contained in a given group.

Specified by:
selectTriggersInGroup in interface DriverDelegate
Parameters:
conn - the DB Connection
groupName - the group containing the triggers
Returns:
an array of String trigger names
Throws:
SQLException

insertPausedTriggerGroup

public int insertPausedTriggerGroup(Connection conn,
                                    String groupName)
                             throws SQLException
Specified by:
insertPausedTriggerGroup in interface DriverDelegate
Throws:
SQLException

deletePausedTriggerGroup

public int deletePausedTriggerGroup(Connection conn,
                                    String groupName)
                             throws SQLException
Specified by:
deletePausedTriggerGroup in interface DriverDelegate
Throws:
SQLException

deleteAllPausedTriggerGroups

public int deleteAllPausedTriggerGroups(Connection conn)
                                 throws SQLException
Specified by:
deleteAllPausedTriggerGroups in interface DriverDelegate
Throws:
SQLException

isTriggerGroupPaused

public boolean isTriggerGroupPaused(Connection conn,
                                    String groupName)
                             throws SQLException
Specified by:
isTriggerGroupPaused in interface DriverDelegate
Throws:
SQLException

isExistingTriggerGroup

public boolean isExistingTriggerGroup(Connection conn,
                                      String groupName)
                               throws SQLException
Specified by:
isExistingTriggerGroup in interface DriverDelegate
Throws:
SQLException

insertCalendar

public int insertCalendar(Connection conn,
                          String calendarName,
                          Calendar calendar)
                   throws IOException,
                          SQLException

Insert a new calendar.

Specified by:
insertCalendar in interface DriverDelegate
Parameters:
conn - the DB Connection
calendarName - the name for the new calendar
calendar - the calendar
Returns:
the number of rows inserted
Throws:
IOException - if there were problems serializing the calendar
SQLException

updateCalendar

public int updateCalendar(Connection conn,
                          String calendarName,
                          Calendar calendar)
                   throws IOException,
                          SQLException

Update a calendar.

Specified by:
updateCalendar in interface DriverDelegate
Parameters:
conn - the DB Connection
calendarName - the name for the new calendar
calendar - the calendar
Returns:
the number of rows updated
Throws:
IOException - if there were problems serializing the calendar
SQLException

calendarExists

public boolean calendarExists(Connection conn,
                              String calendarName)
                       throws SQLException

Check whether or not a calendar exists.

Specified by:
calendarExists in interface DriverDelegate
Parameters:
conn - the DB Connection
calendarName - the name of the calendar
Returns:
true if the trigger exists, false otherwise
Throws:
SQLException

selectCalendar

public Calendar selectCalendar(Connection conn,
                               String calendarName)
                        throws ClassNotFoundException,
                               IOException,
                               SQLException

Select a calendar.

Specified by:
selectCalendar in interface DriverDelegate
Parameters:
conn - the DB Connection
calendarName - the name of the calendar
Returns:
the Calendar
Throws:
ClassNotFoundException - if a class found during deserialization cannot be found be found
IOException - if there were problems deserializing the calendar
SQLException

calendarIsReferenced

public boolean calendarIsReferenced(Connection conn,
                                    String calendarName)
                             throws SQLException

Check whether or not a calendar is referenced by any triggers.

Specified by:
calendarIsReferenced in interface DriverDelegate
Parameters:
conn - the DB Connection
calendarName - the name of the calendar
Returns:
true if any triggers reference the calendar, false otherwise
Throws:
SQLException

deleteCalendar

public int deleteCalendar(Connection conn,
                          String calendarName)
                   throws SQLException

Delete a calendar.

Specified by:
deleteCalendar in interface DriverDelegate
Parameters:
conn - the DB Connection
calendarName - the name of the trigger
Returns:
the number of rows deleted
Throws:
SQLException

selectNumCalendars

public int selectNumCalendars(Connection conn)
                       throws SQLException

Select the total number of calendars stored.

Specified by:
selectNumCalendars in interface DriverDelegate
Parameters:
conn - the DB Connection
Returns:
the total number of calendars stored
Throws:
SQLException

selectCalendars

public String[] selectCalendars(Connection conn)
                         throws SQLException

Select all of the stored calendars.

Specified by:
selectCalendars in interface DriverDelegate
Parameters:
conn - the DB Connection
Returns:
an array of String calendar names
Throws:
SQLException

selectNextFireTime

public long selectNextFireTime(Connection conn)
                        throws SQLException
Deprecated. Does not account for misfires.

Select the next time that a trigger will be fired.

Specified by:
selectNextFireTime in interface DriverDelegate
Parameters:
conn - the DB Connection
Returns:
the next fire time, or 0 if no trigger will be fired
Throws:
SQLException

selectTriggerForFireTime

public Key selectTriggerForFireTime(Connection conn,
                                    long fireTime)
                             throws SQLException

Select the trigger that will be fired at the given fire time.

Specified by:
selectTriggerForFireTime in interface DriverDelegate
Parameters:
conn - the DB Connection
fireTime - the time that the trigger will be fired
Returns:
a Key representing the trigger that will be fired at the given fire time, or null if no trigger will be fired at that time
Throws:
SQLException

selectTriggerToAcquire

public List selectTriggerToAcquire(Connection conn,
                                   long noLaterThan,
                                   long noEarlierThan)
                            throws SQLException

Select the next trigger which will fire to fire between the two given timestamps in ascending order of fire time, and then descending by priority.

Specified by:
selectTriggerToAcquire in interface DriverDelegate
Parameters:
conn - the DB Connection
noLaterThan - highest value of getNextFireTime() of the triggers (exclusive)
noEarlierThan - highest value of getNextFireTime() of the triggers (inclusive)
Returns:
A (never null, possibly empty) list of the identifiers (Key objects) of the next triggers to be fired.
Throws:
SQLException

insertFiredTrigger

public int insertFiredTrigger(Connection conn,
                              Trigger trigger,
                              String state,
                              JobDetail job)
                       throws SQLException

Insert a fired trigger.

Specified by:
insertFiredTrigger in interface DriverDelegate
Parameters:
conn - the DB Connection
trigger - the trigger
state - the state that the trigger should be stored in
Returns:
the number of rows inserted
Throws:
SQLException

selectFiredTriggerRecords

public List selectFiredTriggerRecords(Connection conn,
                                      String triggerName,
                                      String groupName)
                               throws SQLException

Select the states of all fired-trigger records for a given trigger, or trigger group if trigger name is null.

Specified by:
selectFiredTriggerRecords in interface DriverDelegate
Returns:
a List of FiredTriggerRecord objects.
Throws:
SQLException

selectFiredTriggerRecordsByJob

public List selectFiredTriggerRecordsByJob(Connection conn,
                                           String jobName,
                                           String groupName)
                                    throws SQLException

Select the states of all fired-trigger records for a given job, or job group if job name is null.

Specified by:
selectFiredTriggerRecordsByJob in interface DriverDelegate
Returns:
a List of FiredTriggerRecord objects.
Throws:
SQLException

selectInstancesFiredTriggerRecords

public List selectInstancesFiredTriggerRecords(Connection conn,
                                               String instanceName)
                                        throws SQLException
Description copied from interface: DriverDelegate

Select the states of all fired-trigger records for a given scheduler instance.

Specified by:
selectInstancesFiredTriggerRecords in interface DriverDelegate
Returns:
a List of FiredTriggerRecord objects.
Throws:
SQLException

selectFiredTriggerInstanceNames

public Set selectFiredTriggerInstanceNames(Connection conn)
                                    throws SQLException

Select the distinct instance names of all fired-trigger records.

This is useful when trying to identify orphaned fired triggers (a fired trigger without a scheduler state record.)

Specified by:
selectFiredTriggerInstanceNames in interface DriverDelegate
Returns:
a Set of String objects.
Throws:
SQLException

deleteFiredTrigger

public int deleteFiredTrigger(Connection conn,
                              String entryId)
                       throws SQLException

Delete a fired trigger.

Specified by:
deleteFiredTrigger in interface DriverDelegate
Parameters:
conn - the DB Connection
entryId - the fired trigger entry to delete
Returns:
the number of rows deleted
Throws:
SQLException

selectJobExecutionCount

public int selectJobExecutionCount(Connection conn,
                                   String jobName,
                                   String jobGroup)
                            throws SQLException
Description copied from interface: DriverDelegate

Get the number instances of the identified job currently executing.

Specified by:
selectJobExecutionCount in interface DriverDelegate
Parameters:
conn - the DB Connection
Returns:
the number instances of the identified job currently executing.
Throws:
SQLException

deleteVolatileFiredTriggers

public int deleteVolatileFiredTriggers(Connection conn)
                                throws SQLException
Description copied from interface: DriverDelegate

Delete all volatile fired triggers.

Specified by:
deleteVolatileFiredTriggers in interface DriverDelegate
Parameters:
conn - the DB Connection
Returns:
the number of rows deleted
Throws:
SQLException

insertSchedulerState

public int insertSchedulerState(Connection conn,
                                String instanceId,
                                long checkInTime,
                                long interval)
                         throws SQLException
Description copied from interface: DriverDelegate

Insert a scheduler-instance state record.

Specified by:
insertSchedulerState in interface DriverDelegate
Parameters:
conn - the DB Connection
Returns:
the number of inserted rows.
Throws:
SQLException

deleteSchedulerState

public int deleteSchedulerState(Connection conn,
                                String instanceId)
                         throws SQLException
Description copied from interface: DriverDelegate

Delete a scheduler-instance state record.

Specified by:
deleteSchedulerState in interface DriverDelegate
Parameters:
conn - the DB Connection
Returns:
the number of deleted rows.
Throws:
SQLException

updateSchedulerState

public int updateSchedulerState(Connection conn,
                                String instanceId,
                                long checkInTime)
                         throws SQLException
Description copied from interface: DriverDelegate

Update a scheduler-instance state record.

Specified by:
updateSchedulerState in interface DriverDelegate
Parameters:
conn - the DB Connection
Returns:
the number of updated rows.
Throws:
SQLException

selectSchedulerStateRecords

public List selectSchedulerStateRecords(Connection conn,
                                        String instanceId)
                                 throws SQLException
Description copied from interface: DriverDelegate

A List of all current SchedulerStateRecords.

If instanceId is not null, then only the record for the identified instance will be returned.

Specified by:
selectSchedulerStateRecords in interface DriverDelegate
Parameters:
conn - the DB Connection
Throws:
SQLException

rtp

protected final String rtp(String query)

Replace the table prefix in a query by replacing any occurrences of "{0}" with the table prefix.

Parameters:
query - the unsubstitued query
Returns:
the query, with proper table prefix substituted

serializeObject

protected ByteArrayOutputStream serializeObject(Object obj)
                                         throws IOException

Create a serialized java.util.ByteArrayOutputStream version of an Object.

Parameters:
obj - the object to serialize
Returns:
the serialized ByteArrayOutputStream
Throws:
IOException - if serialization causes an error

serializeJobData

protected ByteArrayOutputStream serializeJobData(JobDataMap data)
                                          throws IOException

Remove the transient data from and then create a serialized java.util.ByteArrayOutputStream version of a JobDataMap.

Parameters:
data - the JobDataMap to serialize
Returns:
the serialized ByteArrayOutputStream
Throws:
IOException - if serialization causes an error

getKeyOfNonSerializableValue

protected Object getKeyOfNonSerializableValue(Map data)
Find the key of the first non-serializable value in the given Map.

Returns:
The key of the first non-serializable value in the given Map or null if all values are serializable.

convertFromProperty

protected Map convertFromProperty(Properties properties)
                           throws IOException
convert the JobDataMap into a list of properties

Throws:
IOException

convertToProperty

protected Properties convertToProperty(Map data)
                                throws IOException
convert the JobDataMap into a list of properties

Throws:
IOException

getObjectFromBlob

protected Object getObjectFromBlob(ResultSet rs,
                                   String colName)
                            throws ClassNotFoundException,
                                   IOException,
                                   SQLException

This method should be overridden by any delegate subclasses that need special handling for BLOBs. The default implementation uses standard JDBC java.sql.Blob operations.

Parameters:
rs - the result set, already queued to the correct row
colName - the column name for the BLOB
Returns:
the deserialized Object from the ResultSet BLOB
Throws:
ClassNotFoundException - if a class found during deserialization cannot be found
IOException - if deserialization causes an error
SQLException

selectVolatileTriggers

public Key[] selectVolatileTriggers(Connection conn)
                             throws SQLException
Description copied from interface: DriverDelegate

Get the names of all of the triggers that are volatile.

Specified by:
selectVolatileTriggers in interface DriverDelegate
Parameters:
conn - the DB Connection
Returns:
an array of Key objects
Throws:
SQLException

selectVolatileJobs

public Key[] selectVolatileJobs(Connection conn)
                         throws SQLException
Description copied from interface: DriverDelegate

Get the names of all of the jobs that are volatile.

Specified by:
selectVolatileJobs in interface DriverDelegate
Parameters:
conn - the DB Connection
Returns:
an array of Key objects
Throws:
SQLException

getJobDetailFromBlob

protected Object getJobDetailFromBlob(ResultSet rs,
                                      String colName)
                               throws ClassNotFoundException,
                                      IOException,
                                      SQLException

This method should be overridden by any delegate subclasses that need special handling for BLOBs for job details. The default implementation uses standard JDBC java.sql.Blob operations.

Parameters:
rs - the result set, already queued to the correct row
colName - the column name for the BLOB
Returns:
the deserialized Object from the ResultSet BLOB
Throws:
ClassNotFoundException - if a class found during deserialization cannot be found
IOException - if deserialization causes an error
SQLException

selectPausedTriggerGroups

public Set selectPausedTriggerGroups(Connection conn)
                              throws SQLException
Specified by:
selectPausedTriggerGroups in interface DriverDelegate
Throws:
SQLException
See Also:
DriverDelegate.selectPausedTriggerGroups(java.sql.Connection)

closeResultSet

protected void closeResultSet(ResultSet rs)
Cleanup helper method that closes the given ResultSet while ignoring any errors.


closeStatement

protected void closeStatement(Statement statement)
Cleanup helper method that closes the given Statement while ignoring any errors.


setBoolean

protected void setBoolean(PreparedStatement ps,
                          int index,
                          boolean val)
                   throws SQLException
Sets the designated parameter to the given Java boolean value. This just wraps PreparedStatement.setBoolean(int, boolean) by default, but it can be overloaded by subclass delegates for databases that don't explicitly support the boolean type.

Throws:
SQLException

getBoolean

protected boolean getBoolean(ResultSet rs,
                             String columnName)
                      throws SQLException
Retrieves the value of the designated column in the current row as a boolean. This just wraps ResultSet.getBoolean(java.lang.String) by default, but it can be overloaded by subclass delegates for databases that don't explicitly support the boolean type.

Throws:
SQLException

getBoolean

protected boolean getBoolean(ResultSet rs,
                             int columnIndex)
                      throws SQLException
Retrieves the value of the designated column index in the current row as a boolean. This just wraps ResultSet.getBoolean(java.lang.String) by default, but it can be overloaded by subclass delegates for databases that don't explicitly support the boolean type.

Throws:
SQLException

setBytes

protected void setBytes(PreparedStatement ps,
                        int index,
                        ByteArrayOutputStream baos)
                 throws SQLException
Sets the designated parameter to the byte array of the given ByteArrayOutputStream. Will set parameter value to null if the ByteArrayOutputStream is null. This just wraps PreparedStatement.setBytes(int, byte[]) by default, but it can be overloaded by subclass delegates for databases that don't explicitly support storing bytes in this way.

Throws:
SQLException


Copyright 2001-2011, Terracotta, Inc.