Quartz Collection manipulation related utility methods. Removes the specified item from list of items and returns whether removal was success. The items to remove from. The item to remove. A hash based set. Represents a collection ob objects that contains no duplicate elements. Adds a new element to the Collection if it is not already present. The object to add to the collection. Returns true if the object was added to the collection, otherwise false. Adds all the elements of the specified collection to the Set. Collection of objects to add. true Returns the first item in the set. First object. Initializes a new instance of the class. Initializes a new instance of the class. The whose elements are copied to the new list. is . Initializes a new instance of the class. The capacity. Unmodifiables the hash set. The collection. Adds a new element to the ArrayList if it is not already present. Element to insert to the ArrayList. Returns true if the new element was inserted, false otherwise. Adds all the elements of the specified collection that are not present to the list. Collection where the new elements will be added Returns true if at least one element was added, false otherwise. Returns the first item in the set. First object. Returns a copy of the HashSet instance. Returns a shallow copy of the current HashSet. A sorted set. Returns a portion of the list whose elements are greater than the limit object parameter. The start element of the portion to extract. The portion of the collection whose elements are greater than the limit object parameter. SupportClass for the TreeSet class. Initializes a new instance of the class. Initializes a new instance of the class. The whose elements are copied to the new list. is . Initializes a new instance of the class. The c. Unmodifiables the tree set. The collection. Adds a new element to the ArrayList if it is not already present and sorts the ArrayList. Element to insert to the ArrayList. TRUE if the new element was inserted, FALSE otherwise. Adds all the elements of the specified collection that are not present to the list. Collection where the new elements will be added Returns true if at least one element was added to the collection. Returns the first item in the set. First object. Determines whether an element is in the the current TreeSetSupport collection. The IComparer defined for the current set will be used to make comparisons between the elements already inserted in the collection and the item specified. The object to be locatet in the current collection. true if item is found in the collection; otherwise, false. Returns a portion of the list whose elements are greater than the limit object parameter. The start element of the portion to extract. The portion of the collection whose elements are greater than the limit object parameter. Gets the IComparator object used to sort this set. Responsible for creating the instances of to be used within the instance. Although this interface looks a lot like an 'object pool', implementations do not have to support the re-use of instances. If an implementation does not wish to pool instances, then the method would simply create a new instance, and the method would do nothing. James House Marko Lahma (.NET) Initialize the factory, providing a handle to the that should be made available within the and the s within it, and a handle to the that the shell will use in its own operations with the . Called by the to obtain instances of . Called by the to return instances of . JobRunShell instances are responsible for providing the 'safe' environment for s to run in, and for performing all of the work of executing the , catching ANY thrown exceptions, updating the with the 's completion code, etc.

A instance is created by a on behalf of the which then runs the shell in a thread from the configured when the scheduler determines that a has been triggered.

James House Marko Lahma (.NET)
This interface should be implemented by any class whose instances are intended to be executed by a thread. This method has to be implemented in order that starting of the thread causes the object's run method to be called in that separately executing thread. Create a JobRunShell instance with the given settings. A handle to the that produced this . The instance that should be made available within the . the that should be used by the when making updates to the . Initializes the job execution context with given scheduler and bundle. The scheduler. The bundle offired triggers. Requests the Shutdown. This method has to be implemented in order that starting of the thread causes the object's run method to be called in that separately executing thread. Runs begin procedures on this instance. Completes the execution. if set to true [successful execution]. Passivates this instance. Completes the trigger retry loop. The trigger. The job detail. The inst code. Vetoeds the job retry loop. The trigger. The job detail. The inst code. This is the heart of Quartz, an indirect implementation of the interface, containing methods to schedule s, register instances, etc. James House Marko Lahma (.NET) Starts this instance. Standbies this instance. Shutdowns this instance. returns true if the given JobGroup is paused The scheduling context. returns true if the given TriggerGroup is paused Initializes the class. Get the global that has the given name. Create a with the given configuration properties. Bind the scheduler to remoting infrastructure. Un-bind the scheduler from remoting infrastructure. Adds an object that should be kept as reference to prevent it from being garbage collected. The obj. Removes the object from garbae collection protected list. The obj. Starts the 's threads that fire s.

All s that have misfired will be passed to the appropriate TriggerListener(s).

Temporarily halts the 's firing of s.

The scheduler is not destroyed, and can be re-started at any time.

Halts the 's firing of s, and cleans up all resources associated with the QuartzScheduler. Equivalent to .

The scheduler cannot be re-started.

Halts the 's firing of s, and cleans up all resources associated with the QuartzScheduler.

The scheduler cannot be re-started.

if the scheduler will not allow this method to return until all currently executing jobs have completed.
Validates the state. Add the identified by the given to the Scheduler, and associate the given with it.

If the given Trigger does not reference any , then it will be set to reference the Job passed with it into this method.

Schedule the given with the identified by the 's settings. Add the given to the Scheduler - with no associated . The will be 'dormant' until it is scheduled with a , or is called for it.

The must by definition be 'durable', if it is not, SchedulerException will be thrown.

Delete the identified from the Scheduler - and any associated s. true if the Job was found and deleted. Remove the indicated from the scheduler. Remove (delete) the with the given name, and store the new given one - which must be associated with the same job. The scheduling context. The name of the to be removed. The group name of the to be removed. The new to be stored. if a with the given name and group was not found and removed from the store, otherwise the first fire time of the newly scheduled trigger. Creates a new positive random number The last random obtained Returns a new positive random number Trigger the identified (Execute it now) - with a non-volatile trigger. Trigger the identified (Execute it now) - with a volatile trigger. Pause the with the given name. Pause all of the s in the given group. Pause the with the given name - by pausing all of its current s. Pause all of the s in the given group - by pausing all of their s. Resume (un-pause) the with the given name.

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

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

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

Gets the paused trigger groups. The the job scheduling context. Resume (un-pause) the with the given name.

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

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

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

Pause all triggers - equivalent of calling on every group.

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

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

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

Get the names of all known groups. Get the names of all the s in the given group. Get all s that are associated with the identified . Get the names of all known groups. Get the names of all the s in the given group. Get the for the instance with the given name and group. Get the instance with the given name and group. Get the current state of the identified . Add (register) the given to the Scheduler. Delete the identified from the Scheduler. true if the Calendar was found and deleted. Get the instance with the given name. Get the names of all registered s. Add the given to the 'sglobal list.

Listeners in the 'global' list receive notification of execution events for ALL s.

Add the given to the 's list, of registered s. Remove the given from the 's list of global listeners. true if the identifed listener was found in the list, and removed. Remove the identifed from the 's list of global listeners. true if the identifed listener was found in the list, and removed. Remove the identifed from the 's list of registered listeners. true if the identifed listener was found in the list, and removed. Get the non-global that has the given name. Add the given to the 'sglobal list.

Listeners in the 'global' list receive notification of execution events for ALL s.

Add the given to the 's list, of registered s. Remove the given from the 's list of global listeners. true if the identifed listener was found in the list, and removed. Remove the identifed from the 's list of global listeners. true if the identifed listener was found in the list, and removed Remove the identifed from the 's list of registered listeners. true if the identifed listener was found in the list, and removed. Get the non-global that has the given name. Get the global that has the given name. Register the given with the . Remove the given from the . true if the identifed listener was found in the list, and removed. Notifies the job store job complete. The job scheduling context. The trigger. The detail. The instruction code. Notifies the scheduler thread. Notifies the trigger listeners about fired trigger. The job execution context. Notifies the trigger listeners about misfired trigger. The trigger. Notifies the trigger listeners of completion. The job executution context. The instruction code to report to triggers. Notifies the job listeners about job to be executed. The jec. Notifies the job listeners that job exucution was vetoed. The job execution context. Notifies the job listeners that job was executed. The jec. The je. Notifies the scheduler listeners about scheduler error. The MSG. The se. Notifies the scheduler listeners about job that was scheduled. The trigger. Notifies the scheduler listeners about job that was unscheduled. Name of the trigger. The trigger group. Notifies the scheduler listeners about finalized trigger. The trigger. Notifies the scheduler listeners about paused trigger. The name. The group. Notifies the scheduler listeners resumed trigger. The name. The group. Notifies the scheduler listeners about paused job. The name. The group. Notifies the scheduler listeners about resumed job. The name. The group. Notifies the scheduler listeners about scheduler shutdown. Interrupt all instances of the identified InterruptableJob. Obtains a lifetime service object to control the lifetime policy for this instance. Gets the version of the Quartz Scheduler. The version. Gets the version major. The version major. Gets the version minor. The version minor. Gets the version iteration. The version iteration. Gets the scheduler signaler. The scheduler signaler. Returns the name of the . Returns the instance Id of the . Returns the of the . Gets or sets a value indicating whether to signal on scheduling change. true if schduler should signal on scheduling change; otherwise, false. Reports whether the is paused. Gets the job store class. The job store class. Gets the thread pool class. The thread pool class. Gets the size of the thread pool. The size of the thread pool. Reports whether the has been Shutdown. Return a list of objects that represent all currently executing Jobs in this Scheduler instance.

This method is not cluster aware. That is, it will only return Jobs currently executing in this Scheduler instance, not across the entire cluster.

Note that the list returned is an 'instantaneous' snap-shot, and that as soon as it's returned, the true list of executing jobs may be different.

Get a List containing all of the s in the 'sglobal list. Get a Set containing the names of all the non-global s registered with the . Get a list containing all of the s in the 'sglobal list. Get a Set containing the names of all the non-global s registered with the . Get a List containing all of the s registered with the . Gets or sets the job factory. The job factory. Gets the running since. The running since. Gets the number of jobs executed. The number of jobs executed. Gets a value indicating whether this scheduler supports persistence. true if supports persistence; otherwise, false. Helper class to start scheduler in a delayed fashion. ErrorLogger - Scheduler Listener Class A helpful abstract base class for implementors of . The methods in this class are empty so you only need to override the subset for the events you care about. The interface to be implemented by classes that want to be informed of major events. James House Called by the when a is scheduled. Called by the when a is unscheduled. Called by the when a has reached the condition in which it will never fire again. Called by the when a or group of s has been paused.

If a group was paused, then the parameter will be null.

Name of the trigger. The trigger group.
Called by the when a or group of s has been un-paused.

If a group was resumed, then the parameter will be null.

Name of the trigger. The trigger group.
Called by the when a or group of s has been paused.

If a group was paused, then the parameter will be null. If all jobs were paused, then both parameters will be null.

Name of the job. The job group.
Called by the when a or group of s has been un-paused.

If a group was resumed, then the parameter will be null. If all jobs were paused, then both parameters will be null.

The job group.
Called by the when a serious error has occured within the scheduler - such as repeated failures in the , or the inability to instantiate a instance when its has fired.

The property of the given SchedulerException can be used to determine more specific information about the type of error that was encountered.

Called by the to inform the listener that it has Shutdown. Get the for this type's category. This should be used by subclasses for logging. The interface to be implemented by classes that want to be informed when a executes. In general, applications that use a will not have use for this mechanism. James House Called by the when a is about to be executed (an associated has occured).

This method will not be invoked if the execution of the Job was vetoed by a .

Called by the when a was about to be executed (an associated has occured), but a vetoed it's execution. Called by the after a has been executed, and be for the associated 's method has been called. Get the name of the . Contains all of the resources (,, etc.) necessary to create a instance. James House Marko Lahma (.NET) Gets the unique identifier. Name of the scheduler. The scheduler instance id. Gets the unique identifier. Add the given for the to use. This method expects the plugin's "initialize" method to be invoked externally (either before or after this method is called). Get or set the name for the . if name is null or empty. Get or set the instance Id for the . if name is null or empty. Get or set the name for the . if name is null or empty. Get or set the for the to use. if threadPool is null. Get or set the for the to use. if jobStore is null. Get or set the for the to use. if jobRunShellFactory is null. Get the of all s for the to use. Gets or sets a value indicating whether to make scheduler thread daemon. true if scheduler should be thread daemon; otherwise, false. Gets or sets the scheduler exporter. The scheduler exporter. The thread responsible for performing the work of firing s that are registered with the . James House Marko Lahma (.NET) Support class used to handle threads The instance of System.Threading.Thread Initializes a new instance of the QuartzThread class Initializes a new instance of the Thread class. The name of the thread Initializes a new instance of the Thread class. A ThreadStart delegate that references the methods to be invoked when this thread begins executing Initializes a new instance of the Thread class. A ThreadStart delegate that references the methods to be invoked when this thread begins executing The name of the thread This method has no functionality unless the method is overridden Causes the operating system to change the state of the current thread instance to ThreadState.Running Interrupts a thread that is in the WaitSleepJoin thread state Blocks the calling thread until a thread terminates Blocks the calling thread until a thread terminates or the specified time elapses Time of wait in milliseconds Blocks the calling thread until a thread terminates or the specified time elapses Time of wait in milliseconds Time of wait in nanoseconds Resumes a thread that has been suspended Raises a ThreadAbortException in the thread on which it is invoked, to begin the process of terminating the thread. Calling this method usually terminates the thread Raises a ThreadAbortException in the thread on which it is invoked, to begin the process of terminating the thread while also providing exception information about the thread termination. Calling this method usually terminates the thread. An object that contains application-specific information, such as state, which can be used by the thread being aborted Suspends the thread, if the thread is already suspended it has no effect Obtain a string that represents the current object A string that represents the current object Gets the currently running thread The currently running thread Gets the current thread instance Gets or sets the name of the thread Gets or sets a value indicating the scheduling priority of a thread Gets a value indicating the execution status of the current thread Gets or sets a value indicating whether or not a thread is a background thread. Gets the randomized idle wait time. The randomized idle wait time. Construct a new for the given as a non-daemon with normal priority. Construct a new for the given as a with the given attributes. Signals the main processing loop to pause at the next possible point. Signals the main processing loop to pause at the next possible point. Signals the main processing loop that a change in scheduling has been made - in order to interrupt any sleeping that may be occuring while waiting for the fire time to arrive. the time when the newly scheduled trigger will fire. If this method is being called do to some other even (rather than scheduling a trigger), the caller should pass null. The main processing loop of the . Trigger retry loop that is executed on error condition. The bndle. Releases the trigger retry loop. The trigger. Gets the log. The log. Sets the idle wait time. The idle wait time. Gets a value indicating whether this is paused. true if paused; otherwise, false. Gets or sets the db failure retry interval. The db failure retry interval. An interface to be used by instances in order to communicate signals back to the . James House Marko Lahma (.NET) An interface to be used by instances in order to communicate signals back to the . James House Notifies the scheduler about misfired trigger. The trigger that misfired. Notifies the scheduler about finalized trigger. The trigger that has finalized. Signals the scheduling change. Notifies the scheduler about misfired trigger. The trigger that misfired. Notifies the scheduler about finalized trigger. The trigger that has finalized. Signals the scheduling change. An object used to pass information about the 'client' to the . James House Marko Lahma (.NET) get the instanceId in the cluster.

Set the instanceId.

Metadata information about specific ADO.NET driver library. Metadata is used to create correct types of object instances to interact with the underlying database. Initializes this instance. Parses information and initializes startup values. Gets the name of the parameter which includes the parameter prefix for this database. Name of the parameter. Gets or sets the name of the assembly that holds the connection library. The name of the assembly. Gets or sets the name of the product. The name of the product. Gets or sets the type of the connection. The type of the connection. Gets or sets the type of the command. The type of the command. Gets or sets the type of the parameter. The type of the parameter. Gets the type of the command builder. The type of the command builder. Gets the command builder's derive parameters method. The command builder derive parameters method. Gets or sets the parameter name prefix. The parameter name prefix. Gets or sets the type of the exception that is thrown when using driver library. The type of the exception. Gets or sets a value indicating whether parameters are bind by name when using ADO.NET parameters. true if parameters are bind by name; otherwise, false. Gets or sets the type of the database parameters. The type of the parameter db. Gets the parameter db type property. The parameter db type property. Gets the parameter is nullable property. The parameter is nullable property. Gets or sets the type of the db binary column. This is a string representation of Enum element because this information is database driver specific. The type of the db binary. Gets the type of the db binary. The type of the db binary. Sets the name of the parameter db type property. The name of the parameter db type property. Gets or sets a value indicating whether [use parameter name prefix in parameter collection]. true if [use parameter name prefix in parameter collection]; otherwise, false. Returns a new command object for executing SQL statments/Stored Procedures against the database. An new Returns a new instance of the providers CommandBuilder class. In .NET 1.1 there was no common base class or interface for command builders, hence the return signature is object to be portable (but more loosely typed) across .NET 1.1/2.0 A new Command Builder Returns a new connection object to communicate with the database. A new Returns a new parameter object for binding values to parameter placeholders in SQL statements or Stored Procedure variables. A new Shutdowns this instance. Connection string used to create connections. Registers DB metadata information for given provider name. Initializes a new instance of the class. Name of the db provider. The connection string. Returns a new command object for executing SQL statments/Stored Procedures against the database. An new Returns a new instance of the providers CommandBuilder class. A new Command Builder In .NET 1.1 there was no common base class or interface for command builders, hence the return signature is object to be portable (but more loosely typed) across .NET 1.1/2.0 Returns a new connection object to communicate with the database. A new Returns a new parameter object for binding values to parameter placeholders in SQL statements or Stored Procedure variables. A new Shutdowns this instance. Connection string used to create connections. Gets the metadata. The metadata. Summary description for DbProviderFactory. This interface can be implemented by any class that needs to use the constants contained herein. Jeffrey Wescott James House @deprecated Whether a trigger has misfired is no longer a state, but rather now identified dynamically by whether the trigger's next fire time is more than the misfire threshold time in the past. This class contains utility functions for use in all delegate classes. Jeffrey Wescott Replace the table prefix in a query by replacing any occurrences of "{0}" with the table prefix. The unsubstitued query The table prefix The query, with proper table prefix substituted Obtain a unique key for a given job. The job name The group containing the job A unique key Obtain a unique key for a given trigger. The trigger name The group containing the trigger A unique key Base class for database based lock handlers for providing thread/resource locking in order to protect resources from being altered by multiple threads at the same time. This class extends to include the query string constants in use by the class. Jeffrey Wescott An interface for providing thread/resource locking in order to protect resources from being altered by multiple threads at the same time. James House Grants a lock on the identified resource to the calling thread (blocking until it is available). true if the lock was obtained. Release the lock on the identified resource if it is held by the calling thread. Determine whether the calling thread owns a lock on the identified resource. Whether this Semaphore implementation requires a database connection for its lock management operations. Interface for Quartz objects that need to know what the table prefix of the tables used by a ADO.NET JobStore is. Initializes a new instance of the class. The table prefix. The SQL. The default SQL. The db provider. Execute the SQL that will lock the proper database row. Grants a lock on the identified resource to the calling thread (blocking until it is available). true if the lock was obtained. Release the lock on the identified resource if it is held by the calling thread. Determine whether the calling thread owns a lock on the identified resource. Gets or sets the lock owners. The lock owners. Gets the log. The log. This Semaphore implementation does use the database. Gets or sets the table prefix. The table prefix. A FirebirdDelegate specific driver delegate. Marko Lahma This is meant to be an abstract base class for most, if not all, implementations. Subclasses should override only those methods that need special handling for the DBMS driver in question. Jeffrey Wescott James House Marko Lahma (.NET) This is the base interface for all driver delegate classes.

This interface is very similar to the interface except each method has an additional parameter.

Unless a database driver has some extremely-DB-specific requirements, any IDriverDelegate implementation classes should extend the class.

Jeffrey Wescott James House Marko Lahma (.NET)
Update all triggers having one of the two given states, to the given new state. The DB Connection The new state for the triggers The first old state to update The second old state to update Number of rows updated Get the names of all of the triggers that have misfired - according to the given timestamp. The DB Connection The timestamp. An array of objects Get the names of all of the triggers in the given state that have misfired - according to the given timestamp. The DB Connection The state. The time stamp. An array of objects Get the names of all of the triggers in the given group and state that have misfired - according to the given timestamp. The DB Connection Name of the group. The state. The timestamp. An array of objects 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 trigger group. In order to preserve the ordering of the triggers, the fire time will be set from the ColumnFiredTime column in the TableFiredTriggers table. The caller is responsible for calling on each returned trigger. It is also up to the caller to insert the returned triggers to ensure that they are fired. The DB Connection An array of objects Delete all fired triggers. The DB Connection The number of rows deleted Delete all fired triggers of the given instance. The DB Connection The instance id. The number of rows deleted Delete all volatile fired triggers. The DB Connection The number of rows deleted Get the names of all of the triggers that are volatile. The DB Connection An array of see cref="Key" /> objects. Get the names of all of the jobs that are volatile. The DB Connection An array of objects. Insert the job detail record. The DB Connection The job to insert. Number of rows inserted. Update the job detail record. The DB Connection. The job to update. Number of rows updated.

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

The DB Connection The job name The job group
Delete all job listeners for the given job. The DB Connection The name of the job The group containing the job The number of rows deleted Delete the job detail record for the given job. The DB Connection the name of the job Name of the group. the number of rows deleted Check whether or not the given job is stateful. The DB Connection The name of the job The group containing the job true if the job exists and is stateful, false otherwise Check whether or not the given job exists. The DB Connection Name of the job. Name of the group. true if the job exists, false otherwise Update the job data map for the given job. The DB Connection The job. the number of rows updated Associate a listener with a job. The DB Connection The job to associate with the listener. The listener to insert. The number of rows inserted.

Get all of the listeners for a given job.

