Используете ли вы SchedulerFactoryBean? Документация: http://static.springsource.org/spring/docs/2.5.x/reference/scheduling.html Это полностью устранит необходимость в реальных свойствах quartz.properties, и вы можете использовать источник данных, который вы используете в остальной части приложения. Это имеет очевидные преимущества (например, возможность многократного использования соединений в пуле соединений), и, по крайней мере, для меня это несколько упрощает отладку.
Вот фрагмент того, как мой выглядел в старом проекте:
<bean id="schedulerFactory" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="quartzProperties"> <!-- quartz attributes, configurable -->
<value>
org.quartz.scheduler.rmi.export = false
org.quartz.scheduler.rmi.proxy = false
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = ${threadCount}
org.quartz.threadPool.threadPriority = 5
org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread = true
org.quartz.jobStore.useProperties = false
org.quartz.jobStore.driverDelegateClass = ${driverDelegate}
org.quartz.jobStore.tablePrefix = QRTZ_
org.quartz.jobStore.isClustered = false
</value>
</property>
<property name="autoStartup" value="false" />
<property name="waitForJobsToCompleteOnShutdown" value="false" />
<property name="dataSource" ref="dataSource" />
</bean>
и источник данных обычный:
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
....
<property name="validationQuery" value="SELECT 1" />
<property name="testWhileIdle" value="true" />
<property name="testOnBorrow" value="true" />
<property name="testOnReturn" value="true" />
</bean>
Очевидно, что свойства quartzProperties аналогичны свойствам в файле, но общее поведение приложения оказалось лучше, когда я переключился с quarts.properties на классы Spring. Также помогло то, что у меня был только один источник данных, который фактически обращался к базе данных.