You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomee.apache.org by Enrico Olivelli <eo...@gmail.com> on 2012/07/26 19:03:25 UTC

new Quartz configuration not working for cluster deployment

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

Re: new Quartz configuration not working for cluster deployment

Posted by Romain Manni-Bucau <rm...@gmail.com>.
updated the code, should be better now since properties start with
org.quartz.


- Romain


2012/7/26 Enrico Olivelli <eo...@gmail.com>

> I commented on JIRA
> https://issues.apache.org/**jira/browse/OPENEJB-1867<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/ConfigJobStoreCMT>
> http://quartz-scheduler.org/**documentation/quartz-2.x/**configuration/**
> ConfigJDBCJobStoreClustering<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.**batchTriggerAcquisitionFireAhe**
> adTimeWindow
> found field: org.quartz.scheduler.**batchTriggerAcquisitionMaxCoun**t
> 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.**wrapJobExecutionInUserTransact**ion
> 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.**threadsInheritContextClassLoad**
> erOfInitializer
> 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.**interruptJobsOnShutdownWithWai**t
> 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
>