JDBCJobStore Rewrite

Introduction

It seems that the time is overdue for a rewrite of the JDBCJobStore persistence mechanism. Reasons:

  1. The code has grown too big.
  2. Does not support container-managed-transactions in a J2EE environment.
  3. The DBMS-specific code could be organized in a better way.
  4. XA support is not functional.
  5. Clustering support is not functional.

This document is meant to provide a high-level design of a new approach for the JDBC-based persistence engine.

Class Diagram

Sequence Diagram

Below is the sequence diagram for the execution of the storeJobAndTrigger() method with a configuration of:
jobStore.class = org.quartz.impl.JDBCJobStore
jobStore.dbms.type = PostgreSQL
jobStore.dbms.version = 7.2.1

Other persistence operations and job store configurations would have similar sequence diagrams. One could visualize the sequence diagram for JDBCJobStoreCMT on Oracle 8i as being the same without the setAutoCommit() / commit() / rollback() calls, and with the Oracle8iDelegate instead of the PostgreSQL7xDelegate.

References

  1. Quartz Issue Tracker Entry

Jeffrey Wescott
Last modified: Tue Nov 12 14:50:03 PST 2002