spring-framework / org.springframework.scheduling.quartz / LocalDataSourceJobStore

LocalDataSourceJobStore

open class LocalDataSourceJobStore : JobStoreCMT

Subclass of Quartz's JobStoreCMT class that delegates to a Spring-managed DataSource instead of using a Quartz-managed connection pool. This JobStore will be used if SchedulerFactoryBean's "dataSource" property is set.

Supports both transactional and non-transactional DataSource access. With a non-XA DataSource and local Spring transactions, a single DataSource argument is sufficient. In case of an XA DataSource and global JTA transactions, SchedulerFactoryBean's "nonTransactionalDataSource" property should be set, passing in a non-XA DataSource that will not participate in global transactions.

Operations performed by this JobStore will properly participate in any kind of Spring-managed transaction, as it uses Spring's DataSourceUtils connection handling methods that are aware of a current transaction.

Note that all Quartz Scheduler operations that affect the persistent job store should usually be performed within active transactions, as they assume to get proper locks etc.

Author
Juergen Hoeller

Since
1.1

See Also
SchedulerFactoryBean#setDataSourceSchedulerFactoryBean#setNonTransactionalDataSourceorg.springframework.jdbc.datasource.DataSourceUtils#doGetConnectionorg.springframework.jdbc.datasource.DataSourceUtils#releaseConnection

Constructors

<init>

LocalDataSourceJobStore()

Subclass of Quartz's JobStoreCMT class that delegates to a Spring-managed DataSource instead of using a Quartz-managed connection pool. This JobStore will be used if SchedulerFactoryBean's "dataSource" property is set.

Supports both transactional and non-transactional DataSource access. With a non-XA DataSource and local Spring transactions, a single DataSource argument is sufficient. In case of an XA DataSource and global JTA transactions, SchedulerFactoryBean's "nonTransactionalDataSource" property should be set, passing in a non-XA DataSource that will not participate in global transactions.

Operations performed by this JobStore will properly participate in any kind of Spring-managed transaction, as it uses Spring's DataSourceUtils connection handling methods that are aware of a current transaction.

Note that all Quartz Scheduler operations that affect the persistent job store should usually be performed within active transactions, as they assume to get proper locks etc.

Properties

NON_TX_DATA_SOURCE_PREFIX

static val NON_TX_DATA_SOURCE_PREFIX: String

Name used for the non-transactional ConnectionProvider for Quartz. This provider will delegate to the local Spring-managed DataSource.

TX_DATA_SOURCE_PREFIX

static val TX_DATA_SOURCE_PREFIX: String

Name used for the transactional ConnectionProvider for Quartz. This provider will delegate to the local Spring-managed DataSource.

Functions

initialize

open fun initialize(loadHelper: ClassLoadHelper, signaler: SchedulerSignaler): Unit