3

我的 Web 应用程序在 WebSphere 6.0 上运行,并且还有一些 Quartz 调度程序任务。如果我在 hibernate.cfg.xml 中进行这样的查找:

<property name="jta.UserTransaction">java:comp/UserTransaction</property>

它适用于我的 Web 应用程序,但 Quartz Timers 启动的任何线程都无法使用该查找字符串访问数据库。但是如果我使用

<property name="jta.UserTransaction">jta/usertransaction</property>

然后是相反的。我会让石英计时器工作,但我无法在我的 Web 应用程序中进行查找。

有没有办法让它们都使用相同的休眠配置?

EDT:这是我的quartz.properties 文件。顺便说一句,Quartz 版本是 1.5.2。

org.quartz.scheduler.instanceName = TestScheduler
org.quartz.scheduler.instanceId = one


org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount =  5
org.quartz.threadPool.threadPriority = 4

org.quartz.jobStore.misfireThreshold = 5000

org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore
4

2 回答 2

0

我认为您错过了quartz.properties 中的事务管理。像这样的东西:

org.quartz.scheduler.userTransactionURL=jta/usertransaction
org.quartz.scheduler.wrapJobExecutionInUserTransaction=true

这个想法是告诉 Quartz 将作业执行包装在事务中以及从哪里获取它。

于 2014-02-27T14:49:25.667 回答
0

我不知道这是否与您有关,但我最近遇到了类似的问题。我的问题是远程和本地访问,并稍微改变了我的设计,并将接口名称添加到我的 @Local 和 @Remote 注释中对我有用。

于 2014-02-27T12:54:25.350 回答