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

Pet*_*ter 5 datasource xa quartz-scheduler

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

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

jho*_*use 5

有谁知道 Quartz (JobsStoreCMT) 是否可以只处理事务数据源?

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