Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3
Note
titleWork in progress

This site is in the process of being reviewed and updated.

Introduction

There is a need to schedule events and tasks within the server. We will use Quartz to do this.

...

Besides these needs, administrators will want to schedule certain tasks within the server as well. For example the server can be backed up using a trigger to offline then backup the server. We also need it for mandating password policy.

Quartz Integration

A single Quartz Scheduler would be started on ApacheDS core system startup with some configurable number of threads. This way the scheduler based capabilities are available even when networking is not enabled. Once started the scheduler would need to be shutdown on system shutdown.

...

With LDAP entries for storing jobs and triggers we're going to need a custom schema for scheduling information. The rest of this section defines the attributes and objectClasses that will be needed.

A JobDetail has the following attributes:

  • name
  • description
  • group
  • isDurable
  • isVolatile
  • isRecoverable
  • a Java Class implementing the Job interface
  • data map entries: key value pairs

All triggers have the following attributes:

  • name
  • start time
  • stop time
  • group
  • job name
  • job group

A trigger has the following attributes if simple:

  • repeat count
  • repeat interval

A trigger has the following attributes if it is periodic using the quartz cron notation:

  • cron expression
No Format
Note

Don't forget to parameterize access to start and stop times for cron based triggers.

Note
titleOriginal schema of Quartz

Quartz internally stores a lot more information related to the created jobs and triggers. One way to achieve LDAP store for quartz is to expose the minimal and required information as entries from the custom store which holds the original data-structures used by quartz in some sort of serialized form.

This frees us from representing and maintaining all the relational aspects of quartz schema in LDAP at the same time allowing to edit the job/trigger configuration through LDAP entries.

One other feature that may be feasible is to create a new job/trigger on the fly by including a beanshell script submitted through the client.

Adding New Job Entries to Scheduler

...

The currently running jobs should also be displayed under the configuration entry for the scheduler within the ou=system area of the server.

Quartz RDBMS Schema

All tables' description - quartz-jdbcstore-tables-with-allcolumns.pdf
ER diagram of the quartz's RDBS schema - quartz-jdbcstore-er-diagram.pdf

Quartz Schema

See Quartz Schema