0
我使用石英2.1.6使用Weblogic 12在集群模式(实际上仅1 dev的机器),并使用标准的JDBC代理不删除(org.quartz.impl.jdbcjobstore.StdJDBCDelegate
)触发在石英2.16
我可以具有每请求多个触发器。触发关联到一个持久的工作,我删除与下面的代码的单个请求相关联的所有触发器:
Scheduler sched;
try {
sched = new StdSchedulerFactory().getScheduler("MyScheduler");
Set<TriggerKey> triggerKeys = sched.getTriggerKeys(triggerGroupEquals(String.valueOf(requestId)));
for (TriggerKey k : triggerKeys) {
if (sched.unscheduleJob(k)) {
logger.info("Removed trigger " + k.toString() + " for request " + requestId);
}
}
} catch (SchedulerException e) {
logger.error(e);
}
在日志中我看到消息“删除触发123请求ABC”,但触发器仍然存在于数据库中并仍然触发该作业。我在控制台中没有异常跟踪。我使用XA数据源,但被调用的EJB业务方法被注释为支持事务。我看不到回滚。零星地触发器被删除,但不是立即。
我错过了什么?
如果我在使用Oracle 11 DBMS使用Weblogic 12时,应该在quartz.properties
中声明什么JDBC委托?
其实,在描述中称,EJB业务方法,指出: @TransactionAttribute(TransactionAttributeType.SUPPORTS) 它应该而状态: @TransactionAttribute(TransactionAttributeType.REQUIRED) 正确的事务声明解决了这个问题。 谢谢 – yakup
任何时候:)我很高兴它有助于解决您的问题,我也遇到了Quartz的一些问题......干杯,Uri – Uri