Java Spring与quartz和jpa交易
阅读它时说,JobStoreCMT支持JTA事务 是否可以将quartz配置为与JPA事务管理器一起运行?如果不是,我假设Atomikos或Bitronix应该与spring一起使用以启用JTA 基本上我希望quartz调度器在抛出异常时回滚,例如Java Spring与quartz和jpa交易,java,spring,spring-data-jpa,quartz-scheduler,spring-transactions,Java,Spring,Spring Data Jpa,Quartz Scheduler,Spring Transactions,阅读它时说,JobStoreCMT支持JTA事务 是否可以将quartz配置为与JPA事务管理器一起运行?如果不是,我假设Atomikos或Bitronix应该与spring一起使用以启用JTA 基本上我希望quartz调度器在抛出异常时回滚,例如 @Transactional public void scheduleJob(QuartzJobData quartzJobData) throws Exception { SimpleTrigger trigger = (SimpleTr
@Transactional
public void scheduleJob(QuartzJobData quartzJobData) throws Exception {
SimpleTrigger trigger = (SimpleTrigger) newTrigger()
.withIdentity(name, group)
...
.build();
scheduler.scheduleJob(trigger);
throw new Exception("my exception");
// after exception I'd expect quartz to roll back
}
注意在quartz作业中运行事务本身没有任何问题。我只对quartz scheduler没有如上面的代码示例所示回滚有问题。可能重复的我认为您可能需要显式设置rollboor=Throwable.classDenis Ismailovski我会有,尽管quartz不是由spring管理的,并且传播级别在那里并不重要?在将数据保存到DB之前,quartz中可能有10个方法?我快速查看了quartz源代码,我认为它在StdJDBCDelegate.selectTriggersingGroup中创建了一个准备好的语句,并在JobStoreSupport.getConnection()中获取连接