Nuxeo 7.10 Clustring - Quartz configured but starts as NON_CLUSTERED

Hi, I configured a Cluster with 2 Nuxeo Nodes (Nuxeo 7.10) and, in order to use Quartz job scheduler, following https://doc.nuxeo.com/nxdoc/nuxeo-clustering-configuration/ guide, used Oracle Tamplate, populated DB with DDL provided, and, in main nuxeo config file, set “nuxeo.quartz.enable=true”. Starting Cluster Nodes, on each node, seems that quartz template is ignored, and follow logs are readable:

09:24:41,781 INFO [org.quartz.impl.StdSchedulerFactory] (MSC service thread 1-2) Using default implementation for ThreadExecutor 09:24:41,834 INFO [org.quartz.core.SchedulerSignalerImpl] (MSC service thread 1-2) Initialized Scheduler Signaller of type: class org.quartz.core.SchedulerSignalerImpl 09:24:41,834 INFO [org.quartz.core.QuartzScheduler] (MSC service thread 1-2) Quartz Scheduler v.2.2.2 created. 09:24:41,837 INFO [org.quartz.simpl.RAMJobStore] (MSC service thread 1-2) RAMJobStore initialized. 09:24:41,840 INFO [org.quartz.core.QuartzScheduler] (MSC service thread 1-2) Scheduler meta-data: Quartz Scheduler (v2.2.2) 'Quartz' with instanceId 'NON_CLUSTERED' Scheduler class: 'org.quartz.core.QuartzScheduler' - running locally. NOT STARTED. Currently in standby mode. Number of jobs executed: 0 Using thread pool 'org.quartz.simpl.SimpleThreadPool' - with 1 threads. Using job-store 'org.quartz.simpl.RAMJobStore' - which does not support persistence. and is not clustered.

09:24:41,840 INFO [org.quartz.impl.StdSchedulerFactory] (MSC service thread 1-2) Quartz scheduler 'Quartz' initialized from an externally provided properties instance. 09:24:41,840 INFO [org.quartz.impl.StdSchedulerFactory] (MSC service thread 1-2) Quartz scheduler version: 2.2.2 09:24:41,840 INFO [org.quartz.core.QuartzScheduler] (MSC service thread 1-2) Scheduler Quartz$NON_CLUSTERED started.

Could someone please help me with this? Thank you in advance.

0 votes

2 answers

4826 views

ANSWER

What does the generated file nxserver/config/quartz.properties contain? Do you have nuxeo.force.generation=true in bin/nuxeo.conf?
11/24/2016

Why is not this code parameterized ? URL cfg = context.getRuntimeContext().getResource("config/quartz.properties");I think, this is a possible cause of this issue. So, a solution is create a new directory config in our own classpath and put the quarz.properties in it
11/30/2016



The files are correct, the nuxeo version is 7.10 or LTS2015 and the server is Wildfly 8.1 “Kenny”. I have gone in the debug mode, with org.nuxeo.ecm.core.scheduler.SchedulerServiceImpl, in the setupScheduler method and at 77th line the below code

URL cfg = context.getRuntimeContext().getResource(“config/quartz.properties”);

returns the cfg variable equals null. Then I have setup an debug expression, in the eclipse debug, with the below statement

URL cfg = context.getRuntimeContext().getResource(“config/“);

and the cfg was vfs:/content/nuxeo-oracle.war/WEB-INF/lib/elasticsearch-1.5.2.jar/config/

This is the log:

15:41:49,319 INFO [org.quartz.impl.StdSchedulerFactory] (MSC service thread 1-4) Using default implementation for ThreadExecutor 15:41:49,474 INFO [org.quartz.core.SchedulerSignalerImpl] (MSC service thread 1-4) Initialized Scheduler Signaller of type: class org.quartz.core.SchedulerSignalerImpl 15:41:49,475 INFO [org.quartz.core.QuartzScheduler] (MSC service thread 1-4) Quartz Scheduler v.2.2.2 created. 15:41:49,481 INFO [org.quartz.simpl.RAMJobStore] (MSC service thread 1-4) RAMJobStore initialized. 15:41:49,487 INFO [org.quartz.core.QuartzScheduler] (MSC service thread 1-4) Scheduler meta-data: Quartz Scheduler (v2.2.2) 'Quartz' with instanceId 'NON_CLUSTERED' Scheduler class: 'org.quartz.core.QuartzScheduler' - running locally. NOT STARTED. Currently in standby mode. Number of jobs executed: 0 Using thread pool 'org.quartz.simpl.SimpleThreadPool' - with 1 threads. Using job-store 'org.quartz.simpl.RAMJobStore' - which does not support persistence. and is not clustered.

15:41:49,487 INFO [org.quartz.impl.StdSchedulerFactory] (MSC service thread 1-4) Quartz scheduler 'Quartz' initialized from an externally provided properties instance. 15:41:49,487 INFO [org.quartz.impl.StdSchedulerFactory] (MSC service thread 1-4) Quartz scheduler version: 2.2.2 15:41:49,487 INFO [org.quartz.core.QuartzScheduler] (MSC service thread 1-4) Scheduler Quartz$NON_CLUSTERED started.

Thank you very much.

0 votes



Hi, first of all, tnx for your answer.

nuxeo.force.generation=true in my nuxeo main configuration file, and my quartz.properties is:

org.quartz.scheduler.instanceName = Quartz org.quartz.scheduler.threadName = Quartz_Scheduler org.quartz.scheduler.instanceId = AUTO org.quartz.scheduler.makeSchedulerThreadDaemon = true org.quartz.scheduler.skipUpdateCheck = true org.quartz.scheduler.xaTransacted = true org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool org.quartz.threadPool.threadCount = 2 org.quartz.threadPool.threadPriority = 4 org.quartz.threadPool.makeThreadsDaemons = true org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreCMT org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.oracle.OracleDelegate org.quartz.jobStore.dataSource = nxquartz org.quartz.jobStore.nonManagedTXDataSource = nxquartz_no_tx org.quartz.jobStore.acquireTriggersWithinLock = true org.quartz.jobStore.tablePrefix = qrtz_ org.quartz.jobStore.isClustered = true org.quartz.dataSource.nxquartz.jndiURL = ${jndi.base}/jdbc/nxquartz org.quartz.dataSource.nxquartz.connectionProvider.class = org.nuxeo.ecm.core.scheduler.NuxeoQuartzConnectionProvider org.quartz.dataSource.nxquartz_no_tx.jndiURL = ${jndi.base}/jdbc/nxquartz_no_tx org.quartz.dataSource.nxquartz_no_tx.connectionProvider.class = org.nuxeo.ecm.core.scheduler.NuxeoQuartzConnectionProvider

0 votes