The DB Connection The job name whose listeners are wanted The group containing the job array of listener names
Select the JobDetail object for a given job name / group name. The DB Connection The job name whose listeners are wanted The group containing the job The class load helper. The populated JobDetail object Select the total number of jobs stored. The DB Connection the total number of jobs stored Select all of the job group names that are stored. The DB Connection. an array of group names Select all of the jobs contained in a given group. The DB Connection The group containing the jobs an array of job names Insert the base trigger data. The DB Connection The trigger to insert. The state that the trigger should be stored in. The job detail. The number of rows inserted Insert the simple trigger data. The DB Connection The trigger to insert The number of rows inserted Insert the blob trigger data. The DB Connection The trigger to insert The number of rows inserted Insert the cron trigger data. the DB Connection The trigger. the number of rows inserted Update the base trigger data. the DB Connection The trigger. The state. The job detail. the number of rows updated Update the simple trigger data. the DB Connection The trigger. the number of rows updated Update the cron trigger data. the DB Connection The trigger. the number of rows updated Update the blob trigger data. the DB Connection The trigger. the number of rows updated Check whether or not a trigger exists. the DB Connection Name of the trigger. Name of the group. the number of rows updated Update the state for a given trigger. The DB Connection The name of the trigger. The group containing the trigger. The new state for the trigger. the number of rows updated Update the given trigger to the given new state, if it is in the given old state. The DB connection The name of the trigger. The group containing the trigger The new state for the trigger The old state the trigger must be in int the number of rows updated Update the given trigger to the given new state, if it is one of the given old states. The DB connection The name of the trigger The group containing the trigger The new state for the trigger One of the old state the trigger must be in One of the old state the trigger must be in One of the old state the trigger must be in int the number of rows updated SQLException 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. The DB connection The new state for the trigger One of the old state the trigger must be in One of the old state the trigger must be in The time before which the trigger's next fire time must be int the number of rows updated Update all triggers in the given group to the given new state, if they are in one of the given old states. The DB connection The group containing the trigger The new state for the trigger One of the old state the trigger must be in One of the old state the trigger must be in One of the old state the trigger must be in The number of rows updated Update all of the triggers of the given group to the given new state, if they are in the given old state. The DB connection The group containing the triggers The new state for the trigger group The old state the triggers must be in. int the number of rows updated Update the states of all triggers associated with the given job. The DB Connection The name of the job. The group containing the job. The new state for the triggers. The number of rows updated Update the states of any triggers associated with the given job, that are the given current state. The DB Connection The name of the job The group containing the job The new state for the triggers The old state of the triggers the number of rows updated Delete all of the listeners associated with a given trigger. The DB Connection The name of the trigger whose listeners will be deleted The name of the group containing the trigger the number of rows deleted Associate a listener with the given trigger. The DB Connectio The trigger The name of the listener to associate with the trigger the number of rows inserted Select the listeners associated with a given trigger. The DB Connection The name of the trigger The group containing the trigger array of trigger listener names Delete the simple trigger data for a trigger. The DB Connection The name of the trigger The group containing the trigger The number of rows deleted Delete the BLOB trigger data for a trigger. The DB Connection The name of the trigger The group containing the trigger The number of rows deleted Delete the cron trigger data for a trigger. The DB Connection The name of the trigger The group containing the trigger the number of rows deleted Delete the base trigger data for a trigger. The DB Connection The name of the trigger The group containing the trigger the number of rows deleted Select the number of triggers associated with a given job. The DB Connection The name of the job The group containing the job the number of triggers for the given job Select the job to which the trigger is associated. The DB Connection The name of the trigger The group containing the trigger The load helper. The object associated with the given trigger Select the stateful jobs which are referenced by triggers in the given trigger group. The DB Connection The trigger group. a List of Keys to jobs. Select the triggers for a job> The DB Connection The name of the trigger The group containing the trigger an array of objects associated with a given job. Select the triggers for a calendar The DB Connection. Name of the calendar. An array of objects associated with a given job. Select a trigger. The DB Connection. The name of the trigger. The group containing the trigger. The object. Select a trigger's JobDataMap. The DB Connection. The name of the trigger. The group containing the trigger. The of the Trigger, never null, but possibly empty. Select a trigger's state value. The DB Connection. The name of the trigger. The group containing the trigger. The object. Select a triggers status (state and next fire time). The DB Connection. The name of the trigger. The group containing the trigger. A object, or null Select the total number of triggers stored. The DB Connection. The total number of triggers stored. Select all of the trigger group names that are stored. The DB Connection. An array of group names. Select all of the triggers contained in a given group. The DB Connection. The group containing the triggers. An array of trigger names. Select all of the triggers in a given state. The DB Connection. The state the triggers must be in. An array of trigger s. Inserts the paused trigger group. The conn. Name of the group. Deletes the paused trigger group. The conn. Name of the group. Deletes all paused trigger groups. The conn. Determines whether the specified trigger group is paused. The conn. Name of the group. true if trigger group is paused; otherwise, false. Selects the paused trigger groups. The DB Connection. Determines whether given trigger group already exists. The conn. Name of the group. true if trigger group exists; otherwise, false. Insert a new calendar. The DB Connection. The name for the new calendar. The calendar. The number of rows inserted. Update a calendar. The DB Connection. The name for the new calendar. The calendar. The number of rows updated. Check whether or not a calendar exists. The DB Connection. The name of the calendar. true if the trigger exists, false otherwise. Select a calendar. The DB Connection. The name of the calendar. The Calendar. Check whether or not a calendar is referenced by any triggers. The DB Connection. The name of the calendar. true if any triggers reference the calendar, false otherwise Delete a calendar. The DB Connection The name of the trigger. The number of rows deleted. Select the total number of calendars stored. The DB Connection The total number of calendars stored. Select all of the stored calendars. The DB Connection An array of calendar names. Select the trigger that will be fired at the given fire time. The DB Connection The time that the trigger will be fired. A representing the trigger that will be fired at the given fire time, or null if no trigger will be fired at that time Insert a fired trigger. The DB Connection The trigger. The state that the trigger should be stored in. The job detail. The number of rows inserted. Select the states of all fired-trigger records for a given trigger, or trigger group if trigger name is . The DB Connection Name of the trigger. Name of the group. A list of FiredTriggerRecord objects. Select the states of all fired-trigger records for a given job, or job group if job name is . The DB Connection Name of the job. Name of the group. A List of FiredTriggerRecord objects. Select the states of all fired-trigger records for a given scheduler instance. The DB Connection Name of the instance. A list of FiredTriggerRecord objects. Delete a fired trigger. The DB Connection The fired trigger entry to delete. The number of rows deleted. Get the number instances of the identified job currently executing. The DB Connection Name of the job. The job group. The number instances of the identified job currently executing. Insert a scheduler-instance state record. The DB Connection The instance id. The check in time. The interval. The number of inserted rows. Delete a scheduler-instance state record. The DB Connection The instance id. The number of deleted rows. Update a scheduler-instance state record. The DB Connection The instance id. The check in time. The number of updated rows. A List of all current s.

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

The DB Connection The instance id.
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. The conn. highest value of of the triggers (exclusive) highest value of of the triggers (inclusive) A (never null, possibly empty) list of the identifiers (Key objects) of the next triggers to be fired. 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.) The conn. Counts the misfired triggers in states. The conn. The state1. The state2. The ts. Selects the misfired triggers in states. The conn. The state1. The state2. The ts. The count. The result list. Create new StdAdoDelegate instance. the logger to use during execution the prefix of all table names The instance id. The db provider. Create new StdAdoDelegate instance. the logger to use during execution the prefix of all table names The instance id. The db provider. if set to true [use properties]. Insert the job detail record. the DB Connection the new state for the triggers the first old state to update the second old state to update number of rows updated Get the names of all of the triggers that have misfired. the DB Connection The ts. an array of objects Select all of the triggers in a given state. The DB Connection The state the triggers must be in an array of trigger s Get the names of all of the triggers in the given state that have misfired - according to the given timestamp. The DB Connection The state. The time stamp. An array of objects 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. The conn. The state1. The state2. The ts. The most misfired triggers to return, negative for all Output parameter. A List of objects. Must not be null Whether there are more misfired triggers left to find beyond the given count. Get the number of triggers in the given states that have misfired - according to the given timestamp. Get the names of all of the triggers in the given group and state that have misfired. The DB Connection Name of the group. The state. The timestamp. an array of objects 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 trigger group. In order to preserve the ordering of the triggers, the fire time will be set from the ColumnFiredTime column in the TableFiredTriggers table. The caller is responsible for calling on each returned trigger. It is also up to the caller to insert the returned triggers to ensure that they are fired. The DB Connection an array of objects Delete all fired triggers. The DB Connection. The number of rows deleted. Delete all fired triggers of the given instance. The DB Connection The instance id. The number of rows deleted Insert the job detail record. The DB Connection. The job to insert. Number of rows inserted. Gets the db presentation for boolean value. Subclasses can overwrite this behaviour. Value to map to database. Update the job detail record. The DB Connection. The job to update. Number of rows updated. Get the names of all of the triggers associated with the given job. The DB Connection. The name of the job. The group containing the job. An array of objects Delete all job listeners for the given job. The DB Connection. The name of the job. The group containing the job. The number of rows deleted. Delete the job detail record for the given job. the DB Connection the name of the job the group containing the job the number of rows deleted Check whether or not the given job is stateful. the DB Connection the name of the job the group containing the job true if the job exists and is stateful, false otherwise Check whether or not the given job exists. the DB Connection the name of the job the group containing the job true if the job exists, false otherwise Update the job data map for the given job. The conn. the job to update the number of rows updated Associate a listener with a job. The DB Connection. The job to associate with the listener. The listener to insert. The number of rows inserted. Get all of the listeners for a given job. The DB Connection. The job name whose listeners are wanted. The group containing the job. Array of listener names. Select the JobDetail object for a given job name / group name. The DB Connection. The job name whose listeners are wanted. The group containing the job. The load helper. The populated JobDetail object. build Map from java.util.Properties encoding. Select the total number of jobs stored. The DB Connection. The total number of jobs stored. Select all of the job group names that are stored. The DB Connection. An array of group names. Select all of the jobs contained in a given group. The DB Connection. The group containing the jobs. An array of job names. Insert the base trigger data. the DB Connection the trigger to insert the state that the trigger should be stored in The job detail. the number of rows inserted Insert the simple trigger data. The DB Connection. The trigger to insert. The number of rows inserted. Insert the cron trigger data. the DB Connection the trigger to insert the number of rows inserted Insert the blob trigger data. The DB Connection. The trigger to insert. The number of rows inserted. Update the base trigger data. The DB Connection. The trigger to insert. The state that the trigger should be stored in. The job detail. The number of rows updated. Update the simple trigger data. The DB Connection. The trigger to insert. The number of rows updated. Update the cron trigger data. The DB Connection. The trigger to insert. The number of rows updated. Update the blob trigger data. The DB Connection. The trigger to insert. The number of rows updated. Check whether or not a trigger exists. The DB Connection. The name of the trigger. The group containing the trigger. true if the trigger exists, false otherwise Update the state for a given trigger. The DB Connection. The name of the trigger. The group containing the trigger. The new state for the trigger. The number of rows updated. Update the given trigger to the given new state, if it is one of the given old states. The DB connection. The name of the trigger. The group containing the trigger. The new state for the trigger. One of the old state the trigger must be in. One of the old state the trigger must be in. One of the old state the trigger must be in. The number of rows updated. 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. The DB connection The new state for the trigger One of the old state the trigger must be in One of the old state the trigger must be in The time before which the trigger's next fire time must be int the number of rows updated Update all triggers in the given group to the given new state, if they are in one of the given old states. The DB connection. The group containing the trigger. The new state for the trigger. One of the old state the trigger must be in. One of the old state the trigger must be in. One of the old state the trigger must be in. The number of rows updated. Update the given trigger to the given new state, if it is in the given old state. the DB connection the name of the trigger the group containing the trigger the new state for the trigger the old state the trigger must be in int the number of rows updated Update all of the triggers of the given group to the given new state, if they are in the given old state. the DB connection the group containing the triggers the new state for the trigger group the old state the triggers must be in int the number of rows updated Update the states of all triggers associated with the given job. the DB Connection the name of the job the group containing the job the new state for the triggers the number of rows updated Updates the state of the trigger states for job from other. The conn. Name of the job. Name of the group. The state. The old state. Delete all of the listeners associated with a given trigger. the DB Connection the name of the trigger whose listeners will be deleted the name of the group containing the trigger the number of rows deleted Associate a listener with the given trigger. the DB Connection the trigger the name of the listener to associate with the trigger the number of rows inserted Select the listeners associated with a given trigger. the DB Connection the name of the trigger the group containing the trigger array of trigger listener names Delete the simple trigger data for a trigger. the DB Connection the name of the trigger the group containing the trigger the number of rows deleted Delete the cron trigger data for a trigger. the DB Connection the name of the trigger the group containing the trigger the number of rows deleted Delete the cron trigger data for a trigger. the DB Connection the name of the trigger the group containing the trigger the number of rows deleted Delete the base trigger data for a trigger. the DB Connection the name of the trigger the group containing the trigger the number of rows deleted Select the number of triggers associated with a given job. the DB Connection the name of the job the group containing the job the number of triggers for the given job Select the job to which the trigger is associated. the DB Connection the name of the trigger the group containing the trigger The load helper. The object associated with the given trigger Select the triggers for a job the DB Connection the name of the trigger the group containing the trigger an array of objects associated with a given job. Select the triggers for a calendar The DB Connection. Name of the calendar. An array of objects associated with a given job. Selects the stateful jobs of trigger group. The database connection. Name of the group. Select a trigger. the DB Connection the name of the trigger the group containing the trigger The object Select a trigger's JobDataMap. the DB Connection the name of the trigger the group containing the trigger The of the Trigger, never null, but possibly empty. Select a trigger's state value. the DB Connection the name of the trigger the group containing the trigger The object Select a trigger status (state and next fire time). the DB Connection the name of the trigger the group containing the trigger a object, or null Select the total number of triggers stored. the DB Connection the total number of triggers stored Select all of the trigger group names that are stored. the DB Connection an array of group names Select all of the triggers contained in a given group. the DB Connection the group containing the triggers an array of trigger names Inserts the paused trigger group. The conn. Name of the group. Deletes the paused trigger group. The conn. Name of the group. Deletes all paused trigger groups. The conn. Determines whether the specified trigger group is paused. The conn. Name of the group. true if trigger group is paused; otherwise, false. Determines whether given trigger group already exists. The conn. Name of the group. true if trigger group exists; otherwise, false. Insert a new calendar. the DB Connection The name for the new calendar. The calendar. the number of rows inserted IOException Update a calendar. the DB Connection The name for the new calendar. The calendar. the number of rows updated IOException Check whether or not a calendar exists. the DB Connection The name of the calendar. true if the trigger exists, false otherwise Select a calendar. the DB Connection The name of the calendar. the Calendar ClassNotFoundException IOException Check whether or not a calendar is referenced by any triggers. the DB Connection The name of the calendar. true if any triggers reference the calendar, false otherwise Delete a calendar. the DB Connection The name of the trigger. the number of rows deleted Select the total number of calendars stored. the DB Connection the total number of calendars stored Select all of the stored calendars. the DB Connection an array of calendar names Select the trigger that will be fired at the given fire time. the DB Connection the time that the trigger will be fired a representing the trigger that will be fired at the given fire time, or null if no trigger will be fired at that time 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. The conn. highest value of of the triggers (exclusive) highest value of of the triggers (inclusive) A (never null, possibly empty) list of the identifiers (Key objects) of the next triggers to be fired. Gets the select next trigger to acquire SQL clause. This can be overriden for a more performant, result limiting SQL. For Example SQL Server, MySQL and SQLite support limiting returned rows. Insert a fired trigger. the DB Connection the trigger the state that the trigger should be stored in The job. the number of rows inserted Select the states of all fired-trigger records for a given trigger, or trigger group if trigger name is . The DB connection. Name of the trigger. Name of the group. a List of objects. Select the states of all fired-trigger records for a given job, or job group if job name is . The DB connection. Name of the job. Name of the group. a List of objects. Select the states of all fired-trigger records for a given scheduler instance. The DB Connection Name of the instance. A list of FiredTriggerRecord objects. Select the distinct instance names of all fired-trigger records. The conn. This is useful when trying to identify orphaned fired triggers (a fired trigger without a scheduler state record.) Delete a fired trigger. the DB Connection the fired trigger entry to delete the number of rows deleted Selects the job execution count. The DB connection. Name of the job. The job group. Delete all volatile fired triggers. The DB Connection The number of rows deleted Inserts the state of the scheduler. The conn. The instance id. The check in time. The interval. Deletes the state of the scheduler. The database connection. The instance id. Updates the state of the scheduler. The database connection. The instance id. The check in time. A List of all current s.

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

The DB Connection The instance id.
Replace the table prefix in a query by replacing any occurrences of "{0}" with the table prefix. The unsubstitued query The query, with proper table prefix substituted Create a serialized version of an Object. the object to serialize Serialized object as byte array. Remove the transient data from and then create a serialized version of a and returns the underlying bytes. The data. the serialized data as byte array serialize The data. Convert the JobDataMap into a list of properties. Convert the JobDataMap into a list of properties. This method should be overridden by any delegate subclasses that need special handling for BLOBs. The default implementation uses standard ADO.NET operations. The data reader, already queued to the correct row. The column index for the BLOB. The deserialized object from the DataReader BLOB. Get the names of all of the triggers that are volatile. The DB Connection An array of objects. Get the names of all of the jobs that are volatile. The DB Connection An array of objects. This method should be overridden by any delegate subclasses that need special handling for BLOBs for job details. The result set, already queued to the correct row. The column index for the BLOB. The deserialized Object from the ResultSet BLOB. Selects the paused trigger groups. The DB Connection. Gets the triggers to acquire limit. The triggers to acquire limit. Initializes a new instance of the class. the logger to use during execution the prefix of all table names The instance id. The db provider. Initializes a new instance of the class. The logger. The table prefix. The instance id. The db provider. if set to true [use properties]. Creates the SQL for select next trigger to acquire. Gets the select next trigger to acquire SQL clause. Firebird specific version with FIRST functionality Conveys the state of a fired-trigger record. James House Gets or sets the fire instance id. The fire instance id. Gets or sets the fire timestamp. The fire timestamp. Gets or sets a value indicating whether [job is stateful]. true if [job is stateful]; otherwise, false. Gets or sets the job key. The job key. Gets or sets the scheduler instance id. The scheduler instance id. Gets or sets the trigger key. The trigger key. Gets or sets the state of the fire instance. The state of the fire instance. Gets or sets a value indicating whether [job requests recovery]. true if [job requests recovery]; otherwise, false. Gets or sets a value indicating whether [trigger is volatile]. true if [trigger is volatile]; otherwise, false. Gets or sets the priority. The priority. Exception class for when a driver delegate cannot be found for a given configuration, or lack thereof. Jeffrey Wescott Base class for exceptions thrown by the Quartz . SchedulerExceptions may contain a reference to another , which was the underlying cause of the SchedulerException. James House Initializes a new instance of the class. Initializes a new instance of the class. The MSG. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. The class name is null or is zero (0). The info parameter is null. Initializes a new instance of the class. The MSG. The error code. Initializes a new instance of the class. The cause. Initializes a new instance of the class. The MSG. The cause. Initializes a new instance of the class. The MSG. The cause. The error code. Creates and returns a string representation of the current exception. A string representation of the current exception. Return the exception that is the underlying cause of this exception. This may be used to find more detail about the cause of the error. The underlying exception, or if there is not one. Get the error code associated with this exception. This may be used to find more detail about the cause of the error. One of the ERR_XXX constants defined in this class.

Determine if the specified error code is in the category of errors.

Determine if the specified error code is in the category of errors.

Determine if the specified error code is in the category of errors. Determine if the specified error code is in the category of errors. Determine if the specified error code is in the category of errors. Determine if the specified error code is in the category of errors. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. The class name is null or is zero (0). The info parameter is null. is meant to be used in an application-server or other software framework environment that provides container-managed-transactions. No commit / rollback will be handled by this class. If you need commit / rollback, use instead. Jeffrey Wescott James House Srinivas Venkatarangaiah Contains base functionality for ADO.NET-based JobStore implementations. Jeffrey Wescott James House Marko Lahma (.NET) The interface to be implemented by classes that want to provide a and storage mechanism for the 's use. Storage of s and s should be keyed on the combination of their name and group for uniqueness. James House Called by the QuartzScheduler before the is used, in order to give the it a chance to Initialize. Called by the QuartzScheduler to inform the that the scheduler has started. Called by the QuartzScheduler to inform the that it should free up all of it's resources because the scheduler is shutting down. Store the given and . The scheduling context. The to be stored. The to be stored. ObjectAlreadyExistsException returns true if the given JobGroup is paused returns true if the given TriggerGroup is paused Store the given . The context. The to be stored. If , any existing in the with the same name and group should be over-written. Remove (delete) the with the given name, and any s that reference it. If removal of the results in an empty group, the group should be removed from the 's list of known group names. The context. The name of the to be removed. The group name of the to be removed. if a with the given name and group was found and removed from the store. Retrieve the for the given . The context. The name of the to be retrieved. The group name of the to be retrieved. The desired , or null if there is no match. Store the given . The context. The to be stored. If , any existing in the with the same name and group should be over-written. ObjectAlreadyExistsException Remove (delete) the with the given name.

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

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

The context. The name of the to be removed. The group name of the to be removed. if a with the given name and group was found and removed from the store.
Remove (delete) the with the given name, and store the new given one - which must be associated with the same job. The context. The name of the to be removed. The group name of the to be removed. The new to be stored. if a with the given name and group was found and removed from the store. Retrieve the given . The context. The name of the to be retrieved. The group name of the to be retrieved. The desired , or null if there is no match. Store the given . The context. The name. The to be stored. If , any existing in the with the same name and group should be over-written. If , any s existing in the that reference an existing Calendar with the same name with have their next fire time re-computed with the new . ObjectAlreadyExistsException Remove (delete) the with the given name. If removal of the would result in s pointing to non-existent calendars, then a will be thrown. The context. The name of the to be removed. if a with the given name was found and removed from the store. Retrieve the given . The context. The name of the to be retrieved. The desired , or null if there is no match. Get the number of s that are stored in the . The context. Get the number of s that are stored in the . The context. Get the number of s that are stored in the . The context. Get the names of all of the 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 ).

The CTX. Name of the group.
Get the names of all of the 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 ).

Get the names of all of the groups.

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

Get the names of all of the groups.

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

Get the names of all of the s in the .

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

Get all of the Triggers that are associated to the given Job. If there are no matches, a zero-length array should be returned. Get the current state of the identified . Pause the with the given name. Pause all of the s in the given group. The JobStore should "remember" that the group is paused, and impose the pause on any new triggers that are added to the group while the group is paused. Pause the with the given name - by pausing all of its current s. Pause all of the s in the given group - by pausing all of their s.

The JobStore should "remember" that the group is paused, and impose the pause on any new jobs that are added to the group while the group is paused.

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

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

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

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

Gets the paused trigger groups. The context. Resume (un-pause) the with the given name.

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

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

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

Pause all triggers - equivalent of calling on every group.

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

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

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

Get a handle to the next trigger to be fired, and mark it as 'reserved' by the calling scheduler. The context. If > 0, the JobStore should only return a Trigger that will fire no later than the time represented in this value as milliseconds. Inform the that the scheduler no longer plans to fire the given , that it had previously acquired (reserved). Inform the that the scheduler is now firing the given (executing its associated ), that it had previously acquired (reserved). 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. Inform the that the scheduler has completed the firing of the given (and the execution its associated ), and that the in the given should be updated if the is stateful. Supports the persistence. Initializes a new instance of the class. Gets the connection and starts a new transaction. Called by the QuartzScheduler before the is used, in order to give it a chance to Initialize. Called by the QuartzScheduler to inform the that it should free up all of it's resources because the scheduler is shutting down. Removes all volatile data. Removes all volatile data. Will recover any failed or misfired jobs and clean up the data store as appropriate. Will recover any failed or misfired jobs and clean up the data store as appropriate. Store the given and . SchedulingContext Job to be stored. Trigger to be stored. returns true if the given JobGroup is paused returns true if the given TriggerGroup is paused Stores the given . The to be stored. If , any existing in the with the same name & group should be over-written.

