为什么Quartz Scheduler(JobSToreCMT)需要使用两个数据源?

时间:2011-09-14 20:42:57

标签: datasource quartz-scheduler xa

我发现了这个答案: 1.对Quartz要求数据源的长期回答,但是,如果你想要更深入的答案,我相信我需要深入研究源代码或做更多的研究: 一个。 JobStoreCMT依赖于使用Quartz的应用程序管理的事务。在尝试安排(或取消安排)作业/触发器之前,必须正在进行JTA事务。这允许调度的“工作”成为应用程序“更大”事务的一部分。 JobStoreCMT实际上需要使用两个数据源 - 一个具有由应用程序服务器管理的连接的事务(通过JTA)和一个具有不参与全局(JTA)事务的连接的数据源。当应用程序使用JTA事务(例如通过EJB会话Bean)执行其工作时,JobStoreCMT是合适的。 (参考; http://quartz-scheduler.org/documentation/quartz-1.x/configuration/ConfigJobStoreCMT

但是,在我们的特定应用程序中存在与非事务性驱动程序的冲突。有没有人知道Quartz(JobsStoreCMT)是否可以只使用事务数据源?

1 个答案:

答案 0 :(得分:4)

  

有没有人知道Quartz(JobsStoreCMT)是否可以只使用事务数据源?

不,您必须拥有每种类型的数据源。客户端应用程序对API的调用使用具有XA功能的连接,以便工作连接是应用程序的事务。调度程序的内部线程完成的工作使用非XA连接。