org.quartz.impl.jdbcjobstore.oracle
Class OracleDelegate

java.lang.Object
  extended by org.quartz.impl.jdbcjobstore.StdJDBCDelegate
      extended by org.quartz.impl.jdbcjobstore.oracle.OracleDelegate
All Implemented Interfaces:
Constants, DriverDelegate, StdJDBCConstants
Direct Known Subclasses:
WebLogicOracleDelegate

public class OracleDelegate
extends StdJDBCDelegate

This is a driver delegate for the Oracle 10 and 11 database.

Author:
James House, Patrick Lightbody, Eric Mueller
See Also:
WebLogicDelegate, WebLogicOracleDelegate

Field Summary
static String INSERT_ORACLE_CALENDAR
           
static String INSERT_ORACLE_JOB_DETAIL
           
static String SELECT_ORACLE_CALENDAR_BLOB
           
static String SELECT_ORACLE_JOB_DETAIL_BLOB
           
static String SELECT_ORACLE_TRIGGER_JOB_DETAIL_BLOB
           
static String UPDATE_ORACLE_CALENDAR_BLOB
           
static String UPDATE_ORACLE_JOB_DETAIL
           
static String UPDATE_ORACLE_JOB_DETAIL_BLOB
           
static String UPDATE_ORACLE_TRIGGER
           
static String UPDATE_ORACLE_TRIGGER_JOB_DETAIL_BLOB
           
static String UPDATE_ORACLE_TRIGGER_JOB_DETAIL_EMPTY_BLOB
           
 
Fields inherited from class org.quartz.impl.jdbcjobstore.StdJDBCDelegate
classLoadHelper, instanceId, logger, schedName, tablePrefix, triggerPersistenceDelegates, useProperties
 
Fields inherited from interface org.quartz.impl.jdbcjobstore.StdJDBCConstants
COUNT_MISFIRED_TRIGGERS_IN_STATE, DELETE_ALL_BLOB_TRIGGERS, DELETE_ALL_CALENDARS, DELETE_ALL_CRON_TRIGGERS, DELETE_ALL_JOB_DETAILS, DELETE_ALL_PAUSED_TRIGGER_GRPS, DELETE_ALL_SIMPLE_TRIGGERS, DELETE_ALL_SIMPROP_TRIGGERS, DELETE_ALL_TRIGGERS, DELETE_BLOB_TRIGGER, DELETE_CALENDAR, DELETE_CRON_TRIGGER, DELETE_FIRED_TRIGGER, DELETE_FIRED_TRIGGERS, DELETE_INSTANCES_FIRED_TRIGGERS, DELETE_JOB_DETAIL, DELETE_NO_RECOVERY_FIRED_TRIGGERS, DELETE_PAUSED_TRIGGER_GROUP, DELETE_PAUSED_TRIGGER_GROUPS, DELETE_SCHEDULER_STATE, DELETE_SIMPLE_TRIGGER, DELETE_TRIGGER, INSERT_BLOB_TRIGGER, INSERT_CALENDAR, INSERT_CRON_TRIGGER, INSERT_FIRED_TRIGGER, INSERT_JOB_DETAIL, INSERT_PAUSED_TRIGGER_GROUP, INSERT_SCHEDULER_STATE, INSERT_SIMPLE_TRIGGER, INSERT_TRIGGER, SCHED_NAME_SUBST, 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_HAS_MISFIRED_TRIGGERS_IN_STATE, 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_NONCONCURRENT, SELECT_JOBS_IN_GROUP, SELECT_MISFIRED_TRIGGERS, SELECT_MISFIRED_TRIGGERS_IN_GROUP_IN_STATE, SELECT_MISFIRED_TRIGGERS_IN_STATE, 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_TRIGGER, SELECT_TRIGGER_DATA, SELECT_TRIGGER_EXISTENCE, SELECT_TRIGGER_FOR_FIRE_TIME, SELECT_TRIGGER_GROUPS, SELECT_TRIGGER_GROUPS_FILTERED, SELECT_TRIGGER_STATE, SELECT_TRIGGER_STATUS, SELECT_TRIGGERS_FOR_CALENDAR, SELECT_TRIGGERS_FOR_JOB, SELECT_TRIGGERS_IN_GROUP, SELECT_TRIGGERS_IN_STATE, TABLE_PREFIX_SUBST, UPDATE_BLOB_TRIGGER, UPDATE_CALENDAR, UPDATE_CRON_TRIGGER, UPDATE_FIRED_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_FROM_STATE, UPDATE_TRIGGER_GROUP_STATE_FROM_STATES, UPDATE_TRIGGER_SKIP_DATA, UPDATE_TRIGGER_STATE, 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_NONCONCURRENT, COL_IS_UPDATE_DATA, COL_IS_VOLATILE, COL_JOB_CLASS, COL_JOB_DATAMAP, COL_JOB_GROUP, 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_SCHEDULER_NAME, COL_START_TIME, COL_TIME_ZONE_ID, COL_TIMES_TRIGGERED, COL_TRIGGER_GROUP, 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_LOCKS, TABLE_PAUSED_TRIGGERS, TABLE_SCHEDULER_STATE, TABLE_SIMPLE_TRIGGERS, TABLE_TRIGGERS, TTYPE_BLOB, TTYPE_CAL_INT, TTYPE_CRON, TTYPE_DAILY_TIME_INT, TTYPE_SIMPLE
 
