I commented on JIRA
https://issues.apache.org/jira/browse/OPENEJB-1867
I'm testing new quartz configuration via system.properties
I did a little bit of debug on EjbTimerServiceImpl.java
these are the "properties" that OpenEJB is looking in system properties
in order to pass them to SchedulerFactory (plus some prefix, I think
to provide per-module configuration)
you look for String constants in class org.quartz.impl.StdSchedulerFactory
This is not enough, for two reasons:
- not all config properties are listed as fields in StdSchedulerFactory
- datasource configuration require to compose dynamically properties
names (see the example....)
My example configuration:
org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreCMT
org.quartz.jobStore.dataSource=MyAppDB
*org.quartz.dataSource.MyAppDB.jndiURL=jdbc/MyAppDB*
org.quartz.jobStore.nonManagedTXDataSource=MyAppDBNonJta
org.quartz.dataSource.MyAppDBNonJta.jndiURL=jdbc/MyAppDBNonJta
org.quartz.jobStore.isClustered=true
Quartz reference...
http://quartz-scheduler.org/documentation/quartz-2.x/configuration/ConfigJobStoreCMT
http://quartz-scheduler.org/documentation/quartz-2.x/configuration/ConfigJDBCJobStoreClustering
this is the debug
[QUARTZ] valid config properties: (looking 'public static final String'
fields in class org.quartz.impl.StdSchedulerFactory)
found field: org.quartz.properties
found field: org.quartz.scheduler.instanceName
found field: org.quartz.scheduler.instanceId
found field: org.quartz.scheduler.instanceIdGenerator
found field: org.quartz.scheduler.instanceIdGenerator.class
found field: org.quartz.scheduler.threadName
found field: org.quartz.scheduler.skipUpdateCheck
found field: org.quartz.scheduler.batchTriggerAcquisitionFireAheadTimeWindow
found field: org.quartz.scheduler.batchTriggerAcquisitionMaxCount
found field: org.quartz.scheduler.jmx.export
found field: org.quartz.scheduler.jmx.objectName
found field: org.quartz.scheduler.jmx.proxy
found field: org.quartz.scheduler.jmx.proxy.class
found field: org.quartz.scheduler.rmi.export
found field: org.quartz.scheduler.rmi.proxy
found field: org.quartz.scheduler.rmi.registryHost
found field: org.quartz.scheduler.rmi.registryPort
found field: org.quartz.scheduler.rmi.serverPort
found field: org.quartz.scheduler.rmi.createRegistry
found field: org.quartz.scheduler.rmi.bindName
found field: org.quartz.scheduler.wrapJobExecutionInUserTransaction
found field: org.quartz.scheduler.userTransactionURL
found field: org.quartz.scheduler.idleWaitTime
found field: org.quartz.scheduler.dbFailureRetryInterval
found field: org.quartz.scheduler.makeSchedulerThreadDaemon
found field:
org.quartz.scheduler.threadsInheritContextClassLoaderOfInitializer
found field: org.quartz.scheduler.classLoadHelper.class
found field: org.quartz.scheduler.jobFactory.class
found field: org.quartz.scheduler.jobFactory
found field: org.quartz.scheduler.interruptJobsOnShutdown
found field: org.quartz.scheduler.interruptJobsOnShutdownWithWait
found field: org.quartz.context.key
found field: org.quartz.threadPool
found field: org.quartz.threadPool.class
found field: org.quartz.jobStore
found field: org.quartz.jobStore.lockHandler
found field: org.quartz.jobStore.lockHandler.class
found field: tablePrefix
found field: schedName
found field: org.quartz.jobStore.class
found field: org.quartz.jobStore.useProperties
found field: org.quartz.dataSource
found field: connectionProvider.class
found field: driver
found field: URL
found field: user
found field: password
found field: maxConnections
found field: validationQuery
found field: jndiURL
found field: jndiAlwaysLookup
found field: java.naming.factory.initial
found field: java.naming.provider.url
found field: java.naming.security.principal
found field: java.naming.security.credentials
found field: org.quartz.plugin
found field: class
found field: org.quartz.jobListener
found field: org.quartz.triggerListener
found field: class
found field: NON_CLUSTERED
found field: AUTO
found field: org.quartz.threadExecutor
found field: org.quartz.threadExecutor.class
found field: SYS_PROP