Insert or update a job.

Check existence of a given job. Store the given . The to be stored. If , any existing in the with the same name & group should be over-written. if a with the same name/group already exists, and replaceExisting is set to false. Insert or update a trigger. Check existence of a given trigger. Remove (delete) the with the given name, and any s that reference it. If removal of the results in an empty group, the group should be removed from the 's list of known group names. The name of the to be removed. The group name of the to be removed. if a with the given name & group was found and removed from the store. Delete a job and its listeners. Delete a trigger, its listeners, and its Simple/Cron/BLOB sub-table entry. Retrieve the for the given . The name of the to be retrieved. The group name of the to be retrieved. The desired , or null if there is no match. Remove (delete) the with the given name.

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

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

The name of the to be removed. The group name of the to be removed. if a with the given name & group was found and removed from the store.
Retrieve the given . The name of the to be retrieved. The group name of the to be retrieved. The desired , or null if there is no match. Get the current state of the identified . Gets the state of the trigger. The conn. The CTXT. Name of the trigger. Name of the group. Store the given . The name of the calendar. The to be stored. If , any existing in the with the same name & group should be over-written. if a with the same name already exists, and replaceExisting is set to false. Remove (delete) the with the given name. If removal of the would result in s pointing to non-existent calendars, then a will be thrown. The name of the to be removed. if a with the given name was found and removed from the store. Retrieve the given . The name of the to be retrieved. The desired , or null if there is no match. Get the number of s that are stored in the . Get the number of s that are stored in the . Get the number of s that are stored in the . Get the names of all of the 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 ). Get the names of all of the 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 ). Get the names of all of the groups. If there are no known group names, the result should be a zero-length array (not ). Get the names of all of the groups. If there are no known group names, the result should be a zero-length array (not ). Get the names of all of the s in the . If there are no Calendars in the given group name, the result should be a zero-length array (not ). Get all of the Triggers that are associated to the given Job. If there are no matches, a zero-length array should be returned. Pause the with the given name. Pause the with the given name. Pause the with the given name - by pausing all of its current s. Pause all of the s in the given group - by pausing all of their s. Determines if a Trigger for the given job should be blocked. State can only transition to StatePausedBlocked/StateBlocked from StatePaused/StateWaiting respectively. StatePausedBlocked, StateBlocked, or the currentState. Resume (un-pause) the with the given name. If the missed one or more fire-times, then the 's misfire instruction will be applied. Resume (un-pause) the with the given name. If any of the 's s missed one or more fire-times, then the 's misfire instruction will be applied. Resume (un-pause) all of the s in the given group. If any of the s had s that missed one or more fire-times, then the 's misfire instruction will be applied. Pause all of the s in the given group. Pause all of the s in the given group. Pause all of the s in the given group. Resume (un-pause) all of the s in the given group.

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

Pause all triggers - equivalent of calling on every group.

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

Resume (un-pause) all triggers - equivalent of calling on every group. If any missed one or more fire-times, then the 's misfire instruction will be applied. Resume (un-pause) all triggers - equivalent of calling on every group.

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

Get a handle to the next N triggers to be fired, and mark them as 'reserved' by the calling scheduler. Inform the that the scheduler no longer plans to fire the given , that it had previously acquired (reserved). Inform the that the scheduler has completed the firing of the given (and the execution its associated ), and that the in the given should be updated if the is stateful. Get a list of all scheduler instances in the cluster that may have failed. This includes this scheduler if it is checking in for the first time. Create dummy objects for fired triggers that have no scheduler state record. Checkin timestamp and interval are left as zero on these dummy objects. List of all current s Cleanup the given database connection. This means restoring any modified auto commit or transaction isolation connection attributes, and then closing the underlying connection. This is separate from closeConnection() because the Spring integration relies on being able to overload closeConnection() and expects the same connection back that it originally returned from the datasource. Closes the supplied connection. (Optional) Rollback the supplied connection. (Optional) JobPersistenceException thrown if a SQLException occurs when the connection is rolled back Commit the supplied connection. The CTH. if set to true opens a new transaction. JobPersistenceException thrown if a SQLException occurs when the Execute the given callback in a transaction. Depending on the JobStore, the surrounding transaction may be assumed to be already present (managed). This method just forwards to ExecuteInLock() with a null lockName. Execute the given callback having aquired the given lock. Depending on the JobStore, the surrounding transaction may be assumed to be already present (managed). This version is just a handy wrapper around executeInLock that doesn't require a return value. The name of the lock to aquire, for example "TRIGGER_ACCESS". If null, then no lock is aquired, but the lockCallback is still executed in a transaction. Execute the given callback having aquired the given lock. Depending on the JobStore, the surrounding transaction may be assumed to be already present (managed). The name of the lock to aquire, for example "TRIGGER_ACCESS". If null, then no lock is aquired, but the lockCallback is still executed in a transaction. Execute the given callback having optionally aquired the given lock. This uses the non-managed transaction connection. This version is just a handy wrapper around executeInNonManagedTXLock that doesn't require a return value. The name of the lock to aquire, for example "TRIGGER_ACCESS". If null, then no lock is aquired, but the lockCallback is still executed in a non-managed transaction. Execute the given callback having optionally aquired the given lock. This uses the non-managed transaction connection. The name of the lock to aquire, for example "TRIGGER_ACCESS". If null, then no lock is aquired, but the lockCallback is still executed in a non-managed transaction. Get or set the datasource name. Gets the log. The log. Get or sets the prefix that should be pre-pended to all table names. Set whether string-only properties will be handled in JobDataMaps. Get or set the instance Id of the Scheduler (must be unique within a cluster). Get or set the instance Id of the Scheduler (must be unique within this server instance). Get or set whether this instance is part of a cluster. Get or set the frequency at which this instance "checks-in" with the other instances of the cluster. -- Affects the rate of detecting failed instances. Get or set the maximum number of misfired triggers that the misfire handling thread will try to recover at one time (within one transaction). The default is 20. Gets or sets the database retry interval. The db retry interval. Get or set whether this instance should use database-based thread synchronization. Whether or not to obtain locks when inserting new jobs/triggers. Defaults to , which is safest - some db's (such as MS SQLServer) seem to require this to avoid deadlocks under high load, while others seem to do fine without. Setting this property to will provide a significant performance increase during the addition of new jobs and triggers. The time span by which a trigger must have missed its next-fire-time, in order for it to be considered "misfired" and thus have its misfire instruction applied. 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. Set the transaction isolation level of DB connections to sequential. Whether or not the query and update to acquire a Trigger for firing should be performed after obtaining an explicit DB lock (to avoid possible race conditions on the trigger's db row). This is is considered unnecessary for most databases (due to the nature of the SQL update that is performed), and therefore a superfluous performance hit. Get or set the ADO.NET driver delegate class name. set the SQL statement to use to select and lock a row in the "locks" table. Get whether the threads spawned by this JobStore should be marked as daemon. Possible threads include the and the . Get whether to check to see if there are Triggers that have misfired before actually acquiring the lock to recover them. This should be set to false if the majority of the time, there are are misfired Triggers. Get the driver delegate for DB operations. Get whether String-only properties will be handled in JobDataMaps. Indicates whether this job store supports persistence. Implement this interface to provide the code to execute within the a transaction template that has no return value. Implement this interface to provide the code to execute within the a transaction template. If no return value is required, execute should just return null. An interface for classes wishing to provide the service of loading classes and resources within the scheduler... James House Called to give the ClassLoadHelper a chance to Initialize itself, including the oportunity to "steal" the class loader off of the calling thread, which is the thread that is initializing Quartz. Return the class with the given name. Finds a resource with a given name. This method returns null if no resource with this name is found. name of the desired resource a java.net.URL object Finds a resource with a given name. This method returns null if no resource with this name is found. name of the desired resource a java.io.InputStream object Helper class for returning the composite result of trying to recover misfired jobs. Initializes a new instance of the class. if set to true [has more misfired triggers]. The processed misfired trigger count. Gets a value indicating whether this instance has more misfired triggers. true if this instance has more misfired triggers; otherwise, false. Gets the processed misfired trigger count. The processed misfired trigger count. Called by the QuartzScheduler before the is used, in order to give the it a chance to Initialize. Called by the QuartzScheduler to inform the that it should free up all of it's resources because the scheduler is shutting down. Gets the non managed TX connection. Execute the given callback having optionally aquired the given lock. Because CMT assumes that the connection is already part of a managed transaction, it does not attempt to commit or rollback the enclosing transaction. The name of the lock to aquire, for example "TRIGGER_ACCESS". If null, then no lock is aquired, but the txCallback is still executed in a transaction. Callback to execute. Utility class to keep track of both active transaction and connection. Initializes a new instance of the class. The connection. The transaction. Gets or sets the connection. The connection. Gets or sets the transaction. The transaction. is meant to be used in a standalone environment. Both commit and rollback will be handled by this class. Jeffrey Wescott James House Called by the QuartzScheduler before the is used, in order to give the it a chance to Initialize. For , the non-managed TX connection is just the normal connection because it is not CMT. Execute the given callback having optionally aquired the given lock. For , because it manages its own transactions and only has the one datasource, this is the same behavior as . The name of the lock to aquire, for example "TRIGGER_ACCESS". If null, then no lock is aquired, but the lockCallback is still executed in a transaction. Callback to execute. Exception class for when there is a failure obtaining or releasing a resource lock. James House An exception that is thrown to indicate that there has been a failure in the scheduler's underlying persistence mechanism. James House

Create a with the given message.

Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. The class name is null or is zero (0). The info parameter is null.

Create a with the given message and error code.

Create a with the given message and cause.