Constructor Summary
OracleDelegate(org.slf4j.Logger logger, String tablePrefix, String schedName, String instanceId, org.quartz.spi.ClassLoadHelper classLoadHelper)
           Create new OrcaleDelegate instance.
OracleDelegate(org.slf4j.Logger logger, String tablePrefix, String schedName, String instanceId, org.quartz.spi.ClassLoadHelper classLoadHelper, Boolean useProperties)
           Create new OrcaleDelegate instance.
 
Method Summary
protected  Object getJobDataFromBlob(ResultSet rs, String colName)
           This method should be overridden by any delegate subclasses that need special handling for BLOBs for job details.
protected  Object getObjectFromBlob(ResultSet rs, String colName)
           This method should be overridden by any delegate subclasses that need special handling for BLOBs.
 int insertCalendar(Connection conn, String calendarName, Calendar calendar)
           Insert a new calendar.
 int insertJobDetail(Connection conn, JobDetail job)
           Insert the job detail record.
 int insertTrigger(Connection conn, org.quartz.spi.OperableTrigger trigger, String state, JobDetail jobDetail)
           Insert the base trigger data.
 int updateCalendar(Connection conn, String calendarName, Calendar calendar)
           Update a calendar.
 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 updateTrigger(Connection conn, org.quartz.spi.OperableTrigger trigger, String state, JobDetail jobDetail)
           Update the base trigger data.
protected  Blob writeDataToBlob(ResultSet rs, int column, byte[] data)
           
 
Methods inherited from class org.quartz.impl.jdbcjobstore.StdJDBCDelegate
addDefaultTriggerPersistenceDelegates, addTriggerPersistenceDelegate, calendarExists, calendarIsReferenced, canUseProperties, clearData, closeResultSet, closeStatement, convertFromProperty, convertToProperty, countMisfiredTriggersInState, deleteAllPausedTriggerGroups, deleteBlobTrigger, deleteCalendar, deleteFiredTrigger, deleteFiredTriggers, deleteFiredTriggers, deleteJobDetail, deletePausedTriggerGroup, deletePausedTriggerGroup, deleteSchedulerState, deleteTrigger, deleteTriggerExtension, findTriggerPersistenceDelegate, findTriggerPersistenceDelegate, getBoolean, getBoolean, getKeyOfNonSerializableValue, getSchedulerNameLiteral, hasMisfiredTriggersInState, initialize, insertBlobTrigger, insertFiredTrigger, insertPausedTriggerGroup, insertSchedulerState, isExistingTriggerGroup, isJobNonConcurrent, isTriggerGroupPaused, jobExists, rtp, selectCalendar, selectCalendars, selectFiredTriggerInstanceNames, selectFiredTriggerRecords, selectFiredTriggerRecordsByJob, selectInstancesFiredTriggerRecords, selectJobDetail, selectJobExecutionCount, selectJobForTrigger, selectJobGroups, selectJobsInGroup, selectMisfiredTriggers, selectMisfiredTriggersInGroupInState, selectMisfiredTriggersInState, selectNextFireTime, selectNumCalendars, selectNumJobs, selectNumTriggers, selectNumTriggersForJob, selectPausedTriggerGroups, selectSchedulerStateRecords, selectTrigger, selectTriggerForFireTime, selectTriggerGroups, selectTriggerGroups, selectTriggerJobDataMap, selectTriggerKeysForJob, selectTriggersForCalendar, selectTriggersForJob, selectTriggersForRecoveringJobs, selectTriggersInGroup, selectTriggersInState, selectTriggerState, selectTriggerStatus, selectTriggerToAcquire, selectTriggerToAcquire, serializeJobData, serializeObject, setBoolean, setBytes, toSqlLikeClause, triggerExists, updateBlobTrigger, updateFiredTrigger, updateSchedulerState, updateTriggerGroupStateFromOtherState, updateTriggerGroupStateFromOtherStates, updateTriggerState, updateTriggerStateFromOtherState, updateTriggerStateFromOtherStates, updateTriggerStatesForJob, updateTriggerStatesForJobFromOtherState, updateTriggerStatesFromOtherStates
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

INSERT_ORACLE_JOB_DETAIL

public static final String INSERT_ORACLE_JOB_DETAIL
See Also:
Constant Field Values

UPDATE_ORACLE_JOB_DETAIL

public static final String UPDATE_ORACLE_JOB_DETAIL
See Also:
Constant Field Values

UPDATE_ORACLE_JOB_DETAIL_BLOB

public static final String UPDATE_ORACLE_JOB_DETAIL_BLOB
See Also:
Constant Field Values

SELECT_ORACLE_JOB_DETAIL_BLOB

public static final String SELECT_ORACLE_JOB_DETAIL_BLOB
See Also:
Constant Field Values

UPDATE_ORACLE_TRIGGER

