使用JobStoreTX时不会触发Quartz触发器

时间:2018-08-03 14:55:42

标签: quartz-scheduler websphere-liberty quartz

我正在IBM Liberty Profile下为我的应用程序配置Quartz。当我使用默认的RAMJobStore时。触发器被触发,预定的作业运行了。这是代码:

JobDetail job = JobBuilder.newJob(QuartzBatchJobs.class).build();
Trigger trigger = TriggerBuilder.newTrigger().startNow().build();
try {
    Scheduler scheduler = new StdSchedulerFactory().getScheduler();
    scheduler.start();
    scheduler.scheduleJob(job, trigger);
} catch (Exception e) {
    System.out.println(e.toString());
}

但是,当我切换到jdbcjobstore JobStoreTX并运行该应用程序时,所有的石英表都已更新,但触发器本身未触发,该作业未运行。这是我的quartz.properties:

org.quartz.threadPool.threadCount = 10
org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate
org.quartz.jobStore.tablePrefix=QRTZ_
org.quartz.jobStore.dataSource=quartzRepo
org.quartz.dataSource.quartzRepo.jndiURL=jdbc/quartzRepo

这是Liberty Profile的server.xml,用于数据源。

<dataSource id="quartzRepo" jndiName="jdbc/quartzRepo" type="javax.sql.XADataSource" isolationLevel="TRANSACTION_READ_COMMITTED">
<jdbcDriver libraryRef="DB2Jcc4Lib" />
<properties.db2.jcc currentSchema="qrtz" databaseName="localdb2" password="${jdbc.quartzRepo.password}" portNumber="50000" serverName="localhost" user="${jdbc.quartzRepo.user}" driverType="4" />
</dataSource>

你们能给我一些关于这个问题的建议吗?谢谢!

0 个答案:

没有答案