Create a with the given message, cause and error code.

Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. The class name is null or is zero (0). The info parameter is null. This is a driver delegate for the MySQL ADO.NET driver. Marko Lahma Initializes a new instance of the class. the logger to use during execution the prefix of all table names The instance id. The db provider. Initializes a new instance of the class. The logger. The table prefix. The instance id. The db provider. if set to true [use properties]. Gets the select next trigger to acquire SQL clause. MySQL version with LIMIT support. Exception class for when a driver delegate cannot be found for a given configuration, or lack thereof. Jeffrey Wescott Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. The class name is null or is zero (0). The info parameter is null. This is a driver delegate for the Oracle database. Marko Lahma Initializes a new instance of the class. the logger to use during execution the prefix of all table names The instance id. The db provider. Initializes a new instance of the class. The logger. The table prefix. The instance id. The db provider. if set to true [use properties]. Creates the SQL for select next trigger to acquire. Gets the select next trigger to acquire SQL clause. Oracle version with rownum support. This is a driver delegate for the PostgreSQL ADO.NET driver. Marko Lahma Initializes a new instance of the class. The log. The table prefix. The instance id. The db provider. Initializes a new instance of the class. The log. The table prefix. The instance id. The db provider. if set to true [use properties]. Gets the select next trigger to acquire SQL clause. PostgreSQL version with LIMIT support. Conveys a scheduler-instance state record. James House Gets or sets the checkin interval. The checkin interval. Gets or sets the checkin timestamp. The checkin timestamp. Gets or sets the scheduler instance id. The scheduler instance id. Internal in-memory lock handler for providing thread/resource locking in order to protect resources from being altered by multiple threads at the same time. James House Grants a lock on the identified resource to the calling thread (blocking until it is available). True if the lock was obtained. Release the lock on the identified resource if it is held by the calling thread. Determine whether the calling thread owns a lock on the identified resource. Gets the thread locks. The thread locks. Whether this Semaphore implementation requires a database connection for its lock management operations. This is a driver delegate for the SQLiteDelegate ADO.NET driver. Marko Lahma Initializes a new instance of the class. the logger to use during execution the prefix of all table names The instance id. The db provider. Initializes a new instance of the class. The logger. The table prefix. The instance id. The db provider. if set to true [use properties]. Gets the select next trigger to acquire SQL clause. SQLite version with LIMIT support. A SQL Server specific driver delegate. Marko Lahma Initializes a new instance of the class. the logger to use during execution the prefix of all table names The instance id. The db provider. Initializes a new instance of the class. The logger. The table prefix. The instance id. The db provider. if set to true [use properties]. Creates the SQL for select next trigger to acquire. Gets the select next trigger to acquire SQL clause. SQL Server specific version with TOP functionality Internal database based lock handler for providing thread/resource locking in order to protect resources from being altered by multiple threads at the same time. James House Initializes a new instance of the class. The table prefix. The select with lock SQL. Execute the SQL select for update that will lock the proper database row. Provide thread/resource locking in order to protect resources from being altered by multiple threads at the same time using a db row update. Note: This Semaphore implementation is useful for databases that do not support row locking via "SELECT FOR UPDATE" type syntax, for example Microsoft SQLServer (MSSQL). Initializes a new instance of the class. Execute the SQL that will lock the proper database row. This implementation of the Calendar excludes a set of days of the year. You may use it to exclude bank holidays which are on the same date every year. Juergen Donnerstag This implementation of the Calendar may be used (you don't have to) as a base class for more sophisticated one's. It merely implements the base functionality required by each Calendar. Regarded as base functionality is the treatment of base calendars. Base calendar allow you to chain (stack) as much calendars as you may need. For example to exclude weekends you may use WeeklyCalendar. In order to exclude holidays as well you may define a WeeklyCalendar instance to be the base calendar for HolidayCalendar instance. Juergen Donnerstag James House An interface to be implemented by objects that define spaces of time during which an associated may fire. Calendars do not define actual fire times, but rather are used to limit a from firing on its normal schedule if necessary. Most Calendars include all times by default and allow the user to specify times to exclude. As such, it is often useful to think of Calendars as being used to exclude a block of time, as opposed to include a block of time. (i.e. the schedule "fire every five minutes except on Sundays" could be implemented with a and a which excludes Sundays) James House Juergen Donnerstag Determine whether the given UTC time is 'included' by the Calendar. Determine the next UTC time that is 'included' by the Calendar after the given UTC time. Gets or sets a description for the instance - may be useful for remembering/displaying the purpose of the calendar, though the description has no meaning to Quartz. Set a new base calendar or remove the existing one. Get the base calendar. Initializes a new instance of the class. Initializes a new instance of the class. The base calendar. Initializes a new instance of the class. The time zone. Initializes a new instance of the class. The base calendar. The time zone. checks whether two arrays have the same length and for any given place there are equal elements in both arrays Get the base calendar. Will be null, if not set. Check if date/time represented by timeStamp is included. If included return true. The implementation of BaseCalendar simply calls the base calendars IsTimeIncluded() method if base calendar is set. Determine the next UTC time (in milliseconds) that is 'included' by the Calendar after the given time. Return the original value if timeStamp is included. Return 0 if all days are excluded. Gets or sets the time zone. The time zone. Gets or sets the description given to the instance by its creator (if any). Set a new base calendar or remove the existing one Constructor Constructor The base calendar. Return true, if day is defined to be exluded. Redefine a certain day to be excluded (true) or included (false). Determine whether the given UTC time (in milliseconds) is 'included' by the Calendar.

Note that this Calendar is only has full-day precision.

Determine the next UTC time (in milliseconds) that is 'included' by the Calendar after the given time. Return the original value if timeStampUtc is included. Return 0 if all days are excluded.

Note that this Calendar is only has full-day precision.

Get or the array which defines the exclude-value of each day of month. Setting will redefine the array of days excluded. The array must of size greater or equal 31. This implementation of the Calendar excludes the set of times expressed by a given CronExpression. For example, you could use this calendar to exclude all but business hours (8AM - 5PM) every day using the expression "* * 0-7,18-23 ? * *".

It is important to remember that the cron expression here describes a set of times to be excluded from firing. Whereas the cron expression in CronTrigger describes a set of times that can be included for firing. Thus, if a has a given cron expression and is associated with a with the same expression, the calendar will exclude all the times the trigger includes, and they will cancel each other out.

Aaron Craven
Initializes a new instance of the class. a String representation of the desired cron expression Create a with the given cron expression and . the base calendar for this calendar instance see BaseCalendar for more information on base calendar functionality a String representation of the desired cron expression Create a with the given cron expression and . the base calendar for this calendar instance see BaseCalendar for more information on base calendar functionality a String representation of the desired cron expression Determine whether the given time is 'included' by the Calendar. the time to test a boolean indicating whether the specified time is 'included' by the CronCalendar Determine the next time that is 'included' by the Calendar after the given time. Return the original value if timeStamp is included. Return 0 if all days are excluded. Returns a that represents the current . A that represents the current . Sets the cron expression for the calendar to a new value. The expression. Returns the object representation of the cron expression that defines the dates and times this calendar excludes. This implementation of the Calendar excludes (or includes - see below) a specified time range each day. For example, you could use this calendar to exclude business hours (8AM - 5PM) every day. Each only allows a single time range to be specified, and that time range may not * cross daily boundaries (i.e. you cannot specify a time range from 8PM - 5AM). If the property is (default), the time range defines a range of times in which triggers are not allowed to * fire. If is , the time range is inverted: that is, all times outside the defined time range are excluded.

Note when using , it behaves on the same principals as, for example, WeeklyCalendar defines a set of days that are excluded every week. Likewise, defines a set of times that are excluded every day.

Mike Funk Aaron Craven
Create a with a time range defined by the specified strings and no baseCalendar. and must be in the format "HH:MM[:SS[:mmm]]" where:
  • HH is the hour of the specified time. The hour should be specified using military (24-hour) time and must be in the range 0 to 23.
  • MM is the minute of the specified time and must be in the range 0 to 59.
  • SS is the second of the specified time and must be in the range 0 to 59.
  • mmm is the millisecond of the specified time and must be in the range 0 to 999.
  • items enclosed in brackets ('[', ']') are optional.
  • The time range starting time must be before the time range ending time. Note this means that a time range may not cross daily boundaries (10PM - 2AM)
Create a with a time range defined by the specified strings and the specified baseCalendar. and must be in the format "HH:MM[:SS[:mmm]]" where:
  • HH is the hour of the specified time. The hour should be specified using military (24-hour) time and must be in the range 0 to 23.
  • MM is the minute of the specified time and must be in the range 0 to 59.
  • SS is the second of the specified time and must be in the range 0 to 59.
  • mmm is the millisecond of the specified time and must be in the range 0 to 999.
  • items enclosed in brackets ('[', ']') are optional.
  • The time range starting time must be before the time range ending time. Note this means that a time range may not cross daily boundaries (10PM - 2AM)
The base calendar for this calendar instance see BaseCalendar for more information on base calendar functionality.
Create a with a time range defined by the specified values and no baseCalendar. Values are subject to the following validations:
  • Hours must be in the range 0-23 and are expressed using military (24-hour) time.
  • Minutes must be in the range 0-59
  • Seconds must be in the range 0-59
  • Milliseconds must be in the range 0-999
  • The time range starting time must be before the time range ending time. Note this means that a time range may not cross daily boundaries (10PM - 2AM)
The range starting hour of day. The range starting minute. The range starting second. The range starting millis. The range ending hour of day. The range ending minute. The range ending second. The range ending millis.
Create a with a time range defined by the specified values and the specified . Values are subject to the following validations:
  • Hours must be in the range 0-23 and are expressed using military (24-hour) time.
  • Minutes must be in the range 0-59
  • Seconds must be in the range 0-59
  • Milliseconds must be in the range 0-999
  • The time range starting time must be before the time range ending time. Note this means that a time range may not cross daily boundaries (10PM - 2AM)
The range starting hour of day. The range starting minute. The range starting second. The range starting millis. The range ending hour of day. The range ending minute. The range ending second. The range ending millis.
Create a with a time range defined by the specified s and no baseCalendar. The Calendars are subject to the following considerations:
  • Only the time-of-day fields of the specified Calendars will be used (the date fields will be ignored)
  • The starting time must be before the ending time of the defined time range. Note this means that a time range may not cross daily boundaries (10PM - 2AM). (because only time fields are are used, it is possible for two Calendars to represent a valid time range and rangeStartingCalendar.after(rangeEndingCalendar) == true)
The range starting calendar. The range ending calendar.
Create a with a time range defined by the specified s and the specified . The Calendars are subject to the following considerations:
  • Only the time-of-day fields of the specified Calendars will be used (the date fields will be ignored)
  • The starting time must be before the ending time of the defined time range. Note this means that a time range may not cross daily boundaries (10PM - 2AM). (because only time fields are are used, it is possible for two Calendars to represent a valid time range and rangeStartingCalendarUtc > rangeEndingCalendarUtc == true)
The range starting calendar. The range ending calendar.
Create a with a time range defined by the specified values and no baseCalendar. The values are subject to the following considerations:
  • Only the time-of-day portion of the specified values will be used
  • The starting time must be before the ending time of the defined time range. Note this means that a time range may not cross daily boundaries (10PM - 2AM). (because only time value are are used, it is possible for the two values to represent a valid time range and rangeStartingTime > rangeEndingTime)
The range starting time in millis. The range ending time in millis.
Create a with a time range defined by the specified values and the specified . The values are subject to the following considerations:
  • Only the time-of-day portion of the specified values will be used
  • The starting time must be before the ending time of the defined time range. Note this means that a time range may not cross daily boundaries (10PM - 2AM). (because only time value are are used, it is possible for the two values to represent a valid time range and rangeStartingTime > rangeEndingTime)
The range starting time in millis. The range ending time in millis.
Determine whether the given time is 'included' by the Calendar. Determine the next time (in milliseconds) that is 'included' by the Calendar after the given time. Return the original value if timeStamp is included. Return 0 if all days are excluded. Returns the start time of the time range of the day specified in . a DateTime representing the start time of the time range for the specified date. Returns the end time of the time range of the day specified in A DateTime representing the end time of the time range for the specified date. Returns a that represents the current . A that represents the current . Sets the time range for the to the times represented in the specified Strings. The range starting time string. The range ending time string. Sets the time range for the to the times represented in the specified values. The range starting hour of day. The range starting minute. The range starting second. The range starting millis. The range ending hour of day. The range ending minute. The range ending second. The range ending millis. Sets the time range for the to the times represented in the specified s. The range starting calendar. The range ending calendar. Sets the time range for the to the times represented in the specified values. The range starting time. The range ending time. Gets the start of day, practically zeroes time part. The time. Gets the end of day, pratically sets time parts to maximum allowed values. The time. Checks the specified values for validity as a set of time values. The hour of day. The minute. The second. The millis. Indicates whether the time range represents an inverted time range (see class description). true if invert time range; otherwise, false. This implementation of the Calendar stores a list of holidays (full days that are excluded from scheduling). The implementation DOES take the year into consideration, so if you want to exclude July 4th for the next 10 years, you need to add 10 entries to the exclude list. Sharada Jambula Juergen Donnerstag Initializes a new instance of the class. Initializes a new instance of the class. The base calendar. Determine whether the given time (in milliseconds) is 'included' by the Calendar.

Note that this Calendar is only has full-day precision.

Determine the next time (in milliseconds) that is 'included' by the Calendar after the given time.

Note that this Calendar is only has full-day precision.

Add the given Date to the list of excluded days. Only the month, day and year of the returned dates are significant. Removes the excluded date. The date to remove. Returns a of Dates representing the excluded days. Only the month, day and year of the returned dates are significant. This implementation of the Calendar excludes a set of days of the month. You may use it to exclude every 1. of each month for example. But you may define any day of a month. Juergen Donnerstag Initializes a new instance of the class. Constructor The base calendar. Initialize internal variables Return true, if mday is defined to be exluded. Redefine a certain day of the month to be excluded (true) or included (false). Check if all days are excluded. That is no day is included. boolean Determine whether the given time (in milliseconds) is 'included' by the Calendar.

Note that this Calendar is only has full-day precision.

Determine the next time (in milliseconds) that is 'included' by the Calendar after the given time. Return the original value if timeStamp is included. Return DateTime.MinValue if all days are excluded.

Note that this Calendar is only has full-day precision.

Get or set the array which defines the exclude-value of each day of month Setting will redefine the array of days excluded. The array must of size greater or equal 31. This implementation of the Calendar excludes a set of days of the week. You may use it to exclude weekends for example. But you may define any day of the week. Juergen Donnerstag Initializes a new instance of the class. Initializes a new instance of the class. The base calendar. Initialize internal variables Return true, if wday is defined to be exluded. E. g. saturday and sunday. Redefine a certain day of the week to be excluded (true) or included (false). Use java.util.Calendar's constants like MONDAY to determine the wday. Check if all week ays are excluded. That is no day is included. Determine whether the given time (in milliseconds) is 'included' by the Calendar.

Note that this Calendar is only has full-day precision.

Determine the next time (in milliseconds) that is 'included' by the Calendar after the given time. Return the original value if timeStamp is included. Return DateTime.MinValue if all days are excluded.

Note that this Calendar is only has full-day precision.

Get the array with the week days. Setting will redefine the array of days excluded. The array must of size greater or equal 8. java.util.Calendar's constants like MONDAY should be used as index. A value of true is regarded as: exclude it. A singleton implementation of . Here are some examples of using this class:

To create a scheduler that does not write anything to the database (is not persistent), you can call :

            DirectSchedulerFactory.Instance.CreateVolatileScheduler(10); // 10 threads 
            // don't forget to start the scheduler: 
            DirectSchedulerFactory.Instance.GetScheduler().Start();
            

Several create methods are provided for convenience. All create methods eventually end up calling the create method with all the parameters:

            public void createScheduler(String schedulerName, string schedulerInstanceId, ThreadPool threadPool, JobStore jobStore, string rmiRegistryHost, int rmiRegistryPort)
            

Here is an example of using this method:

            // create the thread pool 
            SimpleThreadPool threadPool = new SimpleThreadPool(maxThreads, Thread.NORM_PRIORITY); 
            threadPool.Initialize(); 
            // create the job store 
            JobStore jobStore = new RAMJobStore(); 
            jobStore.Initialize();
            
            DirectSchedulerFactory.Instance.CreateScheduler("My Quartz Scheduler", "My Instance", threadPool, jobStore, "localhost", 1099); 
            // don't forget to start the scheduler: 
            DirectSchedulerFactory.Instance.GetScheduler("My Quartz Scheduler", "My Instance").start();
            
> Mohammad Rezaei James House
Provides a mechanism for obtaining client-usable handles to instances. James House Returns a client-usable handle to a . Returns a handle to the Scheduler with the given name, if it exists. Returns handles to all known Schedulers (made by any SchedulerFactory within this app domain.). Initializes a new instance of the class. Creates an in memory job store () The thread priority is set to Thread.NORM_PRIORITY The number of threads in the thread pool Creates a proxy to a remote scheduler. This scheduler can be retrieved via . SchedulerException Same as , with the addition of specifying the scheduler name and instance ID. This scheduler can only be retrieved via . The name for the scheduler. The instance ID for the scheduler. SchedulerException Creates a scheduler using the specified thread pool and job store. This scheduler can be retrieved via DirectSchedulerFactory#GetScheduler() The thread pool for executing jobs The type of job store SchedulerException if initialization failed Same as DirectSchedulerFactory#createScheduler(ThreadPool threadPool, JobStore jobStore), with the addition of specifying the scheduler name and instance ID. This scheduler can only be retrieved via DirectSchedulerFactory#getScheduler(String) The name for the scheduler. The instance ID for the scheduler. The thread pool for executing jobs The type of job store Creates a scheduler using the specified thread pool and job store and binds it to RMI. The name for the scheduler. The instance ID for the scheduler. The thread pool for executing jobs The type of job store The idle wait time. You can specify "-1" for the default value, which is currently 30000 ms. The db failure retry interval. Creates a scheduler using the specified thread pool and job store and binds it to RMI. The name for the scheduler. The instance ID for the scheduler. The thread pool for executing jobs The type of job store The idle wait time. You can specify TimeSpan.Zero for the default value, which is currently 30000 ms. The db failure retry interval. Returns a handle to the Scheduler produced by this factory.

you must call createRemoteScheduler or createScheduler methods before calling getScheduler()

SchedulerException
Returns a handle to the Scheduler with the given name, if it exists. Gets the log. The log. Gets the instance. The instance.

Returns a handle to all known Schedulers (made by any StdSchedulerFactory instance.).

An implementation of the interface that remotely proxies all method calls to the equivalent call on a given instance, via remoting or similar technology. James House This is the main interface of a Quartz Scheduler. A maintains a registry of s and s. Once registered, the is responsible for executing s when their associated s fire (when their scheduled time arrives). instances are produced by a . A scheduler that has already been created/initialized can be found and used through the same factory that produced it. After a has been created, it is in "stand-by" mode, and must have its method called before it will fire any s. s are to be created by the 'client program', by defining a class that implements the interface. objects are then created (also by the client) to define a individual instances of the . instances can then be registered with the via the %IScheduler.ScheduleJob(JobDetail, Trigger)% or %IScheduler.AddJob(JobDetail, bool)% method. s can then be defined to fire individual instances based on given schedules. s are most useful for one-time firings, or firing at an exact moment in time, with N repeats with a given delay between them. s allow scheduling based on time of day, day of week, day of month, and month of year. s and s have a name and group associated with them, which should uniquely identify them within a single . The 'group' feature may be useful for creating logical groupings or categorizations of s and s. If you don't have need for assigning a group to a given s of s, then you can use the constant defined on this interface. Stored s can also be 'manually' triggered through the use of the %IScheduler.TriggerJob(string, string)% function. Client programs may also be interested in the 'listener' interfaces that are available from Quartz. The interface provides notifications of executions. The interface provides notifications of firings. The interface provides notifications of events and errors. The setup/configuration of a instance is very customizable. Please consult the documentation distributed with Quartz. returns true if the given JobGroup is paused returns true if the given TriggerGroup is paused Get a object describiing the settings and capabilities of the scheduler instance. Note that the data returned is an 'instantaneous' snap-shot, and that as soon as it's returned, the meta data values may be different. Return a list of objects that represent all currently executing Jobs in this Scheduler instance.

This method is not cluster aware. That is, it will only return Jobs currently executing in this Scheduler instance, not across the entire cluster.

Note that the list returned is an 'instantaneous' snap-shot, and that as soon as it's returned, the true list of executing jobs may be different. Also please read the doc associated with - especially if you're using remoting.

Get the names of all groups that are paused. Get the global that has the given name. Global job listener's name Get the global that has the given name. Global trigger listener's name Starts the 's threads that fire s. When a scheduler is first created it is in "stand-by" mode, and will not fire triggers. The scheduler can also be put into stand-by mode by calling the method. The misfire/recovery process will be started, if it is the initial call to this method on this scheduler instance. Calls after the indicated delay. (This call does not block). This can be useful within applications that have initializers that create the scheduler immediately, before the resources needed by the executing jobs have been fully initialized. Temporarily halts the 's firing of s.

When is called (to bring the scheduler out of stand-by mode), trigger misfire instructions will NOT be applied during the execution of the method - any misfires will be detected immediately afterward (by the 's normal process).

The scheduler is not destroyed, and can be re-started at any time.

Halts the 's firing of s, and cleans up all resources associated with the Scheduler. Equivalent to . The scheduler cannot be re-started. Halts the 's firing of s, and cleans up all resources associated with the Scheduler. The scheduler cannot be re-started. if the scheduler will not allow this method to return until all currently executing jobs have completed. Add the given to the Scheduler, and associate the given with it. If the given Trigger does not reference any , then it will be set to reference the Job passed with it into this method. Schedule the given with the identified by the 's settings. Remove the indicated from the scheduler. Remove (delete) the with the given name, and store the new given one - which must be associated with the same job (the new trigger must have the job name & group specified) - however, the new trigger need not have the same name as the old trigger. The name of the to be replaced. The group name of the to be replaced. The new to be stored. if a with the given name and group was not found and removed from the store, otherwise the first fire time of the newly scheduled trigger. Add the given to the Scheduler - with no associated . The will be 'dormant' until it is scheduled with a , or is called for it. The must by definition be 'durable', if it is not, SchedulerException will be thrown. Delete the identified from the Scheduler - and any associated s. true if the Job was found and deleted. Trigger the identified (Execute it now) - the generated trigger will be non-volatile. Trigger the identified (Execute it now) - the generated trigger will be volatile. Trigger the identified (Execute it now) - the generated trigger will be non-volatile. the name of the Job to trigger the group name of the Job to trigger the (possibly ) JobDataMap to be associated with the trigger that fires the job immediately. Trigger the identified (Execute it now) - the generated trigger will be volatile. the name of the Job to trigger the group name of the Job to trigger the (possibly ) JobDataMap to be associated with the trigger that fires the job immediately. Pause the with the given name - by pausing all of its current s. Pause all of the s in the given group - by pausing all of their s. The Scheduler will "remember" that the group is paused, and impose the pause on any new jobs that are added to the group while the group is paused. Pause the with the given name. Pause all of the s in the given group. The Scheduler will "remember" that the group is paused, and impose the pause on any new triggers that are added to the group while the group is paused. Resume (un-pause) the with the given name. If any of the 's s missed one or more fire-times, then the 's misfire instruction will be applied. Resume (un-pause) all of the s in the given group. If any of the s had s that missed one or more fire-times, then the 's misfire instruction will be applied. Resume (un-pause) the with the given name. If the missed one or more fire-times, then the 's misfire instruction will be applied. Resume (un-pause) all of the s in the given group. If any missed one or more fire-times, then the 's misfire instruction will be applied. Pause all triggers - similar to calling on every group, however, after using this method must be called to clear the scheduler's state of 'remembering' that all new triggers will be paused as they are added. When is called (to un-pause), trigger misfire instructions WILL be applied. Resume (un-pause) all triggers - similar to calling on every group. If any missed one or more fire-times, then the 's misfire instruction will be applied. Get the names of all the s in the given group. Get all s that are associated with the identified . Get the names of all the s in the given group. Get the for the instance with the given name and group. Get the instance with the given name and group. Get the current state of the identified . Add (register) the given to the Scheduler. Name of the calendar. The calendar. if set to true [replace]. whether or not to update existing triggers that referenced the already existing calendar so that they are 'correct' based on the new trigger. Delete the identified from the Scheduler. Name of the calendar. true if the Calendar was found and deleted. Get the instance with the given name. Get the names of all registered . An array of calendar names. Request the interruption, within this Scheduler instance, of all currently executing instances of the identified , which must be an implementor of the interface.

If more than one instance of the identified job is currently executing, the method will be called on each instance. However, there is a limitation that in the case that on one instances throws an exception, all remaining instances (that have not yet been interrupted) will not have their method called.

If you wish to interrupt a specific instance of a job (when more than one is executing) you can do so by calling to obtain a handle to the job instance, and then invoke on it yourself.

This method is not cluster aware. That is, it will only interrupt instances of the identified InterruptableJob currently executing in this Scheduler instance, not across the entire cluster.

true is at least one instance of the identified job was found and interrupted.
Add the given to the 's global list. Listeners in the 'global' list receive notification of execution events for ALL s. Add the given to the 's list, of registered s. Remove the given from the 's list of global listeners. true if the identifed listener was found in the list, and removed. Remove the identifed from the 's list of global listeners. Global job listener's name true if the identifed listener was found in the list, and removed Remove the identifed from the 's list of registered listeners. true if the identifed listener was found in the list, and removed. Get the non-global that has the given name. Add the given to the 's global list. Listeners in the 'global' list receive notification of execution events for ALL s. Add the given to the 's list, of registered s. Remove the given from the 's list of global listeners. true if the identifed listener was found in the list, and removed. Remove the identifed from the 's list of global listeners. The name. true if the identifed listener was found in the list, and removed. Remove the identifed from the 's list of registered listeners. true if the identifed listener was found in the list, and removed. Get the non-global that has the given name. Register the given with the Remove the given from the . true if the identifed listener was found in the list, and removed. Returns the name of the . Returns the instance Id of the . Returns the of the . Reports whether the is in stand-by mode. Reports whether the has been Shutdown. Set the that will be responsible for producing instances of classes. JobFactories may be of use to those wishing to have their application produce instances via some special mechanism, such as to give the opertunity for dependency injection. Get the names of all known groups. Get the names of all known groups. Get the names of all registered s. Get a List containing all of the s in the 'sglobal list. Get a Set containing the names of all the non-global s registered with the . Get a List containing all of the s in the 'sglobal list. Get a Set containing the names of all the non-global s registered with the . Get a List containing all of the s registered with the . Whether the scheduler has been started. Note: This only reflects whether has ever been called on this Scheduler, so it will return even if the is currently in standby mode or has been since shutdown. Construct a instance to proxy the given RemoteableQuartzScheduler instance, and with the given . returns true if the given JobGroup is paused returns true if the given TriggerGroup is paused Get a object describiing the settings and capabilities of the scheduler instance.

Note that the data returned is an 'instantaneous' snap-shot, and that as soon as it's returned, the meta data values may be different.

Calls the equivalent method on the 'proxied' . Get the global that has the given name. Get the global that has the given name. Get the names of all groups that are paused. Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Get the names of all registered . Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Remove the identifed from the 's list of global listeners. true if the identifed listener was found in the list, and removed Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Remove the identifed from the 's list of global listeners. The name. true if the identifed listener was found in the list, and removed. Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Returns the name of the . Returns the instance Id of the . Gets or sets the remote scheduler address. The remote scheduler address. Returns the of the . Calls the equivalent method on the 'proxied' . Gets a value indicating whether this instance is paused. true if this instance is paused; otherwise, false. Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equialent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Set the that will be responsible for producing instances of classes.

JobFactories may be of use to those wishing to have their application produce instances via some special mechanism, such as to give the opertunity for dependency injection.

SchedulerException
Whether the scheduler has been started. Note: This only reflects whether has ever been called on this Scheduler, so it will return even if the is currently in standby mode or has been since shutdown. Holds references to Scheduler instances - ensuring uniqueness, and preventing garbage collection, and allowing 'global' lookups. James House Marko Lahma (.NET) Binds the specified sched. The sched. Removes the specified sched name. Name of the sched. Lookups the specified sched name. Name of the sched. Lookups all. Gets the singleton instance. The instance. Responsible for creating the instances of to be used within the instance.

This implementation does not re-use any objects, it simply makes a new JobRunShell each time is called.

James House
Initialize the factory, providing a handle to the that should be made available within the and the s within it, and a handle to the that the shell will use in its own operations with the . Called by the to obtain instances of . Called by the to return instances of . An implementation of the interface that directly proxies all method calls to the equivalent call on a given instance. James House returns true if the given JobGroup is paused returns true if the given TriggerGroup is paused Get a object describiing the settings and capabilities of the scheduler instance.

Note that the data returned is an 'instantaneous' snap-shot, and that as soon as it's returned, the meta data values may be different.

Calls the equivalent method on the 'proxied' . Get the global that has the given name. Get the global that has the given name. Construct a instance to proxy the given instance, and with the given . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Get the names of all registered . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Remove the identifed from the 's list of global listeners. true if the identifed listener was found in the list, and removed Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Remove the identifed from the 's list of global listeners. The name. true if the identifed listener was found in the list, and removed. Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Request the interruption, within this Scheduler instance, of all currently executing instances of the identified , which must be an implementor of the interface.

If more than one instance of the identified job is currently executing, the method will be called on each instance. However, there is a limitation that in the case that on one instances throws an exception, all remaining instances (that have not yet been interrupted) will not have their method called.

If you wish to interrupt a specific instance of a job (when more than one is executing) you can do so by calling to obtain a handle to the job instance, and then invoke on it yourself.

This method is not cluster aware. That is, it will only interrupt instances of the identified InterruptableJob currently executing in this Scheduler instance, not across the entire cluster.

true is at least one instance of the identified job was found and interrupted. UnableToInterruptJobException if the job does not implement
Returns the name of the . Returns the instance Id of the . Returns the of the . Whether the scheduler has been started. Note: This only reflects whether has ever been called on this Scheduler, so it will return even if the is currently in standby mode or has been since shutdown. Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' , passing the associated with this instance. Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . An implementation of that does all of it's work of creating a instance based on the contenents of a properties file.

By default a properties are loaded from App.config's quartz section. If that fails, then the "quartz.properties" file located (as a embedded resource) in Quartz.dll is loaded. If you wish to use a file other than these defaults, you must define the system property 'quartz.properties' to point to the file you want.

See the sample properties that are distributed with Quartz for information about the various settings available within the file.

Alternativly, you can explicitly Initialize the factory by calling one of the methods before calling .

Instances of the specified , , classes will be created by name, and then any additional properties specified for them in the config file will be set on the instance by calling an equivalent 'set' method. For example if the properties file contains the property 'quartz.jobStore. myProp = 10' then after the JobStore class has been instantiated, the property 'MyProp' will be set with the value. Type conversion to primitive CLR types (int, long, float, double, boolean, enum and string) are performed before calling the property's setter method.

James House Anthony Eden Mohammad Rezaei Marko Lahma (.NET)
Initializes a new instance of the class. Initializes a new instance of the class. The props. Initialize the with the contenents of a Properties file.

By default a properties file named "quartz.properties" is loaded from the 'current working directory'. If that fails, then the "quartz.properties" file located (as a resource) in the org/quartz package is loaded. If you wish to use a file other than these defaults, you must define the system property 'quartz.properties' to point to the file you want.

Creates a new name value collection and overrides its values with system values (environment variables). The base properties to override. A new NameValueCollection instance. Initialize the with the contenents of the given Properties object. Returns a handle to the Scheduler produced by this factory. If one of the methods has not be previously called, then the default (no-arg) method will be called by this method.

Returns a handle to the Scheduler with the given name, if it exists (if it has already been instantiated).

Returns a handle to the default Scheduler, creating it if it does not yet exist.

Returns a handle to all known Schedulers (made by any StdSchedulerFactory instance.).

Inspects a file and compares whether it's "last modified date" has changed since the last time it was inspected. If the file has been updated, the job invokes a "call-back" method on an identified that can be found in the . James House A marker interface for s that wish to have their state maintained between executions. instances follow slightly different rules from regular instances. The key difference is that their associated is re-persisted after every execution of the job, thus preserving state for the next execution. The other difference is that stateful jobs are not allowed to Execute concurrently, which means new triggers that occur before the completion of the method will be delayed. James House Marko Lahma (.NET) The interface to be implemented by classes which represent a 'job' to be performed. Instances of this interface must have a no-argument constructor. provides a mechanism for 'instance member data' that may be required by some implementations of this interface. James House Marko Lahma (.NET) Called by the when a fires that is associated with the . The implementation may wish to set a result object on the JobExecutionContext before this method exits. The result itself is meaningless to Quartz, but may be informative to s or s that are watching the job's execution. The execution context. Initializes a new instance of the class. Called by the when a fires that is associated with the .

The implementation may wish to set a result object on the JobExecutionContext before this method exits. The result itself is meaningless to Quartz, but may be informative to s or s that are watching the job's execution.

The execution context.
Gets the last modified date. Name of the file. Gets the log. The log. Interface for objects wishing to receive a 'call-back' from a . James House Ïnforms that certain file has been updated. Name of the file. Built in job for executing native executables in a separate process. Matthew Payne James House Steinar Overbeck Cook Required parameter that specifies the name of the command (executable) to be ran. Optional parameter that specifies the parameters to be passed to the executed command. Optional parameter (value should be 'true' or 'false') that specifies whether the job should wait for the execution of the native process to complete before it completes.

Defaults to .

Optional parameter (value should be 'true' or 'false') that specifies whether the spawned process's stdout and stderr streams should be consumed. If the process creates output, it is possible that it might 'hang' if the streams are not consumed.

Defaults to .

Optional parameter that specifies the workling directory to be used by the executed command. Initializes a new instance of the class. Called by the when a fires that is associated with the .

The implementation may wish to set a result object on the JobExecutionContext before this method exits. The result itself is meaningless to Quartz, but may be informative to s or s that are watching the job's execution.

Gets the log. The log. Consumes data from the given input stream until EOF and prints the data to stdout cooste James House Initializes a new instance of the class. The enclosing instance. The input stream. The type. Runs this object as a separate thread, printing the contents of the input stream supplied during instantiation, to either Console. or stderr An implementation of Job, that does absolutely nothing - useful for system which only wish to use s and s, rather than writing Jobs that perform work. James House Do nothing. A Job which sends an e-mail with the configured content to the configured recipient. James House Marko Lahma (.NET) The host name of the smtp server. REQUIRED. The e-mail address to send the mail to. REQUIRED. The e-mail address to cc the mail to. Optional. The e-mail address to claim the mail is from. REQUIRED. The e-mail address the message should say to reply to. Optional. The subject to place on the e-mail. REQUIRED. The e-mail message body. REQUIRED. Executes the job. The job execution context. Holds a List of references to SchedulerListener instances and broadcasts all events to them (in order). This may be more convenient than registering all of the listeners directly with the Scheduler, and provides the flexibility of easily changing which listeners get notified. James House Construct an instance with the given List of listeners. The initial List of SchedulerListeners to broadcast to. Holds a List of references to JobListener instances and broadcasts all events to them (in order) - if the event is not excluded via filtering (read on).

The broadcasting behavior of this listener to delegate listeners may be more convenient than registering all of the listeners directly with the Trigger, and provides the flexibility of easily changing which listeners get notified.

You may also register a number of Regular Expression patterns to match the events against. If one or more patterns are registered, the broadcast will only take place if the event applies to a job who's name/group matches one or more of the patterns.

James House
Construct an instance with the given name. (Remember to add some delegate listeners!) @param name the name of this instance Construct an instance with the given name, and List of listeners. @param name the name of this instance @param listeners the initial List of JobListeners to broadcast to. If one or more name patterns are specified, only events relating to jobs who's name matches the given regular expression pattern will be dispatched to the delegate listeners. If one or more group patterns are specified, only events relating to jobs who's group matches the given regular expression pattern will be dispatched to the delegate listeners. Holds a List of references to TriggerListener instances and broadcasts all events to them (in order) - if the event is not excluded via filtering (read on).

The broadcasting behavior of this listener to delegate listeners may be more convenient than registering all of the listeners directly with the Trigger, and provides the flexibility of easily changing which listeners get notified.

You may also register a number of Regular Expression patterns to match the events against. If one or more patterns are registered, the broadcast will only take place if the event applies to a trigger who's name/group matches one or more of the patterns.

James House
The interface to be implemented by classes that want to be informed when a fires. In general, applications that use a will not have use for this mechanism. James House Called by the when a has fired, and it's associated is about to be executed.

It is called before the method of this interface.

The that has fired. The that will be passed to the 's method.
Called by the when a has fired, and it's associated is about to be executed.

It is called after the method of this interface.

The that has fired. The that will be passed to the 's method. Returns true if job execution should be vetoed, false otherwise.
Called by the when a has misfired.

Consideration should be given to how much time is spent in this method, as it will affect all triggers that are misfiring. If you have lots of triggers misfiring at once, it could be an issue it this method does a lot.

The that has misfired.
Called by the when a has fired, it's associated has been executed, and it's method has been called. The that was fired. The that was passed to the 's method. The result of the call on the 's method. Get the name of the . Construct an instance with the given name. (Remember to add some delegate listeners!) the name of this instance Construct an instance with the given name, and List of listeners. the name of this instance the initial List of TriggerListeners to broadcast to If one or more name patterns are specified, only events relating to triggers who's name matches the given regular expression pattern will be dispatched to the delegate listeners. If one or more group patterns are specified, only events relating to triggers who's group matches the given regular expression pattern will be dispatched to the delegate listeners. Keeps a collection of mappings of which Job to trigger after the completion of a given job. If this listener is notified of a job completing that has a mapping, then it will then attempt to trigger the follow-up job. This achieves "job chaining", or a "poor man's workflow".

Generally an instance of this listener would be registered as a global job listener, rather than being registered directly to a given job.

If for some reason there is a failure creating the trigger for the follow-up job (which would generally only be caused by a rare serious failure in the system, or the non-existence of the follow-up job), an error messsage is logged, but no other action is taken. If you need more rigorous handling of the error, consider scheduling the triggering of the flow-up job within your job itself.

James House
A helpful abstract base class for implementors of .

The methods in this class are empty so you only need to override the subset for the events you care about.

You are required to implement to return the unique name of your .

Initializes a new instance of the class. Called by the when a is about to be executed (an associated has occured).

This method will not be invoked if the execution of the Job was vetoed by a .

Called by the when a was about to be executed (an associated has occured), but a vetoed it's execution. Called by the after a has been executed, and be for the associated 's method has been called. Get the for this class's category. This should be used by subclasses for logging. Get the name of the . Construct an instance with the given name. The name of this instance. Add a chain mapping - when the Job identified by the first key completes the job identified by the second key will be triggered. a Key with the name and group of the first job a Key with the name and group of the follow-up job A helpful abstract base class for implementors of .

The methods in this class are empty so you only need to override the subset for the events you care about.

You are required to implement to return the unique name of your .

Get the for this class's category. This should be used by subclasses for logging. Get the name of the . Logs a history of all job executions (and execution vetos) via common logging.

The logged message is customizable by setting one of the following message properties to a string that conforms to the syntax of .

JobToBeFiredMessage - available message data are:
Element Data Type Description
0 String The Job's Name.
1 String The Job's Group.
2 Date The current time.
3 String The Trigger's name.
4 String The Triggers's group.
5 Date The scheduled fire time.
6 Date The next scheduled fire time.
7 Integer The re-fire count from the JobExecutionContext.
The default message text is "Job {1}.{0} fired (by trigger {4}.{3}) at: {2, date, HH:mm:ss MM/dd/yyyy"

JobSuccessMessage - available message data are:
Element Data Type Description
0 String The Job's Name.
1 String The Job's Group.
2 Date The current time.
3 String The Trigger's name.
4 String The Triggers's group.
5 Date The scheduled fire time.
6 Date The next scheduled fire time.
7 Integer The re-fire count from the JobExecutionContext.
8 Object The string value (toString() having been called) of the result (if any) that the Job set on the JobExecutionContext, with on it. "NULL" if no result was set.
The default message text is "Job {1}.{0} execution complete at {2, date, HH:mm:ss MM/dd/yyyy} and reports: {8"

JobFailedMessage - available message data are:
Element Data Type Description
0 String The Job's Name.
1 String The Job's Group.
2 Date The current time.
3 String The Trigger's name.
4 String The Triggers's group.
5 Date The scheduled fire time.
6 Date The next scheduled fire time.
7 Integer The re-fire count from the JobExecutionContext.
8 String The message from the thrown JobExecution Exception.
The default message text is "Job {1}.{0} execution failed at {2, date, HH:mm:ss MM/dd/yyyy} and reports: {8"

JobWasVetoedMessage - available message data are:
Element Data Type Description
0 String The Job's Name.
1 String The Job's Group.
2 Date The current time.
3 String The Trigger's name.
4 String The Triggers's group.
5 Date The scheduled fire time.
6 Date The next scheduled fire time.
7 Integer The re-fire count from the JobExecutionContext.
The default message text is "Job {1}.{0} was vetoed. It was to be fired (by trigger {4}.{3}) at: {2, date, HH:mm:ss MM/dd/yyyy"

Provides an interface for a class to become a "plugin" to Quartz. Plugins can do virtually anything you wish, though the most interesting ones will obviously interact with the scheduler in some way - either actively: by invoking actions on the scheduler, or passively: by being a , , and/or .

If you use to Initialize your Scheduler, it can also create and Initialize your plugins - look at the configuration docs for details.

If you need direct access your plugin, you can have it explicitly put a reference to itself in the 's as part of its method.

James House
Called during creation of the in order to give the a chance to Initialize. At this point, the Scheduler's is not yet

If you need direct access your plugin, you can have it explicitly put a reference to itself in the 's as part of its method.

The name by which the plugin is identified. The scheduler to which the plugin is registered.
Called when the associated is started, in order to let the plug-in know it can now make calls into the scheduler if it needs to. Called in order to inform the that it should free up all of it's resources because the scheduler is shutting down. Called during creation of the in order to give the a chance to Initialize. Called when the associated is started, in order to let the plug-in know it can now make calls into the scheduler if it needs to. Called in order to inform the that it should free up all of it's resources because the scheduler is shutting down. Called by the when a is about to be executed (an associated has occurred). This method will not be invoked if the execution of the Job was vetoed by a . Called by the after a has been executed, and be for the associated 's method has been called. Called by the when a was about to be executed (an associated has occured), but a vetoed it's execution. Logger instance to use. Defaults to common logging. Get or sets the message that is logged when a Job successfully completes its execution. Get or sets the message that is logged when a Job fails its execution. Gets or sets the message that is logged when a Job is about to Execute. Gets or sets the message that is logged when a Job execution is vetoed by a trigger listener. Get the name of the . Logs a history of all trigger firings via the Jakarta Commons-Logging framework.

The logged message is customizable by setting one of the following message properties to a string that conforms to the syntax of .

TriggerFiredMessage - available message data are:
Element Data Type Description
0 String The Trigger's Name.
1 String The Trigger's Group.
2 Date The scheduled fire time.
3 Date The next scheduled fire time.
4 Date The actual fire time.
5 String The Job's name.
6 String The Job's group.
7 Integer The re-fire count from the JobExecutionContext.
The default message text is "Trigger {1}.{0} fired job {6}.{5} at: {4, date, HH:mm:ss MM/dd/yyyy"

TriggerMisfiredMessage - available message data are:
Element Data Type Description
0 String The Trigger's Name.
1 String The Trigger's Group.
2 Date The scheduled fire time.
3 Date The next scheduled fire time.
4 Date The actual fire time. (the time the misfire was detected/handled)
5 String The Job's name.
6 String The Job's group.
The default message text is "Trigger {1}.{0} misfired job {6}.{5} at: {4, date, HH:mm:ss MM/dd/yyyy}. Should have fired at: {3, date, HH:mm:ss MM/dd/yyyy"

TriggerCompleteMessage - available message data are:
Element Data Type Description
0 String The Trigger's Name.
1 String The Trigger's Group.
2 Date The scheduled fire time.
3 Date The next scheduled fire time.
4 Date The job completion time.
5 String The Job's name.
6 String The Job's group.
7 Integer The re-fire count from the JobExecutionContext.
8 Integer The trigger's resulting instruction code.
9 String A human-readable translation of the trigger's resulting instruction code.
The default message text is "Trigger {1}.{0} completed firing job {6}.{5} at {4, date, HH:mm:ss MM/dd/yyyy} with resulting trigger instruction code: {9"

James House
Called during creation of the in order to give the a chance to Initialize. Called when the associated is started, in order to let the plug-in know it can now make calls into the scheduler if it needs to. Called in order to inform the that it should free up all of it's resources because the scheduler is shutting down. Called by the when a has fired, and it's associated is about to be executed.

It is called before the method of this interface.

The that has fired. The that will be passed to the 's method.
Called by the when a has misfired.

Consideration should be given to how much time is spent in this method, as it will affect all triggers that are misfiring. If you have lots of triggers misfiring at once, it could be an issue it this method does a lot.

The that has misfired.
Called by the when a has fired, it's associated has been executed, and it's method has been called. The that was fired. The that was passed to the 's method. The result of the call on the 's method. Called by the when a has fired, and it's associated is about to be executed.

It is called after the method of this interface.

The that has fired. The that will be passed to the 's method.
Logger instance to use. Defaults to common logging. Get or set the message that is printed upon the completion of a trigger's firing. Get or set the message that is printed upon a trigger's firing. Get or set the message that is printed upon a trigger's mis-firing. Get the name of the . This plugin catches the event of the VM terminating (such as upon a CRTL-C) and tells the scheuler to Shutdown. James House Called during creation of the in order to give the a chance to Initialize. Called when the associated is started, in order to let the plug-in know it can now make calls into the scheduler if it needs to. Called in order to inform the that it should free up all of it's resources because the scheduler is shutting down. Determine whether or not the plug-in is configured to cause a clean Shutdown of the scheduler.

The default value is .

Attribute to use with public properties that can be set with Quartz configuration. Attribute can be used to advice parsing to use correct type of time span (milliseconds, seconds, minutes, hours) as it may depend on property. Initializes a new instance of the class. The rule. Gets the rule. The rule. Possible parse rules for s. This plugin loads XML file(s) to add jobs and schedule them with triggers as the scheduler is initialized, and can optionally periodically scan the file for changes. The periodically scanning of files for changes is not currently supported in a clustered environment. James House Pierre Awaragi Initializes a new instance of the class. Called during creation of the in order to give the a chance to initialize. The name. The scheduler. SchedulerConfigException Called when the associated is started, in order to let the plug-in know it can now make calls into the scheduler if it needs to. Helper method for generating unique job/trigger name for the file scanning jobs (one per FileJob). The unique names are saved in jobTriggerNameSet. Called in order to inform the that it should free up all of it's resources because the scheduler is shutting down. Gets the log. The log. Comma separated list of file names (with paths) to the XML files that should be read. Whether or not jobs defined in the XML file should be overwrite existing jobs with the same name. The interval at which to scan for changes to the file. If the file has been changed, it is re-loaded and parsed. The default value for the interval is 0, which disables scanning. Whether or not initialization of the plugin should fail (throw an exception) if the file cannot be found. Default is . Whether or not the XML should be validated. Default is . Whether or not the XML schema should be validated. Default is . A uses all of the types that are found in this package in its attempts to load a class, when one scheme is found to work, it is promoted to the scheme that will be used first the next time a class is loaded (in order to improve perfomance). This approach is used because of the wide variance in class loader behavior between the various environments in which Quartz runs (e.g. disparate application servers, stand-alone, mobile devices, etc.). Because of this disparity, Quartz ran into difficulty with a one class-load style fits-all design. Thus, this class loader finds the approach that works, then 'remembers' it. James House Called to give the ClassLoadHelper a chance to Initialize itself, including the oportunity to "steal" the class loader off of the calling thread, which is the thread that is initializing Quartz. Return the class with the given name. Finds a resource with a given name. This method returns null if no resource with this name is found. name of the desired resource a java.net.URL object Finds a resource with a given name. This method returns null if no resource with this name is found. name of the desired resource a java.io.InputStream object that names the scheduler instance using just the machine hostname.

This class is useful when you know that your scheduler instance will be the only one running on a particular machine. Each time the scheduler is restarted, it will get the same instance id as long as the machine is not renamed.

An IInstanceIdGenerator is responsible for generating the clusterwide unique instance id for a nodde.

This interface may be of use to those wishing to have specific control over the mechanism by which the instances in their application are named.

Generate the instance id for a The clusterwide unique instance id. Generate the instance id for a The clusterwide unique instance id. A that uses either the loader of it's own class. James House Called to give the ClassLoadHelper a chance to Initialize itself, including the oportunity to "steal" the class loader off of the calling thread, which is the thread that is initializing Quartz. Return the class with the given name. Finds a resource with a given name. This method returns null if no resource with this name is found. name of the desired resource a java.net.URL object Finds a resource with a given name. This method returns null if no resource with this name is found. name of the desired resource a java.io.InputStream object A JobFactory that instantiates the Job instance (using the default no-arg constructor, or more specifically: ), and then attempts to set all values in the 's onto bean properties of the . James Houser Marko Lahma (.NET) The default JobFactory used by Quartz - simply calls on the job class. James House Marko Lahma (.NET) A JobFactory is responsible for producing instances of classes. This interface may be of use to those wishing to have their application produce instances via some special mechanism, such as to give the opertunity for dependency injection. James House Called by the scheduler at the time of the trigger firing, in order to produce a instance on which to call Execute.

It should be extremely rare for this method to throw an exception - basically only the the case where there is no way at all to instantiate and prepare the Job for execution. When the exception is thrown, the Scheduler will move all triggers associated with the Job into the state, which will require human intervention (e.g. an application restart after fixing whatever configuration problem led to the issue wih instantiating the Job.

The TriggerFiredBundle from which the and other info relating to the trigger firing can be obtained. SchedulerException if there is a problem instantiating the Job. the newly instantiated Job
Called by the scheduler at the time of the trigger firing, in order to produce a instance on which to call Execute. It should be extremely rare for this method to throw an exception - basically only the the case where there is no way at all to instantiate and prepare the Job for execution. When the exception is thrown, the Scheduler will move all triggers associated with the Job into the state, which will require human intervention (e.g. an application restart after fixing whatever configuration problem led to the issue wih instantiating the Job. The TriggerFiredBundle from which the and other info relating to the trigger firing can be obtained. the newly instantiated Job SchedulerException if there is a problem instantiating the Job. Called by the scheduler at the time of the trigger firing, in order to produce a instance on which to call Execute.

It should be extremely rare for this method to throw an exception - basically only the the case where there is no way at all to instantiate and prepare the Job for execution. When the exception is thrown, the Scheduler will move all triggers associated with the Job into the state, which will require human intervention (e.g. an application restart after fixing whatever configuration problem led to the issue wih instantiating the Job.

The TriggerFiredBundle from which the and other info relating to the trigger firing can be obtained. the newly instantiated Job SchedulerException if there is a problem instantiating the Job.
Sets the object properties. The object to set properties to. The data to set. Whether the JobInstantiation should fail and throw and exception if a key (name) and value (type) found in the JobDataMap does not correspond to a proptery setter on the Job class. Get or set whether a warning should be logged if a key (name) and value (type) found in the JobDataMap does not correspond to a proptery setter on the Job class. This class implements a that utilizes RAM as its storage device.

As you should know, the ramification of this is that access is extrememly fast, but the data is completely volatile - therefore this should not be used if true persistence between program shutdowns is required.

James House Sharada Jambula Marko Lahma (.NET)
Initializes a new instance of the class. Called by the QuartzScheduler before the is used, in order to give the it a chance to Initialize. Called by the QuartzScheduler to inform the that the scheduler has started. Called by the QuartzScheduler to inform the that it should free up all of it's resources because the scheduler is shutting down. Store the given and . The scheduling context. The to be stored. The to be stored. Returns true if the given job group is paused. Job group name returns true if the given TriggerGroup is paused. Store the given . The scheduling context. The to be stored. If , any existing in the with the same name and group should be over-written. Remove (delete) the with the given name, and any s that reference it. The scheduling context. The name of the to be removed. The group name of the to be removed. if a with the given name and group was found and removed from the store. Remove (delete) the with the given name. The scheduling context. The name of the to be removed. The group name of the to be removed. if a with the given name and group was found and removed from the store. Store the given . The scheduling context. The to be stored. If , any existing in the with the same name and group should be over-written. Remove (delete) the with the given name. The scheduling context. The name of the to be removed. The group name of the to be removed. if a with the given name and group was found and removed from the store. Whether to delete orpahaned job details from scheduler if job becomes orphaned from removing the trigger. Replaces the trigger. The scheduling context. Name of the trigger. Name of the group. The new trigger. Retrieve the for the given . The scheduling context. The name of the to be retrieved. The group name of the to be retrieved. The desired , or null if there is no match. Retrieve the given . The scheduling context. The name of the to be retrieved. The group name of the to be retrieved. The desired , or null if there is no match. Get the current state of the identified . Store the given . The scheduling context. The name. The to be stored. If , any existing in the with the same name and group should be over-written. If , any s existing in the that reference an existing Calendar with the same name with have their next fire time re-computed with the new . Remove (delete) the with the given name.

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

The scheduling context. The name of the to be removed. if a with the given name was found and removed from the store.
Retrieve the given . The scheduling context. The name of the to be retrieved. The desired , or null if there is no match. Get the number of s that are stored in the . Get the number of s that are stored in the . Get the number of s that are stored in the . Get the names of all of the s that have the given group name. Get the names of all of the s in the .

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

Get the names of all of the s that have the given group name. Get the names of all of the groups. Get the names of all of the groups. Get all of the Triggers that are associated to the given Job.

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

Gets the trigger wrappers for job. Name of the job. Name of the group. Gets the trigger wrappers for calendar. Name of the cal. Pause the with the given name. Pause all of the s in the given group.

The JobStore should "remember" that the group is paused, and impose the pause on any new triggers that are added to the group while the group is paused.

Pause the with the given name - by pausing all of its current s. Pause all of the s in the given group - by pausing all of their s.

The JobStore should "remember" that the group is paused, and impose the pause on any new jobs that are added to the group while the group is paused.

Resume (un-pause) the with the given name. If the missed one or more fire-times, then the 's misfire instruction will be applied. Resume (un-pause) all of the s in the given group.

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

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

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

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

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

Pause all triggers - equivalent of calling on every group.

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

Resume (un-pause) all triggers - equivalent of calling on every trigger group and setting all job groups unpaused />.

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

Applies the misfire. The trigger wrapper. Get a handle to the next trigger to be fired, and mark it as 'reserved' by the calling scheduler. Inform the that the scheduler no longer plans to fire the given , that it had previously acquired (reserved). Inform the that the scheduler is now firing the given (executing its associated ), that it had previously acquired (reserved). Inform the that the scheduler has completed the firing of the given (and the execution its associated ), and that the in the given should be updated if the is stateful. Sets the state of all triggers of job to specified state. Name of the job. The job group. The internal state to set. Peeks the triggers. The time span by which a trigger must have missed its next-fire-time, in order for it to be considered "misfired" and thus have its misfire instruction applied. Gets the fired trigger record id. The fired trigger record id. Returns whether this instance supports persistence. Comparer for triggers. Possible internal trigger states in RAMJobStore Waiting Acquired Executing Complete Paused Blocked Paused and Blocked Error Helper wrapper class The key used Job's key The trigger Current state Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. Serves as a hash function for a particular type. is suitable for use in hashing algorithms and data structures like a hash table. A hash code for the current . Gets the trigger The trigger Scheduler exporter that exports scheduler to remoting context. Marko Lahma Service interface for scheduler exporters. Marko Lahma Binds (exports) scheduler to external context. Unbinds scheduler from external context. Registers remoting channel if needed. This is determined by checking whether there is a positive value for port. Gets or sets the port used for remoting. Gets or sets the name to use when exporting scheduler to remoting context. Sets the channel type when registering remoting. Sets the used when exporting to remoting context. Defaults to . A that simply calls . James House Called to give the ClassLoadHelper a chance to Initialize itself, including the oportunity to "steal" the class loader off of the calling thread, which is the thread that is initializing Quartz. Return the class with the given name. Finds a resource with a given name. This method returns null if no resource with this name is found. name of the desired resource a Uri object Finds a resource with a given name. This method returns null if no resource with this name is found. name of the desired resource a Stream object The default InstanceIdGenerator used by Quartz when instance id is to be automatically generated. Instance id is of the form HOSTNAME + CURRENT_TIME. Generate the instance id for a The clusterwide unique instance id. This is class is a simple implementation of a thread pool, based on the interface.

objects are sent to the pool with the method, which blocks until a becomes available.

The pool has a fixed number of s, and does not grow or shrink based on demand.

James House Juergen Donnerstag
The interface to be implemented by classes that want to provide a thread pool for the 's use. implementation instances should ideally be made for the sole use of Quartz. Most importantly, when the method returns a value of 1 or greater, there must still be at least one available thread in the pool when the method is called a few moments (or many moments) later. If this assumption does not hold true, it may result in extra JobStore queries and updates, and if clustering features are being used, it may result in greater imballance of load. James House Execute the given in the next available . The implementation of this interface should not throw exceptions unless there is a serious problem (i.e. a serious misconfiguration). If there are no available threads, rather it should either queue the Runnable, or block until a thread is available, depending on the desired strategy. Determines the number of threads that are currently available in in the pool. Useful for determining the number of times can be called before returning false. The implementation of this method should block until there is at least one available thread. the number of currently available threads Called by the QuartzScheduler before the is used, in order to give the it a chance to Initialize. Called by the QuartzScheduler to inform the that it should free up all of it's resources because the scheduler is shutting down. Gets the size of the pool. The size of the pool. Create a new (unconfigured) . Create a new with the specified number of s that have the given priority. the number of worker s in the pool, must be > 0. the thread priority for the worker threads. Called by the QuartzScheduler before the is used, in order to give the it a chance to Initialize. Terminate any worker threads in this thread group. Jobs currently in progress will complete. Run the given object in the next available . If while waiting the thread pool is asked to shut down, the Runnable is executed immediately within a new additional thread. The to be added. Creates the worker threads. The thread count. Terminate any worker threads in this thread group. Jobs currently in progress will complete. Gets or sets the number of worker threads in the pool. Set has no effect after has been called. Get or set the thread priority of worker threads in the pool. Set operation has no effect after has been called. Gets or sets the thread name prefix. The thread name prefix. Gets or sets the value of makeThreadsDaemons. Gets the size of the pool. The size of the pool. A Worker loops, waiting to Execute tasks. Create a worker thread and start it. Waiting for the next Runnable, executing it, and waiting for the next Runnable, until the Shutdown flag is set. Create a worker thread, start it, Execute the runnable and terminate the thread (one time execution). Signal the thread that it should terminate. Loop, executing targets as they are received. This is class is a simple implementation of a zero size thread pool, based on the {@link org.quartz.spi.ThreadPool} interface. The pool has zero s and does not grow or shrink based on demand. Which means it is obviously not useful for most scenarios. When it may be useful is to prevent creating any worker threads at all - which may be desirable for the sole purpose of preserving system resources in the case where the scheduler instance only exists in order to schedule jobs, but which will never execute jobs (e.g. will never have Start() called on it). Wayne Fay Initializes a new instance of the class. Called by the QuartzScheduler before the is used, in order to give the it a chance to Initialize. Shutdowns this instance. Called by the QuartzScheduler to inform the that it should free up all of it's resources because the scheduler is shutting down. Execute the given in the next available . The implementation of this interface should not throw exceptions unless there is a serious problem (i.e. a serious misconfiguration). If there are no available threads, rather it should either queue the Runnable, or block until a thread is available, depending on the desired strategy. Determines the number of threads that are currently available in in the pool. Useful for determining the number of times can be called before returning false. the number of currently available threads The implementation of this method should block until there is at least one available thread. Gets the log. The log. Gets the size of the pool. The size of the pool. A simple class (structure) used for returning execution-time data from the JobStore to the . James House Initializes a new instance of the class. The job. The trigger. The calendar. if set to true [job is recovering]. The fire time. The scheduled fire time. The previous fire time. The next fire time. Gets the job detail. The job detail. Gets the trigger. The trigger. Gets the calendar. The calendar. Gets a value indicating whether this is recovering. true if recovering; otherwise, false. Returns the UTC fire time. Gets the next UTC fire time. The next fire time. Returns the nextFireTimeUtc. Gets the previous UTC fire time. The previous fire time. Returns the previous fire time. Returns the scheduled UTC fire time. DateTime related utility methods. Assumes that given input is in UTC and sets the kind to be UTC. Just a precaution if somebody does not set it explicitly. This only works in .NET Framework 2.0 onwards. The datetime to check. DateTime with kind set to UTC. Assumes that given input is in UTC and sets the kind to be UTC. Just a precaution if somebody does not set it explicitly. The datetime to check. DateTime with kind set to UTC. Manages a collection of IDbProviders, and provides transparent access to their database. James House Sharada Jambula Mohammad Rezaei Private constructor Adds the connection provider. Name of the data source. The provider. Get a database connection from the DataSource with the given name. a database connection Shuts down database connections from the DataSource with the given name, if applicable for the underlying provider. a database connection Gets the db provider. Name of the ds. Get the class instance. an instance of this class An implementation of that wraps another and flags itself 'dirty' when it is modified. James House Create a DirtyFlagMap that 'wraps' a . Create a DirtyFlagMap that 'wraps' a that has the given initial capacity. Create a DirtyFlagMap that 'wraps' a that has the given initial capacity and load factor. Creates a new object that is a copy of the current instance. A new object that is a copy of this instance. When implemented by a class, removes all elements from the . The is read-only. When implemented by a class, determines whether the contains an element with the specified key. The key to locate in the . if the contains an element with the key; otherwise, . is . When implemented by a class, removes the element with the specified key from the . The key of the element to remove. is . The is read-only. -or- The has a fixed size. When implemented by a class, returns an for the . An for the . When implemented by a class, adds an element with the provided key and value to the . The to use as the key of the element to add. The to use as the value of the element to add. is . An element with the same key already exists in the . The is read-only. -or- The has a fixed size. When implemented by a class, copies the elements of the to an , starting at a particular index. The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. The zero-based index in at which copying begins. is . is less than zero. is multidimensional. -or- is equal to or greater than the length of . -or- The number of elements in the source is greater than the available space from to the end of the destination . The type of the source cannot be cast automatically to the type of the destination . Clear the 'dirty' flag (set dirty flag to ). Determines whether the specified obj contains value. The obj. true if the specified obj contains value; otherwise, false. Gets the entries as a set. Determines whether the specified is equal to the current . The to compare with the current . if the specified is equal to the current ; otherwise, . Serves as a hash function for a particular type, suitable for use in hashing algorithms and data structures like a hash table. A hash code for the current . Gets keyset for this map. Puts the value behind a specified key. The key. The val. Puts all. The t. Determine whether the is flagged dirty. Get a direct handle to the underlying Map. Gets a value indicating whether this instance is empty. true if this instance is empty; otherwise, false. Gets or sets the with the specified key. When implemented by a class, gets the number of elements contained in the . When implemented by a class, gets an containing the values in the . When implemented by a class, gets an containing the keys of the . When implemented by a class, gets a value indicating whether the is read-only. When implemented by a class, gets a value indicating whether the has a fixed size. When implemented by a class, gets an object that can be used to synchronize access to the . When implemented by a class, gets a value indicating whether access to the is synchronized (thread-safe). Utility class for file handling related things. Resolves file to actual file if for example relative '~' used. File name to check Expanded file name or actual no resolving was done. object representing a job or trigger key. Jeffrey Wescott Utility class for storing two pieces of information together. Jeffrey Wescott Test equality of this object with that. object to compare true if objects are equal, false otherwise Serves as a hash function for a particular type. is suitable for use in hashing algorithms and data structures like a hash table. A hash code for the current . Get or sets the first object in the pair. Get or sets the second object in the pair. Construct a new key with the given name and group. the name the group

Return the string representation of the key. The format will be: <group>.<name>.

the string representation of the key
Get the name portion of the key. the name

Get the group portion of the key.

the group
Wrapper class to access thread local data. Data is either accessed from thread or HTTP Context's data if HTTP Context is avaiable. Marko Lahma (.NET) Retrieves an object with the specified name. The name of the item. The object in the call context associated with the specified name or null if no object has been stored previously Stores a given object and associates it with the specified name. The name with which to associate the new item. The object to store in the call context. Empties a data slot with the specified name. The name of the data slot to empty. Utility methods that are used to convert objects from one type into another. Aleksandar Seovic Convert the value to the required (if necessary from a string). The proposed change value. The we must convert to. The new value, possibly the result of type conversion. Determines whether value is assignable to required type. The value to check. Type of the required. true if value can be assigned as given type; otherwise, false. Instantiates an instance of the type specified. The type to instantiate. Sets the object properties using reflection. The object to set values to. The properties to set to object. This is an utility class used to parse the properties. James House Initializes a new instance of the class. The props. Gets the string property. The name. Gets the string property. The name. The default value. Gets the string array property. The name. Gets the string array property. The name. The default value. Gets the boolean property. The name. Gets the boolean property. The name. if set to true [defaultValue]. Gets the byte property. The name. Gets the byte property. The name. The default value. Gets the char property. The name. Gets the char property. The name. The default value. Gets the double property. The name. Gets the double property. The name. The default value. Gets the float property. The name. Gets the float property. The name. The default value. Gets the int property. The name. Gets the int property. The name. The default value. Gets the int array property. The name. Gets the int array property. The name. The default value. Gets the long property. The name. Gets the long property. The name. The def. Gets the TimeSpan property. The name. The def. Gets the short property. The name. Gets the short property. The name. The default value. Gets the property groups. The prefix. Gets the property group. The prefix. Gets the property group. The prefix. if set to true [strip prefix]. Get all properties that start with the given prefix. The prefix for which to search. If it does not end in a "." then one will be added to it for search purposes. Whether to strip off the given in the result's keys. Optional array of fully qualified prefixes to exclude. For example if is "a.b.c", then might be "a.b.c.ignore". Group of that start with the given prefix, optionally have that prefix removed, and do not include properties that start with one of the given excluded prefixes. Reads the properties from assembly (embedded resource). The file name to read resources from. Reads the properties from file system. The file name to read resources from. Gets the underlying properties. The underlying properties. An implementation of that wraps another and flags itself 'dirty' when it is modified, enforces that all keys are strings. Initializes a new instance of the class. Initializes a new instance of the class. The initial capacity. Initializes a new instance of the class. The initial capacity. The load factor. Gets the keys. Adds the name-value pairs in the given to the .

All keys must be s, and all values must be serializable.

Adds the given value to the 's data map. Adds the given value to the 's data map. Adds the given value to the 's data map. Adds the given value to the 's data map. Adds the given value to the 's data map. Adds the given value to the 's data map. Adds the given value to the 's data map. Adds the given serializable object value to the . Retrieve the identified value from the . Retrieve the identified value from the . Retrieve the identified value from the . Retrieve the identified value from the . Retrieve the identified value from the . Retrieve the identified value from the . Retrieve the identified value from the . Object representing a job or trigger key. James House Construct a new TriggerStatus with the status name and nextFireTime. The trigger's status The next UTC time the trigger will fire Return the string representation of the TriggerStatus. Gets or sets the job key. The job key. Gets or sets the key. The key. Get the name portion of the key. the name Get the group portion of the key. the group Wraps a . Chris Bonham Gets or sets the name of the calendar. The name of the calendar. Gets or sets the name of the class. The name of the class. Gets or sets the calendar. The calendar. Gets or sets a description for the instance - may be useful for remembering/displaying the purpose of the calendar, though the description has no meaning to Quartz. Set a new base calendar or remove the existing one. Wraps a and . Chris Bonham James House Adds a trigger to this bundle. The trigger. Removes the given trigger from this bundle. The trigger. Gets or sets the job detail. The job detail. Gets or sets the triggers associated with this bundle. The triggers. Gets the name of the bundle. The name. Gets the full name. The full name. Gets a value indicating whether this is valid. true if valid; otherwise, false. Parses an XML file that declares Jobs and their schedules (Triggers).

The xml document must conform to the format defined in "job_scheduling_data.xsd"

After creating an instance of this class, you should call one of the functions, after which you may call the function to get a handle to the defined Jobs and Triggers, which can then be scheduled with the . Alternatively, you could call the function to do all of this in one step.

The same instance can be used again and again, with the list of defined Jobs being cleared each time you call a method, however a single instance is not thread-safe.

Chris Bonham James House Marko Lahma (.NET)
XML Schema dateTime datatype format.

See http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/#dateTime

Constructor for JobSchedulingDataProcessor. Constructor for JobSchedulingDataProcessor. whether or not to validate XML. whether or not to validate XML schema. Process the xml file in the default location (a file named "quartz_jobs.xml" in the current working directory). Process the xml file named . meta data file name. Process the xmlfile named with the given system ID. Name of the file. The system id. Process the xmlfile named with the given system ID. The stream. The system id. Process the xml file in the default location, and schedule all of the jobs defined within it. Process the xml file in the given location, and schedule all of the jobs defined within it. meta data file name. The scheduler. if set to true overwrite existing jobs. Process the xml file in the given location, and schedule all of the jobs defined within it. Name of the file. The system id. The sched. if set to true [over write existing jobs]. Add the Jobs and Triggers defined in the given map of s to the given scheduler. The job bundles. The sched. if set to true [over write existing jobs]. Returns a for the job name. The name. a for the job name. Returns an from the fileName as a resource. Name of the file. an from the fileName as a resource. Schedules a given job and trigger (both wrapped by a ). job wrapper. if the Job or Trigger cannot be added to the Scheduler, or there is an internal Scheduler error. Schedules a given job and trigger (both wrapped by a ). The job. The sched. if set to true [local over write existing jobs]. if the Job or Trigger cannot be added to the Scheduler, or there is an internal Scheduler error. Adds a scheduled job. The job. Adds a calendar. The sched. calendar bundle. SchedulerException if the Calendar cannot be added to the Scheduler, or Adds a detected validation exception. The exception. Resets the the number of detected validation exceptions. Throws a ValidationException if the number of validationExceptions detected is greater than zero. DTD validation exception. Gets or sets whether to overwrite existing jobs. Gets the log. The log. Returns a of scheduled jobs.

The key is the job name and the value is a containing the and .

a of scheduled jobs.
Helper class to map constant names to their values. Reports JobSchedulingDataProcessor validation exceptions. Chris Bonham Constructor for ValidationException. Constructor for ValidationException. exception message. Constructor for ValidationException. collection of validation exceptions. Gets the validation exceptions. The validation exceptions. Returns the detail message string. An exception that is thrown to indicate that there has been a critical failure within the scheduler's core services (such as loss of database connectivity). James House Create a with the given message. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. The class name is null or is zero (0). The info parameter is null. Provides a parser and evaluator for unix-like cron expressions. Cron expressions provide the ability to specify complex time combinations such as "At 8:00am every Monday through Friday" or "At 1:30am every last Friday of the month".

Cron expressions are comprised of 6 required fields and one optional field separated by white space. The fields respectively are described as follows:

Field Name Allowed Values Allowed Special Characters
Seconds 0-59 , - /// /
Minutes 0-59 , - /// /
Hours 0-23 , - /// /
Day-of-month 1-31 , - /// ? / L W C
Month 1-12 or JAN-DEC , - /// /
Day-of-Week 1-7 or SUN-SAT , - /// ? / L #
Year (Optional) empty, 1970-2099 , - /// /

The '*' character is used to specify all values. For example, "*" in the minute field means "every minute".

The '?' character is allowed for the day-of-month and day-of-week fields. It is used to specify 'no specific value'. This is useful when you need to specify something in one of the two fields, but not the other.

The '-' character is used to specify ranges For example "10-12" in the hour field means "the hours 10, 11 and 12".

The ',' character is used to specify additional values. For example "MON,WED,FRI" in the day-of-week field means "the days Monday, Wednesday, and Friday".

The '/' character is used to specify increments. For example "0/15" in the seconds field means "the seconds 0, 15, 30, and 45". And "5/15" in the seconds field means "the seconds 5, 20, 35, and 50". Specifying '*' before the '/' is equivalent to specifying 0 is the value to start with. Essentially, for each field in the expression, there is a set of numbers that can be turned on or off. For seconds and minutes, the numbers range from 0 to 59. For hours 0 to 23, for days of the month 0 to 31, and for months 1 to 12. The "/" character simply helps you turn on every "nth" value in the given set. Thus "7/6" in the month field only turns on month "7", it does NOT mean every 6th month, please note that subtlety.

The 'L' character is allowed for the day-of-month and day-of-week fields. This character is short-hand for "last", but it has different meaning in each of the two fields. For example, the value "L" in the day-of-month field means "the last day of the month" - day 31 for January, day 28 for February on non-leap years. If used in the day-of-week field by itself, it simply means "7" or "SAT". But if used in the day-of-week field after another value, it means "the last xxx day of the month" - for example "6L" means "the last friday of the month". When using the 'L' option, it is important not to specify lists, or ranges of values, as you'll get confusing results.

The 'W' character is allowed for the day-of-month field. This character is used to specify the weekday (Monday-Friday) nearest the given day. As an example, if you were to specify "15W" as the value for the day-of-month field, the meaning is: "the nearest weekday to the 15th of the month". So if the 15th is a Saturday, the trigger will fire on Friday the 14th. If the 15th is a Sunday, the trigger will fire on Monday the 16th. If the 15th is a Tuesday, then it will fire on Tuesday the 15th. However if you specify "1W" as the value for day-of-month, and the 1st is a Saturday, the trigger will fire on Monday the 3rd, as it will not 'jump' over the boundary of a month's days. The 'W' character can only be specified when the day-of-month is a single day, not a range or list of days.

The 'L' and 'W' characters can also be combined for the day-of-month expression to yield 'LW', which translates to "last weekday of the month".

The '#' character is allowed for the day-of-week field. This character is used to specify "the nth" XXX day of the month. For example, the value of "6#3" in the day-of-week field means the third Friday of the month (day 6 = Friday and "#3" = the 3rd one in the month). Other examples: "2#1" = the first Monday of the month and "4#5" = the fifth Wednesday of the month. Note that if you specify "#5" and there is not 5 of the given day-of-week in the month, then no firing will occur that month. If the '#' character is used, there can only be one expression in the day-of-week field ("3#1,6#3" is not valid, since there are two expressions).

The legal characters and the names of months and days of the week are not case sensitive.

NOTES:

  • Support for specifying both a day-of-week and a day-of-month value is not complete (you'll need to use the '?' character in one of these fields).
  • Overflowing ranges is supported - that is, having a larger number on the left hand side than the right. You might do 22-2 to catch 10 o'clock at night until 2 o'clock in the morning, or you might have NOV-FEB. It is very important to note that overuse of overflowing ranges creates ranges that don't make sense and no effort has been made to determine which interpretation CronExpression chooses. An example would be "0 0 14-6 ? * FRI-MON".

Sharada Jambula James House Contributions from Mads Henderson Refactoring from CronTrigger to CronExpression by Aaron Craven
Field specification for second. Field specification for minute. Field specification for hour. Field specification for day of month. Field specification for month. Field specification for day of week. Field specification for year. Field specification for all wildcard value '*'. Field specification for not specified value '?'. Field specification for wildcard '*'. Field specification for no specification at all '?'. Seconds. minutes. Hours. Days of month. Months. Days of week. Years. Last day of week. Nth day of week. Last day of month. Nearest weekday. Calendar day of week. Calendar day of month. Expression parsed. Constructs a new based on the specified parameter. String representation of the cron expression the new object should represent Indicates whether the given date satisfies the cron expression. Note that milliseconds are ignored, so two Dates falling on different milliseconds of the same second will always have the same result here. The date to evaluate. a boolean indicating whether the given date satisfies the cron expression Returns the next date/time after the given date/time which satisfies the cron expression. the date/time at which to begin the search for the next valid date/time the next valid date/time Returns the next date/time after the given date/time which does not satisfy the expression. the date/time at which to begin the search for the next invalid date/time the next valid date/time Returns the string representation of the The string representation of the Indicates whether the specified cron expression can be parsed into a valid cron expression the expression to evaluate a boolean indicating whether the given expression is a valid cron expression Builds the expression. The expression. Stores the expression values. The position. The string to traverse. The type of value. Checks the next value. The position. The string to check. The value. The type to search. Gets the expression summary. Gets the expression set summary. The data. Skips the white space. The i. The s. Finds the next white space. The i. The s. Adds to set. The val. The end. The incr. The type. Gets the set of given type. The type of set to get. Gets the value. The v. The s. The i. Gets the numeric value from string. The string to parse from. The i. Gets the month number. The string to map with. Gets the day of week number. The s. Gets the time from given time parts. The seconds. The minutes. The hours. The day of month. The month. Gets the next fire time after the given time. The UTC time to start searching from. Creates the date time without milliseconds. The time. Advance the calendar to the particular hour paying particular attention to daylight saving problems. The date. The hour. Gets the time before. The end time. NOT YET IMPLEMENTED: Returns the final time that the will match. Determines whether given year is a leap year. The year. true if the specified year is a leap year; otherwise, false. Gets the last day of month. The month num. The year. Creates a new object that is a copy of the current instance. A new object that is a copy of this instance. Sets or gets the time zone for which the of this will be resolved. Gets the cron expression string. The cron expression string. Helper class for cron expression handling. The value. The position. A concrete that is used to fire a at given moments in time, defined with Unix 'cron-like' definitions.

For those unfamiliar with "cron", this means being able to create a firing schedule such as: "At 8:00am every Monday through Friday" or "At 1:30am every last Friday of the month".

The format of a "Cron-Expression" string is documented on the class.

Here are some full examples:
Expression Meaning
"0 0 12 * * ?"" /> Fire at 12pm (noon) every day" />
"0 15 10 ? * *"" /> Fire at 10:15am every day" />
"0 15 10 * * ?"" /> Fire at 10:15am every day" />
"0 15 10 * * ? *"" /> Fire at 10:15am every day" />
"0 15 10 * * ? 2005"" /> Fire at 10:15am every day during the year 2005" />
"0 * 14 * * ?"" /> Fire every minute starting at 2pm and ending at 2:59pm, every day" />
"0 0/5 14 * * ?"" /> Fire every 5 minutes starting at 2pm and ending at 2:55pm, every day" />
"0 0/5 14,18 * * ?"" /> Fire every 5 minutes starting at 2pm and ending at 2:55pm, AND fire every 5 minutes starting at 6pm and ending at 6:55pm, every day" />
"0 0-5 14 * * ?"" /> Fire every minute starting at 2pm and ending at 2:05pm, every day" />
"0 10,44 14 ? 3 WED"" /> Fire at 2:10pm and at 2:44pm every Wednesday in the month of March." />
"0 15 10 ? * MON-FRI"" /> Fire at 10:15am every Monday, Tuesday, Wednesday, Thursday and Friday" />
"0 15 10 15 * ?"" /> Fire at 10:15am on the 15th day of every month" />
"0 15 10 L * ?"" /> Fire at 10:15am on the last day of every month" />
"0 15 10 ? * 6L"" /> Fire at 10:15am on the last Friday of every month" />
"0 15 10 ? * 6L"" /> Fire at 10:15am on the last Friday of every month" />
"0 15 10 ? * 6L 2002-2005"" /> Fire at 10:15am on every last friday of every month during the years 2002, 2003, 2004 and 2005" />
"0 15 10 ? * 6#3"" /> Fire at 10:15am on the third Friday of every month" />

Pay attention to the effects of '?' and '*' in the day-of-week and day-of-month fields!

NOTES:

  • Support for specifying both a day-of-week and a day-of-month value is not complete (you'll need to use the '?' character in on of these fields).
  • Be careful when setting fire times between mid-night and 1:00 AM - "daylight savings" can cause a skip or a repeat depending on whether the time moves back or jumps forward.

Sharada Jambula James House Contributions from Mads Henderson
The base abstract class to be extended by all triggers.

s have a name and group associated with them, which should uniquely identify them within a single .

s are the 'mechanism' by which s are scheduled. Many s can point to the same , but a single can only point to one .

Triggers can 'send' parameters/data to s by placing contents into the on the .

James House Sharada Jambula
The default value for priority. Remove all s from the . Create a with no specified name, group, or . Note that the , and the and properties must be set before the can be placed into a . Create a with the given name, and default group. Note that the and properties must be set before the can be placed into a . The name. Create a with the given name, and group. Note that the and properties must be set before the can be placed into a . The name. if , Scheduler.DefaultGroup will be used. Create a with the given name, and group. The name. if , Scheduler.DefaultGroup will be used. Name of the job. The job group. ArgumentException if name is null or empty, or the group is an empty string. Add the specified name of a to the end of the 's list of listeners. Name of the listener. Remove the specified name of a from the 's list of listeners. true if the given name was found in the list, and removed This method should not be used by the Quartz client.

Called when the has decided to 'fire' the trigger (Execute the associated ), in order to give the a chance to update itself for its next triggering (if any).

This method should not be used by the Quartz client.

Called by the scheduler at the time a is first added to the scheduler, in order to have the compute its first fire time, based on any associated calendar.

After this method has been called, should return a valid answer.

The first time at which the will be fired by the scheduler, which is also the same value will return (until after the first firing of the ).
This method should not be used by the Quartz client. Called after the has executed the associated with the in order to get the final instruction code from the trigger. is the that was used by the 's method. is the thrown by the , if any (may be null). One of the members. Used by the to determine whether or not it is possible for this to fire again.

If the returned value is then the may remove the from the .

Returns the next time at which the is scheduled to fire. If the trigger will not fire again, will be returned. Note that the time returned can possibly be in the past, if the time that was computed for the trigger to next fire has already arrived, but the scheduler has not yet been able to fire the trigger (which would likely be due to lack of resources e.g. threads). The value returned is not guaranteed to be valid until after the has been added to the scheduler. Returns the previous time at which the fired. If the trigger has not yet fired, will be returned. Returns the next time at which the will fire, after the given time. If the trigger will not fire after the given time, will be returned. Validates the misfire instruction. The misfire instruction. This method should not be used by the Quartz client.

To be implemented by the concrete classes that extend this class.

The implementation should update the 's state based on the MISFIRE_INSTRUCTION_XXX that was selected when the was created.

This method should not be used by the Quartz client.

The implementation should update the 's state based on the given new version of the associated (the state should be updated so that it's next fire time is appropriate given the Calendar's new settings).

Validates whether the properties of the are valid for submission into a . Return a simple string representation of this object. Compare the next fire time of this to that of another. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. Serves as a hash function for a particular type. is suitable for use in hashing algorithms and data structures like a hash table. A hash code for the current . Creates a new object that is a copy of the current instance. A new object that is a copy of this instance. Get or sets the name of this . If name is null or empty. Get the group of this . If , Scheduler.DefaultGroup will be used. if group is an empty string. Get or set the name of the associated . if jobName is null or empty. Gets or sets the name of the associated 's group. If set with , Scheduler.DefaultGroup will be used. ArgumentException if group is an empty string. Returns the 'full name' of the in the format "group.name". Gets the key. The key. Returns the 'full name' of the that the points to, in the format "group.name". Get or set the description given to the instance by its creator (if any). Get or set the with the given name with this Trigger. Use when setting to dis-associate a Calendar. Get or set the that is associated with the .

Changes made to this map during job execution are not re-persisted, and in fact typically result in an illegal state.

Whether or not the should be persisted in the for re-use after program restarts.

If not explicitly set, the default value is .

Returns an array of s containing the names of all s assigned to the , in the order in which they should be notified. Returns the last UTC time at which the will fire, if the Trigger will repeat indefinitely, null will be returned.

Note that the return time *may* be in the past.

Get or set the instruction the should be given for handling misfire situations for this - the concrete type that you are using will have defined a set of additional MISFIRE_INSTRUCTION_XXX constants that may be passed to this method.

If not explicitly set, the default value is .

This method should not be used by the Quartz client.

Usable by implementations, in order to facilitate 'recognizing' instances of fired s as their jobs complete execution.

Returns the date/time on which the trigger must stop firing. This defines the final boundary for trigger firings 舒 the trigger will not fire after to this date and time. If this value is null, no end time boundary is assumed, and the trigger can continue indefinitely. Sets the date/time on which the trigger must stop firing. This defines the final boundary for trigger firings 舒 the trigger will not fire after to this date and time. If this value is null, no end time boundary is assumed, and the trigger can continue indefinitely. The time at which the trigger's scheduling should start. May or may not be the first actual fire time of the trigger, depending upon the type of trigger and the settings of the other properties of the trigger. However the first actual first time will not be before this date. Setting a value in the past may cause a new trigger to compute a first fire time that is in the past, which may cause an immediate misfire of the trigger. Tells whether this Trigger instance can handle events in millisecond precision. The priority of a acts as a tie breaker such that if two s have the same scheduled fire time, then Quartz will do its best to give the one with the higher priority first access to a worker thread. If not explicitly set, the default value is 5. Gets a value indicating whether this instance has additional properties that should be considered when for example saving to database. If trigger implementation has additional properties that need to be saved with base properties you need to make your class override this property with value true. Returning true will effectively mean that ADOJobStore needs to serialize this trigger instance to make sure additional properties are also saved. true if this instance has additional properties; otherwise, false. Create a with no settings. The start-time will also be set to the current time, and the time zone will be set the the system's default time zone. Create a with the given name and default group. The start-time will also be set to the current time, and the time zone will be set the the system's default time zone. The name. Create a with the given name and group. The start-time will also be set to the current time, and the time zone will be set the the system's default time zone. The name. The group. Create a with the given name, group and expression. The start-time will also be set to the current time, and the time zone will be set the the system's default time zone. The name. The group. The cron expression. Create a with the given name and group, and associated with the identified . The start-time will also be set to the current time, and the time zone will be set the the system's default time zone. The name. The group. Name of the job. The job group. Create a with the given name and group, associated with the identified , and with the given "cron" expression. The start-time will also be set to the current time, and the time zone will be set the the system's default time zone. The name. The group. Name of the job. The job group. The cron expression. Create a with the given name and group, associated with the identified , and with the given "cron" expression resolved with respect to the . The name. The group. Name of the job. The job group. The cron expression. The time zone. Create a that will occur at the given time, until the given end time.

If null, the start-time will also be set to the current time, the time zone will be set the the system's default.

The name. The group. Name of the job. The job group. The start time. The end time. The cron expression.
Create a with fire time dictated by the resolved with respect to the specified occuring from the until the given . The name. The group. Name of the job. The job group. The start time. The end time. Clones this instance. Returns the next time at which the is scheduled to fire. If the trigger will not fire again, will be returned. Note that the time returned can possibly be in the past, if the time that was computed for the trigger to next fire has already arrived, but the scheduler has not yet been able to fire the trigger (which would likely be due to lack of resources e.g. threads). The value returned is not guaranteed to be valid until after the has been added to the scheduler. Returns the previous time at which the fired. If the trigger has not yet fired, will be returned. Sets the next fire time.

This method should not be invoked by client code.

The fire time.
Sets the previous fire time.

This method should not be invoked by client code.

The fire time.
Returns the next time at which the will fire, after the given time. If the trigger will not fire after the given time, will be returned. Used by the to determine whether or not it is possible for this to fire again.

If the returned value is then the may remove the from the .

Validates the misfire instruction. The misfire instruction. This method should not be used by the Quartz client.

To be implemented by the concrete classes that extend this class.

The implementation should update the 's state based on the MISFIRE_INSTRUCTION_XXX that was selected when the was created.

Determines whether the date and (optionally) time of the given Calendar instance falls on a scheduled fire-time of this trigger.

Equivalent to calling .

The date to compare.
Determines whether the date and (optionally) time of the given Calendar instance falls on a scheduled fire-time of this trigger.

Note that the value returned is NOT validated against the related ICalendar (if any).

The date to compare If set to true, the method will only determine if the trigger will fire during the day represented by the given Calendar (hours, minutes and seconds will be ignored).
Called when the has decided to 'fire' the trigger (Execute the associated ), in order to give the a chance to update itself for its next triggering (if any). Updates the trigger with new calendar. The calendar to update with. The misfire threshold. Called by the scheduler at the time a is first added to the scheduler, in order to have the compute its first fire time, based on any associated calendar.

After this method has been called, should return a valid answer.

the first time at which the will be fired by the scheduler, which is also the same value will return (until after the first firing of the ).
Gets the expression summary. Gets the next time to fire after the given time. The time to compute from. NOT YET IMPLEMENTED: Returns the time before the given time that this will fire. The date. Gets or sets the cron expression string. The cron expression string. Set the CronExpression to the given one. The TimeZone on the passed-in CronExpression over-rides any that was already set on the Trigger. The cron expression. Returns the date/time on which the trigger may begin firing. This defines the initial boundary for trigger firings the trigger will not fire prior to this date and time. Get or sets the time at which the CronTrigger should quit repeating - even if repeastCount isn't yet satisfied. Sets the time zone for which the of this will be resolved. If is set after this property, the TimeZone setting on the CronExpression will "win". However if is set after this property, the time zone applied by this method will remain in effect, since the string cron expression does not carry a time zone! The time zone. Returns the last UTC time at which the will fire, if the Trigger will repeat indefinitely, null will be returned.

Note that the return time *may* be in the past.

Tells whether this Trigger instance can handle events in millisecond precision. The interface to be implemented by s that provide a mechanism for having their execution interrupted. It is NOT a requirment for jobs to implement this interface - in fact, for most people, none of their jobs will.

The means of actually interrupting the Job must be implemented within the itself (the method of this interface is simply a means for the scheduler to inform the that a request has been made for it to be interrupted). The mechanism that your jobs use to interrupt themselves might vary between implementations. However the principle idea in any implementation should be to have the body of the job's periodically check some flag to see if an interruption has been requested, and if the flag is set, somehow abort the performance of the rest of the job's work. An example of interrupting a job can be found in the java source for the class Quartz.Examples.Example7.DumbInterruptableJob. It is legal to use some combination of and synchronization within and in order to have the method block until the signals that it has noticed the set flag.

If the Job performs some form of blocking I/O or similar functions, you may want to consider having the method store a reference to the calling as a member variable. Then the impplementation of this interfaces method can call on that Thread. Before attempting this, make sure that you fully understand what does and doesn't do. Also make sure that you clear the Job's member reference to the Thread when the Execute(..) method exits (preferrably in a block.

James House
Called by the when a user interrupts the . void (nothing) if job interrupt is successful. Scheduler constants. A (possibly) usefull constant that can be used for specifying the group that and instances belong to. A constant group name used internally by the scheduler - clients should not use the value of this constant ("MANUAL_TRIGGER") for thename of a 's group. A constant group name used internally by the scheduler - clients should not use the value of this constant ("RECOVERING_JOBS") for thename of a 's group. A constant group name used internally by the scheduler - clients should not use the value of this constant ("FAILED_OVER_JOBS") for thename of a 's group. A constant key that can be used to retrieve the name of the original from a recovery trigger's data map in the case of a job recovering after a failed scheduler instance. A constant key that can be used to retrieve the group of the original from a recovery trigger's data map in the case of a job recovering after a failed scheduler instance. A constant key that can be used to retrieve the scheduled fire time of the original from a recovery trigger's data map in the case of a job recovering after a failed scheduler instance. Holds state information for instances. instances are stored once when the is added to a scheduler. They are also re-persisted after every execution of instances.

instances can also be stored with a . This can be useful in the case where you have a Job that is stored in the scheduler for regular/repeated use by multiple Triggers, yet with each independent triggering, you want to supply the Job with different data inputs.

The passed to a Job at execution time also contains a convenience that is the result of merging the contents of the trigger's JobDataMap (if any) over the Job's JobDataMap (if any).

James House
Create an empty . Create a with the given data. Adds the given value as a string version to the 's data map. Adds the given value as a string version to the 's data map. Adds the given value as a string version to the 's data map. Adds the given value as a string version to the 's data map. Adds the given value as a string version to the 's data map. Adds the given value as a string version to the 's data map. Retrieve the identified value from the . Retrieve the identified value from the . Retrieve the identified value from the . Retrieve the identified value from the . Retrieve the identified value from the . Retrieve the identified value from the . Retrieve the identified value from the . Retrieve the identified value from the . Retrieve the identified value from the . Retrieve the identified value from the . Retrieve the identified value from the . Retrieve the identified value from the . Retrieve the identified value from the . Retrieve the identified value from the . Retrieve the identified value from the . Gets the date time. The key. Gets the value behind the specified key. The key. Conveys the detail properties of a given instance. Quartz does not store an actual instance of a type, but instead allows you to define an instance of one, through the use of a .

s have a name and group associated with them, which should uniquely identify them within a single .

s are the 'mechanism' by which s are scheduled. Many s can point to the same , but a single can only point to one .

James House Sharada Jambula
Create a with no specified name or group, and the default settings of all the other properties.

Note that the , and properties must be set before the job can be placed into a .

Create a with the given name, default group, and the default settings of all the other properties. If , Scheduler.DefaultGroup will be used. If name is null or empty, or the group is an empty string. Create a with the given name, and group, and the default settings of all the other properties. If , Scheduler.DefaultGroup will be used. If name is null or empty, or the group is an empty string. Create a with the given name, and group, and the given settings of all the other properties. The name. if , Scheduler.DefaultGroup will be used. Type of the job. if set to true, job will be volatile. if set to true, job will be durable. if set to true, job will request recovery. ArgumentException if name is null or empty, or the group is an empty string. Validates whether the properties of the are valid for submission into a . Add the specified name of a to the end of the 's list of listeners. Remove the specified name of a from the 's list of listeners. true if the given name was found in the list, and removed Return a simple string representation of this object. Creates a new object that is a copy of the current instance. A new object that is a copy of this instance. Determines whether the specified detail is equal to this instance. The detail to examine. true if the specified detail is equal; otherwise, false. Determines whether the specified is equal to the current . The to compare with the current . if the specified is equal to the current ; otherwise, . Checks equality between given job detail and this instance. The detail to compare this instance with. Serves as a hash function for a particular type, suitable for use in hashing algorithms and data structures like a hash table. A hash code for the current . Get or sets the name of this . if name is null or empty. Get or sets the group of this . If , will be used. If the group is an empty string. Returns the 'full name' of the in the format "group.name". Gets the key. The key. Get or set the description given to the instance by its creator (if any). May be useful for remembering/displaying the purpose of the job, though the description has no meaning to Quartz. Get or sets the instance of that will be executed. if jobType is null or the class is not a . Get or set the that is associated with the . Set whether or not the the should re-Execute the if a 'recovery' or 'fail-over' situation is encountered.

If not explicitly set, the default value is .

Whether or not the should not be persisted in the for re-use after program restarts.

If not explicitly set, the default value is .

if the should be garbage collected along with the .
Whether or not the should remain stored after it is orphaned (no s point to it).

If not explicitly set, the default value is .

if the Job should remain persisted after being orphaned.
Whether or not the implements the interface . Gets or sets an array of s containing the names of all s assigned to the , in the order in which they should be notified. Setting the array clears any listener names that were in the list. A context bundle containing handles to various environment information, that is given to a instance as it is executed, and to a instance after the execution completes.

The found on this object (via the method) serves as a convenience - it is a merge of the found on the and the one found on the , with the value in the latter overriding any same-named values in the former. It is thus considered a 'best practice' that the Execute code of a Job retrieve data from the JobDataMap found on this object NOTE: Do not expect value 'set' into this JobDataMap to somehow be set back onto a 's own JobDataMap.

s are also returned from the method. These are the same instances as those past into the jobs that are currently executing within the scheduler. The exception to this is when your application is using Quartz remotely (i.e. via RMI) - in which case you get a clone of the s, and their references to the and instances have been lost (a clone of the is still available - just not a handle to the job instance that is running).

James House
Create a JobExcecutionContext with the given context data. Increments the refire count. Returns a that represents the current . A that represents the current . Put the specified value into the context's data map with the given key. Possibly useful for sharing data between listeners and jobs.

NOTE: this data is volatile - it is lost after the job execution completes, and all TriggerListeners and JobListeners have been notified.

Get the value with the given key from the context's data map. Get a handle to the instance that fired the . Get a handle to the instance that fired the . Get a handle to the referenced by the instance that fired the . If the is being re-executed because of a 'recovery' situation, this method will return . Gets the refire count. The refire count. Get the convenience of this execution context.

The found on this object serves as a convenience - it is a merge of the found on the and the one found on the , with the value in the latter overriding any same-named values in the former. It is thus considered a 'best practice' that the Execute code of a Job retrieve data from the JobDataMap found on this object.

NOTE: Do not expect value 'set' into this JobDataMap to somehow be set back onto a 's own JobDataMap.

Attempts to change the contents of this map typically result in an illegal state.

Get the associated with the . Get the instance of the that was created for this execution.

Note: The Job instance is not available through remote scheduler interfaces.

The actual time the trigger fired. For instance the scheduled time may have been 10:00:00 but the actual fire time may have been 10:00:03 if the scheduler was too busy. Returns the fireTimeUtc. The scheduled time the trigger fired for. For instance the scheduled time may have been 10:00:00 but the actual fire time may have been 10:00:03 if the scheduler was too busy. Returns the scheduledFireTimeUtc. Gets the previous fire time. The previous fire time. Gets the next fire time. The next fire time. Returns the result (if any) that the set before its execution completed (the type of object set as the result is entirely up to the particular job).

The result itself is meaningless to Quartz, but may be informative to s or s that are watching the job's execution.

Set the result (if any) of the 's execution (the type of object set as the result is entirely up to the particular job).

The result itself is meaningless to Quartz, but may be informative to s or s that are watching the job's execution.

The amount of time the job ran for. The returned value will be until the job has actually completed (or thrown an exception), and is therefore generally only useful to s and s. An exception that can be thrown by a to indicate to the Quartz that an error occured while executing, and whether or not the requests to be re-fired immediately (using the same , or whether it wants to be unscheduled. Note that if the flag for 'refire immediately' is set, the flags for unscheduling the Job are ignored. James House Create a JobExcecutionException, with the 're-fire immediately' flag set to . Create a JobExcecutionException, with the given cause. The cause. Create a JobExcecutionException, with the given message. Initializes a new instance of the class. The message. The original cause. Create a JobExcecutionException with the 're-fire immediately' flag set to the given value. Create a JobExcecutionException with the given underlying exception, and the 're-fire immediately' flag set to the given value. Create a JobExcecutionException with the given message, and underlying exception, and the 're-fire immediately' flag set to the given value. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. The class name is null or is zero (0). The info parameter is null. Creates and returns a string representation of the current exception. A string representation of the current exception. Gets or sets a value indicating whether to unschedule firing trigger. true if firing trigger should be unscheduled; otherwise, false. Gets or sets a value indicating whether to unschedule all triggers. true if all triggers should be unscheduled; otherwise, false. Gets or sets a value indicating whether to refire immediately. true if to refire immediately; otherwise, false. Misfire instructions. Instruction not set (yet). Use smart policy. Misfire policy settings for SimpleTrigger. Instructs the that upon a mis-fire situation, the wants to be fired now by .

NOTE: This instruction should typically only be used for 'one-shot' (non-repeating) Triggers. If it is used on a trigger with a repeat count > 0 then it is equivalent to the instruction .

Instructs the that upon a mis-fire situation, the wants to be re-scheduled to 'now' (even if the associated excludes 'now') with the repeat count left as-is. This does obey the end-time however, so if 'now' is after the end-time the will not fire again.

NOTE: Use of this instruction causes the trigger to 'forget' the start-time and repeat-count that it was originally setup with (this is only an issue if you for some reason wanted to be able to tell what the original values were at some later time).

Instructs the that upon a mis-fire situation, the wants to be re-scheduled to 'now' (even if the associated excludes 'now') with the repeat count set to what it would be, if it had not missed any firings. This does obey the end-time however, so if 'now' is after the end-time the will not fire again.

NOTE: Use of this instruction causes the trigger to 'forget' the start-time and repeat-count that it was originally setup with. Instead, the repeat count on the trigger will be changed to whatever the remaining repeat count is (this is only an issue if you for some reason wanted to be able to tell what the original values were at some later time).

NOTE: This instruction could cause the to go to the 'COMPLETE' state after firing 'now', if all the repeat-fire-times where missed.

Instructs the that upon a mis-fire situation, the wants to be re-scheduled to the next scheduled time after 'now' - taking into account any associated , and with the repeat count set to what it would be, if it had not missed any firings. NOTE/WARNING: This instruction could cause the to go directly to the 'COMPLETE' state if all fire-times where missed. Instructs the that upon a mis-fire situation, the wants to be re-scheduled to the next scheduled time after 'now' - taking into account any associated , and with the repeat count left unchanged.

NOTE/WARNING: This instruction could cause the to go directly to the 'COMPLETE' state if all the end-time of the trigger has arrived.

misfire instructions for CronTrigger Instructs the that upon a mis-fire situation, the wants to be fired now by . Instructs the that upon a mis-fire situation, the wants to have it's next-fire-time updated to the next time in the schedule after the current time (taking into account any associated , but it does not want to be fired now. misfire instructions for NthIncludedDayTrigger Instructs the that upon a mis-fire situation, the wants to be fired now by the Instructs the that upon a mis-fire situation, the wants to have nextFireTime updated to the next time in the schedule after the current time, but it does not want to be fired now. A trigger which fires on the Nth day of every interval type , or that is not excluded by the associated calendar. When determining what the Nth day of the month or year is, will skip excluded days on the associated calendar. This would commonly be used in an Nth business day situation, in which the user wishes to fire a particular job on the Nth business day (i.e. the 5th business day of every month). Each also has an associated which indicates at what time of day the trigger is to fire.

All s default to a monthly interval type (fires on the Nth day of every month) with N = 1 (first non-excluded day) and set to 12:00 PM (noon). These values can be changed using the , , and methods. Users may also want to note the and methods.

Take, for example, the following calendar:

July August September Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa 1 W 1 2 3 4 5 W 1 2 W W H 5 6 7 8 W W 8 9 10 11 12 W W H 6 7 8 9 W W 11 12 13 14 15 W W 15 16 17 18 19 W W 12 13 14 15 16 W W 18 19 20 21 22 W W 22 23 24 25 26 W W 19 20 21 22 23 W W 25 26 27 28 29 W W 29 30 31 W 26 27 28 29 30 W Where W's represent weekend days, and H's represent holidays, all of which are excluded on a calendar associated with an with n=5 and intervalType=IntervalTypeMonthly. In this case, the trigger would fire on the 8th of July (because of the July 4 holiday), the 5th of August, and the 8th of September (because of Labor Day).
Aaron Craven
Indicates a monthly trigger type (fires on the Nth included day of every month). indicates a yearly trigger type (fires on the Nth included day of every year). Indicates a weekly trigger type (fires on the Nth included day of every week). When using this interval type, care must be taken not to think of the value of as an analog to . Such a comparison can only be drawn when there are no calendars associated with the trigger. To illustrate, consider an with n = 3 which is associated with a Calendar excluding non-weekdays. The trigger would fire on the 3rd included day of the week, which would be 4th actual day of the week. Create an with no specified name, group, or . This will result initially in a default monthly trigger that fires on the first day of every month at 12:00 PM (n = 1, intervalType=, fireAtTime="12:00"). Note that , , , and , must be called before the can be placed into a . Create an with the given name and default group but no specified . This will result initially in a default monthly trigger that fires on the first day of every month at 12:00 PM (=1, intervalType=, fireAtTime=12:00").

Note that and must be called before the can be placed into a .

the name for the
Create an with the given name and group but no specified . This will result initially in a default monthly trigger that fires on the first day of every month at 12:00 PM (=1, intervalType=, fireAtTime=12:00").

Note that and must be called before the can be placed into a .

the name for the the group for the
Create an with the given name and group and the specified . This will result initially in a default monthly trigger that fires on the first day of every month at 12:00 PM (=1, intervalType=, fireAtTime="12:00"). The name for the . The group for the . The name of the job to associate with the . The group containing the job to associate with the . Returns the next UTC time at which the will fire. If the trigger will not fire again, will be returned.

Because of the conceptual design of , it is not always possible to decide with certainty that the trigger will never fire again. Therefore, it will search for the next fire time up to a given cutoff. These cutoffs can be changed by using the property. The default cutoff is 12 of the intervals specified by intervalType.

The returned value is not guaranteed to be valid until after the trigger has been added to the scheduler.

the next fire time for the trigger
Returns the previous UTC time at which the fired. If the trigger has not yet fired, will be returned. the previous fire time for the trigger Returns the first time the will fire after the specified date.

Because of the conceptual design of , it is not always possible to decide with certainty that the trigger will never fire again. Therefore, it will search for the next fire time up to a given cutoff. These cutoffs can be changed by using the property. The default cutoff is 12 of the intervals specified by intervalType.

Therefore, for triggers with intervalType = , if the trigger will not fire within 12 weeks after the given date/time, will be returned. For triggers with intervalType = , if the trigger will not fire within 12 months after the given date/time, will be returned. For triggers with intervalType = , if the trigger will not fire within 12 years after the given date/time, will be returned. In all cases, if the trigger will not fire before , will be returned.

The time after which to find the nearest fire time. This argument is treated as exclusive 舒 that is, if afterTime is a valid fire time for the trigger, it will not be returned as the next fire time. the first time the trigger will fire following the specified date
Called when the has decided to 'fire' the trigger (Execute the associated ), in order to give the a chance to update itself for its next triggering (if any). Called by the scheduler at the time a is first added to the scheduler, in order to have the compute its first fire time, based on any associated calendar.

After this method has been called, should return a valid answer.

the first time at which the will be fired by the scheduler, which is also the same value will return (until after the first firing of the ).
Called after the has executed the associated with the in order to get the final instruction code from the trigger. The that was used by the 's method. The thrown by the , if any (may be ) one of the Trigger.INSTRUCTION_XXX constants. Used by the to determine whether or not it is possible for this to fire again. '

If the returned value is then the may remove the from the

A boolean indicator of whether the trigger could potentially fire again.
Indicates whether is a valid misfire instruction for this . Whether is valid. Updates the 's state based on the MisfireInstruction that was selected when the was created

If the misfire instruction is set to MISFIRE_INSTRUCTION_SMART_POLICY, then the instruction will be interpreted as .

a new or updated calendar to use for the trigger
Updates the 's state based on the given new version of the associated . A new or updated calendar to use for the trigger the amount of time that must be between "now" and the time the next firing of the trigger is supposed to occur. Calculates the first time an with intervalType = IntervalTypeWeekly will fire after the specified date. See for more information. The time after which to find the nearest fire time. This argument is treated as exclusive 舒 that is, if afterTime is a valid fire time for the trigger, it will not be returned as the next fire time. the first time the trigger will fire following the specified date Calculates the first UTC time an with intervalType = will fire after the specified date. See for more information. The UTC time after which to find the nearest fire time. This argument is treated as exclusive 舒 that is, if afterTime is a valid fire time for the trigger, it will not be returned as the next fire time. the first time the trigger will fire following the specified date Calculates the first time an with intervalType = will fire after the specified date. See for more information. The UTC time after which to find the nearest fire time. This argument is treated as exclusive 舒 that is, if afterTime is a valid fire time for the trigger, it will not be returned as the next fire time. the first time the trigger will fire following the specified date Gets or sets the day of the interval on which the should fire. If the Nth day of the interval does not exist (i.e. the 32nd of a month), the trigger simply will never fire. N may not be less than 1. Returns the interval type for the . Sets the interval type for the . If , the trigger will fire on the Nth included day of every month. If , the trigger will fire on the Nth included day of every year. If , the trigger will fire on the Nth included day of every week. Returns the fire time for the as a string with the format "HH:MM[:SS]", with HH representing the 24-hour clock hour of the fire time. Seconds are optional and their inclusion depends on whether or not they were provided to . Returns the for the .

Because of the conceptual design of , it is not always possible to decide with certainty that the trigger will never fire again. Therefore, it will search for the next fire time up to a given cutoff. These cutoffs can be changed by using the property. The default cutoff is 12 of the intervals specified by intervalType" />.

Because of the conceptual design of , it is not always possible to decide with certainty that the trigger will never fire again. Therefore, it will search for the next fire time up to a given cutoff. These cutoffs can be changed by using the method. The default cutoff is 12 of the intervals specified by intervalType".

In most cases, the default value of this setting (12) is sufficient (it is highly unlikely, for example, that you will need to look at more than 12 months of dates to ensure that your trigger will never fire again). However, this setting is included to allow for the rare exceptions where this might not be true.

For example, if your trigger is associated with a calendar that excludes a great many dates in the next 12 months, and hardly any following that, it is possible (if is large enough) that you could run into this situation.

Returns the last UTC time the will fire. If the trigger will not fire at any point between and , will be returned. the last time the trigger will fire. Tells whether this Trigger instance can handle events in millisecond precision. Sets or gets the time zone in which the will be resolved. If no time zone is provided, then the default time zone will be used. Gets or sets the trigger's calendar week rule. The trigger calendar week rule. Gets or sets the trigger's calendar first day of week rule. The trigger calendar first day of week. An exception that is thrown to indicate that an attempt to store a new object (i.e. , or ) in a failed, because one with the same name and group already exists. James House

Create a with the given message.

Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. The class name is null or is zero (0). The info parameter is null.

Create a and auto-generate a message using the name/group from the given .

The message will read:
"Unable to store Job with name: '__' and group: '__', because one already exists with this identification."

Create a and auto-generate a message using the name/group from the given .

The message will read:
"Unable to store Trigger with name: '__' and group: '__', because one already exists with this identification."

An exception that is thrown to indicate that there is a misconfiguration of the - or one of the components it configures. James House Create a with the given message. Create a with the given message and cause. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. The class name is null or is zero (0). The info parameter is null. Holds context/environment data that can be made available to Jobs as they are executed. James House Create an empty . Create a with the given data. Instructs Scheduler what to do with a trigger and job. Instructs the that the has no further instructions. Instructs the that the wants the to re-Execute immediately. If not in a 'RECOVERING' or 'FAILED_OVER' situation, the execution context will be re-used (giving the the abilitiy to 'see' anything placed in the context by its last execution). Instructs the that the should be put in the state. Instructs the that the wants itself deleted. Instructs the that all s referencing the same as this one should be put in the state. Instructs the that all s referencing the same as this one should be put in the state. Instructs the that the should be put in the state. Describes the settings and capabilities of a given instance. James House Initializes a new instance of the class. Name of the scheduler. The scheduler instance. The scheduler type. if set to true, scheduler is a remote scheduler. if set to true, scheduler is started. if set to true, scheduler is in standby mode. if set to true, scheduler is shutdown. The start time. The number of jobs executed. The job store type. if set to true, job store is persistent. The thread pool type. Size of the thread pool. The version string. Returns a formatted (human readable) string describing all the 's meta-data values.

The format of the string looks something like this:

            Quartz Scheduler 'SchedulerName' with instanceId 'SchedulerInstanceId' Scheduler class: 'Quartz.Impl.StdScheduler' - running locally. Running since: '11:33am on Jul 19, 2002' Not currently paused. Number of Triggers fired: '123' Using thread pool 'Quartz.Simpl.SimpleThreadPool' - with '8' threads Using job-store 'Quartz.Impl.JobStore' - which supports persistence.
            

Return a simple string representation of this object. Returns the name of the . Returns the instance Id of the . Returns the class-name of the instance. Returns whether the is being used remotely (via remoting). Returns whether the scheduler has been started. Note: may return even if returns . Reports whether the is in standby mode. Note: may return even if returns . Reports whether the has been Shutdown. Returns the class-name of the instance that is being used by the . Returns the type name of the instance that is being used by the . Returns the number of threads currently in the 's Returns the version of Quartz that is running. Returns the at which the Scheduler started running. null if the scheduler has not been started. Returns the number of jobs executed since the started.. Returns whether or not the 's instance supports persistence. A concrete that is used to fire a at a given moment in time, and optionally repeated at a specified interval. James House Contributions by Lieven Govaerts of Ebitec Nv, Belgium. Marko Lahma (.NET) Used to indicate the 'repeat count' of the trigger is indefinite. Or in other words, the trigger should repeat continually until the trigger's ending timestamp. Create a with no settings. Create a that will occur immediately, and not repeat. Create a that will occur immediately, and not repeat. Create a that will occur immediately, and repeat at the the given interval the given number of times. Create a that will occur immediately, and repeat at the the given interval the given number of times. Create a that will occur at the given time, and not repeat. Create a that will occur at the given time, and not repeat. Create a that will occur at the given time, and repeat at the the given interval the given number of times, or until the given end time. The name. A UTC set to the time for the to fire. A UTC set to the time for the to quit repeat firing. The number of times for the to repeat firing, use for unlimited times. The time span to pause between the repeat firing. Create a that will occur at the given time, and repeat at the the given interval the given number of times, or until the given end time. The name. The group. A UTC set to the time for the to fire. A UTC set to the time for the to quit repeat firing. The number of times for the to repeat firing, use for unlimited times. The time span to pause between the repeat firing. Create a that will occur at the given time, fire the identified and repeat at the the given interval the given number of times, or until the given end time. The name. The group. Name of the job. The job group. A set to the time for the to fire. A set to the time for the to quit repeat firing. The number of times for the to repeat firing, use RepeatIndefinitely for unlimited times. The time span to pause between the repeat firing. Validates the misfire instruction. The misfire instruction. Updates the 's state based on the MisfireInstruction value that was selected when the was created. If MisfireSmartPolicyEnabled is set to true, then the following scheme will be used:
  • If the Repeat Count is 0, then the instruction will be interpreted as .
  • If the Repeat Count is , then the instruction will be interpreted as . WARNING: using MisfirePolicy.SimpleTrigger.RescheduleNowWithRemainingRepeatCount with a trigger that has a non-null end-time may cause the trigger to never fire again if the end-time arrived during the misfire time span.
  • If the Repeat Count is > 0, then the instruction will be interpreted as .
Called when the has decided to 'fire' the trigger (Execute the associated ), in order to give the a chance to update itself for its next triggering (if any). Updates the instance with new calendar. The calendar. The misfire threshold. Called by the scheduler at the time a is first added to the scheduler, in order to have the compute its first fire time, based on any associated calendar.

After this method has been called, should return a valid answer.

The first time at which the will be fired by the scheduler, which is also the same value will return (until after the first firing of the ).
Returns the next time at which the will fire. If the trigger will not fire again, will be returned. The value returned is not guaranteed to be valid until after the has been added to the scheduler. Returns the previous time at which the fired. If the trigger has not yet fired, will be returned. Set the next UTC time at which the should fire. This method should not be invoked by client code. Set the previous UTC time at which the fired. This method should not be invoked by client code. Returns the next UTC time at which the will fire, after the given UTC time. If the trigger will not fire after the given time, will be returned. Returns the last UTC time at which the will fire, before the given time. If the trigger will not fire before the given time, will be returned. Computes the number of times fired between the two UTC date times. The UTC start date and time. The UTC end date and time. Determines whether or not the will occur again. Validates whether the properties of the are valid for submission into a . Get or set thhe number of times the should repeat, after which it will be automatically deleted. Get or set the the time interval at which the should repeat. Get or set the number of times the has already fired. Returns the final UTC time at which the will fire, if repeatCount is RepeatIndefinitely, null will be returned.

Note that the return time may be in the past.

Tells whether this Trigger instance can handle events in millisecond precision. All trigger states known to Scheduler. Indicates that the is in the "normal" state. Indicates that the is in the "paused" state. Indicates that the is in the "complete" state. "Complete" indicates that the trigger has not remaining fire-times in its schedule. Indicates that the is in the "error" state.

A arrives at the error state when the scheduler attempts to fire it, but cannot due to an error creating and executing its related job. Often this is due to the 's class not existing in the classpath.

When the trigger is in the error state, the scheduler will make no attempts to fire it.

Indicates that the is in the "blocked" state. A arrives at the blocked state when the job that it is associated with is a and it is currently executing. Indicates that the does not exist. Convenience and utility methods for simplifying the construction and configuration of s. Please submit suggestions for additional convenience methods to either the Quartz user forum or the developer's mail list at source forge. James House Constant indicating last day of month. Milliseconds in minute. Milliseconds in hour. Seconds in day. Milliseconds in day. Initializes a new instance of the class. Set the given 's name to the given value, and its group to the default group (). the tigger to change name to the new trigger name Set the given 's name to the given value, and its group to the given group. the tigger to change name to the new trigger name the new trigger group Make a trigger that will fire every day at the given time.

The generated trigger will not have its name, group, or end-time set. The Start time defaults to 'now'.

the hour (0-23) upon which to fire the minute (0-59) upon which to fire the new trigger
Make a trigger that will fire every day at the given time.

The generated trigger will not have its group or end-time set. The Start time defaults to 'now'.

the trigger's name the hour (0-23) upon which to fire the minute (0-59) upon which to fire the newly created trigger
Make a trigger that will fire every week at the given day and time.

The generated trigger will not have its name, group, or end-time set. The Start time defaults to 'now'.

(1-7) the day of week upon which to fire the hour (0-23) upon which to fire the minute (0-59) upon which to fire the new trigger
Make a trigger that will fire every week at the given day and time.

The generated trigger will not have its group, or end-time set. The Start time defaults to 'now'.

the trigger's name the day of week upon which to fire the hour (0-23) upon which to fire the minute (0-59) upon which to fire the newly created trigger
Make a trigger that will fire every month at the given day and time.

The generated trigger will not have its name, group, or end-time set. The Start time defaults to 'now'.

If the day of the month specified does not occur in a given month, a firing will not occur that month. (i.e. if dayOfMonth is specified as 31, no firing will occur in the months of the year with fewer than 31 days).

(1-31, or -1) the day of week upon which to fire the hour (0-23) upon which to fire the minute (0-59) upon which to fire the newly created trigger
Make a trigger that will fire every month at the given day and time.

The generated trigger will not have its group, or end-time set. The Start time defaults to 'now'.

If the day of the month specified does not occur in a given month, a firing will not occur that month. (i.e. if dayOfMonth is specified as 31, no firing will occur in the months of the year with fewer than 31 days).

the trigger's name (1-31, or -1) the day of week upon which to fire the hour (0-23) upon which to fire the minute (0-59) upon which to fire the newly created trigger
Make a trigger that will fire times, waiting between each fire. The generated trigger will not have its name, group, or end-time set. The Start time defaults to 'now'. the newly created trigger Make a trigger that will fire times, waiting between each fire.

The generated trigger will not have its name, group, or end-time set. The Start time defaults to 'now'.

the trigger's name the new trigger
Make a trigger that will fire every second, indefinitely.

The generated trigger will not have its name, group, or end-time set. The Start time defaults to 'now'.

the new trigger
Make a trigger that will fire every second, indefinitely.

The generated trigger will not have its group, or end-time set. The Start time defaults to 'now'.

the trigger's name the new trigger
Make a trigger that will fire every N seconds, indefinitely.

The generated trigger will not have its name, group, or end-time set. The Start time defaults to 'now'.

the number of seconds between firings the new trigger
Make a trigger that will fire every N seconds, with the given number of repeats.

The generated trigger will not have its name, group, or end-time set. The Start time defaults to 'now'.

the number of seconds between firings the number of times to repeat the firing the new trigger
Make a trigger that will fire every N seconds, with the given number of repeats.

The generated trigger will not have its group, or end-time set. The Start time defaults to 'now'.

the trigger's name the number of seconds between firings the number of times to repeat the firing the new trigger
Make a trigger that will fire every minute, indefinitely.

The generated trigger will not have its name, group, or end-time set. The Start time defaults to 'now'.

the new trigger
Make a trigger that will fire every minute, indefinitely.

The generated trigger will not have its group, or end-time set. The Start time defaults to 'now'.

the trigger's name the new trigger
Make a trigger that will fire every N minutes, indefinitely.

The generated trigger will not have its name, group, or end-time set. The Start time defaults to 'now'.

the number of minutes between firings the new trigger
Make a trigger that will fire every N minutes, with the given number of repeats.

The generated trigger will not have its name, group, or end-time set. The Start time defaults to 'now'.

the number of minutes between firings the number of times to repeat the firing the new trigger
Make a trigger that will fire every N minutes, with the given number of repeats.

The generated trigger will not have its group, or end-time set. The Start time defaults to 'now'.

the trigger's name the number of minutes between firings the number of times to repeat the firing the new trigger
Make a trigger that will fire every hour, indefinitely.

The generated trigger will not have its name, group, or end-time set. The Start time defaults to 'now'.

the new trigger
Make a trigger that will fire every hour, indefinitely.

The generated trigger will not have its group, or end-time set. The Start time defaults to 'now'.

the trigger's name the new trigger
Make a trigger that will fire every N hours, indefinitely.

The generated trigger will not have its name, group, or end-time set. The Start time defaults to 'now'.

the number of hours between firings the new trigger
Make a trigger that will fire every N hours, with the given number of repeats.

The generated trigger will not have its name, group, or end-time set. The Start time defaults to 'now'.

the number of hours between firings the number of times to repeat the firing the new trigger
Make a trigger that will fire every N hours, with the given number of repeats.

The generated trigger will not have its group, or end-time set. The Start time defaults to 'now'.

the trigger's name the number of hours between firings the number of times to repeat the firing the new trigger
Returns a date that is rounded to the next even hour above the given date.

For example an input date with a time of 08:13:54 would result in a date with the time of 09:00:00. If the date's time is in the 23rd hour, the date's 'day' will be promoted, and the time will be set to 00:00:00.

the Date to round, if the current time will be used the new rounded date
Returns a date that is rounded to the previous even hour below the given date.

For example an input date with a time of 08:13:54 would result in a date with the time of 08:00:00.

the Date to round, if the current time will be used the new rounded date
Returns a date that is rounded to the next even minute above the given date.

For example an input date with a time of 08:13:54 would result in a date with the time of 08:14:00. If the date's time is in the 59th minute, then the hour (and possibly the day) will be promoted.

The Date to round, if the current time will be used The new rounded date
Returns a date that is rounded to the previous even minute below the given date.

For example an input date with a time of 08:13:54 would result in a date with the time of 08:13:00.

the Date to round, if the current time will be used the new rounded date
Returns a date that is rounded to the next even second above the given date. the Date to round, if the current time will be used the new rounded date Returns a date that is rounded to the previous even second below the given date.

For example an input date with a time of 08:13:54.341 would result in a date with the time of 08:13:00.000.

the Date to round, if the current time will be used the new rounded date
Returns a date that is rounded to the next even multiple of the given minute.

For example an input date with a time of 08:13:54, and an input minute-base of 5 would result in a date with the time of 08:15:00. The same input date with an input minute-base of 10 would result in a date with the time of 08:20:00. But a date with the time 08:53:31 and an input minute-base of 45 would result in 09:00:00, because the even-hour is the next 'base' for 45-minute intervals.

More examples:
Input Time Minute-Base Result Time
11:16:41 20 11:20:00
11:36:41 20 11:40:00
11:46:41 20 12:00:00
11:26:41 30 11:30:00
11:36:41 30 12:00:00
11:16:41 17 11:17:00
11:17:41 17 11:34:00
11:52:41 17 12:00:00
11:52:41 5 11:55:00
11:57:41 5 12:00:00
11:17:41 0 12:00:00
11:17:41 1 11:08:00

the Date to round, if the current time will be used the base-minute to set the time on the new rounded date
Returns a date that is rounded to the next even multiple of the given minute.

The rules for calculating the second are the same as those for calculating the minute in the method .

The date. The second base.
Returns a list of Dates that are the next fire times of a . The input trigger will be cloned before any work is done, so you need not worry about its state being altered by this method. The trigger upon which to do the work The calendar to apply to the trigger's schedule The number of next fire times to produce List of java.util.Date objects Returns a list of Dates that are the next fire times of a that fall within the given date range. The input trigger will be cloned before any work is done, so you need not worry about its state being altered by this method.

NOTE: if this is a trigger that has previously fired within the given date range, then firings which have already occured will not be listed in the output List.

The trigger upon which to do the work The calendar to apply to the trigger's schedule The starting date at which to find fire times The ending date at which to stop finding fire times List of java.util.Date objects
Translate a date and time from a users timezone to the another (probably server) timezone to assist in creating a simple trigger with the right date and time. the date to translate the original time-zone the destination time-zone the translated UTC date Gets the offset from UT for the given date in the given timezone, taking into account daylight savings. the date that is the base for the offset the time-zone to calculate to offset to the offset This functions determines if the TimeZone uses daylight saving time TimeZone instance to validate True or false depending if daylight savings time is used An exception that is thrown to indicate that a call to failed without interrupting the Job. James House Create a with the given message. Create a with the given cause. Initializes a new instance of the class. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. The class name is null or is zero (0). The info parameter is null.