public static final String UPDATE_ORACLE_TRIGGER
See Also:
Constant Field Values

SELECT_ORACLE_TRIGGER_JOB_DETAIL_BLOB

public static final String SELECT_ORACLE_TRIGGER_JOB_DETAIL_BLOB
See Also:
Constant Field Values

UPDATE_ORACLE_TRIGGER_JOB_DETAIL_BLOB

public static final String UPDATE_ORACLE_TRIGGER_JOB_DETAIL_BLOB
See Also:
Constant Field Values

UPDATE_ORACLE_TRIGGER_JOB_DETAIL_EMPTY_BLOB

public static final String UPDATE_ORACLE_TRIGGER_JOB_DETAIL_EMPTY_BLOB
See Also:
Constant Field Values

INSERT_ORACLE_CALENDAR

public static final String INSERT_ORACLE_CALENDAR
See Also:
Constant Field Values

SELECT_ORACLE_CALENDAR_BLOB

public static final String SELECT_ORACLE_CALENDAR_BLOB
See Also:
Constant Field Values

UPDATE_ORACLE_CALENDAR_BLOB

public static final String UPDATE_ORACLE_CALENDAR_BLOB
See Also:
Constant Field Values
Constructor Detail

OracleDelegate

public OracleDelegate(org.slf4j.Logger logger,
                      String tablePrefix,
                      String schedName,
                      String instanceId,
                      org.quartz.spi.ClassLoadHelper classLoadHelper)

Create new OrcaleDelegate instance.

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

OracleDelegate

public OracleDelegate(org.slf4j.Logger logger,
                      String tablePrefix,
                      String schedName,
                      String instanceId,
                      org.quartz.spi.ClassLoadHelper classLoadHelper,
                      Boolean useProperties)

Create new OrcaleDelegate instance.

Parameters:
logger - the logger to use during execution
tablePrefix - the prefix of all table names
useProperties - use java.util.Properties for storage
Method Detail

getObjectFromBlob

protected Object getObjectFromBlob(ResultSet rs,
                                   String colName)
                            throws ClassNotFoundException,
                                   IOException,
                                   SQLException
Description copied from class: StdJDBCDelegate

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.

Overrides:
getObjectFromBlob in class StdJDBCDelegate
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

insertJobDetail

public int insertJobDetail(Connection conn,
                           JobDetail job)
                    throws IOException,
                           SQLException
Description copied from class: StdJDBCDelegate

Insert the job detail record.

Specified by:
insertJobDetail in interface DriverDelegate
Overrides:
insertJobDetail in class StdJDBCDelegate
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

getJobDataFromBlob

protected Object getJobDataFromBlob(ResultSet rs,
                                    String colName)
                             throws ClassNotFoundException,
                                    IOException,
                                    SQLException
Description copied from class: StdJDBCDelegate

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.

Overrides:
getJobDataFromBlob in class StdJDBCDelegate
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

updateJobDetail

public int updateJobDetail(Connection conn,
                           JobDetail job)
                    throws IOException,
                           SQLException
Description copied from class: StdJDBCDelegate

Update the job detail record.

Specified by:
updateJobDetail in interface DriverDelegate
Overrides:
updateJobDetail in class StdJDBCDelegate
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

insertTrigger

public int insertTrigger(Connection conn,
                         org.quartz.spi.OperableTrigger trigger,
                         String state,
                         JobDetail jobDetail)
                  throws SQLException,
                         IOException
Description copied from class: StdJDBCDelegate

Insert the base trigger data.

Specified by:
insertTrigger in interface DriverDelegate
Overrides:
insertTrigger in class StdJDBCDelegate
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

updateTrigger

public int updateTrigger(Connection conn,
                         org.quartz.spi.OperableTrigger trigger,
                         String state,
                         JobDetail jobDetail)
                  throws SQLException,
                         IOException
Description copied from class: StdJDBCDelegate

Update the base trigger data.

Specified by:
updateTrigger in interface DriverDelegate
Overrides:
updateTrigger in class StdJDBCDelegate
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

insertCalendar

public int insertCalendar(Connection conn,
                          String calendarName,
                          Calendar calendar)
                   throws IOException,
                          SQLException
Description copied from class: StdJDBCDelegate

Insert a new calendar.

Specified by:
insertCalendar in interface DriverDelegate
Overrides:
insertCalendar in class StdJDBCDelegate
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
Description copied from class: StdJDBCDelegate

Update a calendar.

Specified by:
updateCalendar in interface DriverDelegate
Overrides:
updateCalendar in class StdJDBCDelegate
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

updateJobData

public int updateJobData(Connection conn,
                         JobDetail job)
                  throws IOException,
                         SQLException
Description copied from class: StdJDBCDelegate

Update the job data map for the given job.

Specified by:
updateJobData in interface DriverDelegate
Overrides:
updateJobData in class StdJDBCDelegate
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

writeDataToBlob

protected Blob writeDataToBlob(ResultSet rs,
                               int column,
                               byte[] data)
                        throws SQLException
Throws:
SQLException


Copyright 2001-2013, Terracotta, Inc.