Проблема JNDI с Websphere 6 UserTrasaction и Quartz Scheduler

У меня есть веб-приложение, работающее на WebSphere 6.0, а также есть несколько задач Quartz Scheduler. Если я сделаю поиск в hibernate.cfg.xml:

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

Он отлично работает с моим веб-приложением, но любые потоки, инициированные кварцевыми таймерами, не могут получить доступ к БД с помощью этой строки поиска. Но если я использую

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

Тогда это наоборот. Я получу кварцевые таймеры, но не смогу найти их в своем веб-приложении.

Есть ли способ заставить их работать с одинаковой конфигурацией гибернации?

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

2 ответа

Я не знаю, относится ли это к вам, но у меня недавно была похожая проблема. Моя проблема заключалась в удаленном и локальном доступе, немного изменив мой дизайн и добавив имена интерфейсов в мои аннотации @Local & @Remote.

Я думаю, что вы пропустите управление транзакциями в ваших quartz.properties. Что-то вроде этого:

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

Идея состоит в том, чтобы сказать Кварцу обернуть выполнение задания в транзакцию и где ее получить.

Другие вопросы по тегам