九. 配置 JobStoreCMT
JobStoreCMT 提供了另一类型的 JobStore,它能工作于一个关系型数据库之下。你能通过设置 org.quartz.jobStore.class 属性来选用 JobStoreCMT:
org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreCMT
当使用 JobStoreCMT 时,可设置一些附加属性,它们是表 A.5 所示的。
名称 | 必须 | 类型 | 默认值 | |
org.quartz.jobStore.nonManagedTXDataSource | 是 | String | null | |
org.quartz.jobStore.dontSetNonManagedTX- ConnectionAutoCommitFalse |
否 | Boolean | false | |
org.quartz.jobStore.txIsolationLevelReadCommited | 否 | Boolean | false |
·org.quartz.jobStore.nonManagedTXDataSource
JobStoreCMT 需要一个(即第二个) 数据源,其中包含的连接不作为容器管理事物的一部分。这个属性值必须是在属性配置文件中定义的某一个 DataSource 的名称。这个数据源必须包含非 CMT 的连接,换句话说就是,其中的连接的 commit() 和 rollback() 方法能够由 Quartz 直接且合法的调用。
·org.quartz.jobStore.dontSetNonManagedTXConnectionAutoCommitFalse
这个属性意义同 org.quartz.jobStore.dontSetAutoCommitFalse,只是它作用于 nonManagedTXDataSource。
·org.quartz.jobStore.txIsolationLevelReadCommited
当设置为 true,这一属性就告诉 Quartz 去调用不受管理 JDBC 连接的 setTransactionIsolation(Connection.TRANSACTION_READ_UNCOMMITED) 方法。这有助于防止某些数据库(如 DB2) 在高负载及长事物发生锁超时的现象。
关于 JDBC JobStore 更多的信息,参见第六章,"JobStore 和持久化"