Did you clean up your database after testing? S.NO. TRIGGER_GROUP JOB_NAME JOB_GROUP NEXT_FIRE_TIME PREV_FIRE_TIME PRIORITY TRIGGER_STATE TRIGGER_TYPE 1. RECOVERING_JOBS quartz cluster 1416905400000 -1 5 SIMPLE WAITING 2. cluster quartZ cluster 1416905640000 1416905400000 5 CRON WAITING
The RECOVERING_JOBS JOB_Name is quartz, but the cluster JOB_NAME is quartZ. The laster character name is different. -- Willem Jiang Red Hat, Inc. Web: http://www.redhat.com Blog: http://willemjiang.blogspot.com (English) http://jnn.iteye.com (Chinese) Twitter: willemjiang Weibo: 姜宁willem On November 26, 2014 at 2:28:07 PM, selva (sgpsel...@gmail.com) wrote: > Hi Willem, > > I have defined one quartz2 endpoint route and one sub route in > camel-context.xml file . Whenever the quartz scheduler triggers , the quartz > end point will call the sub route using direct component. I am printing some > text in console using bean processor(QueryBuilderProcessor) which is defined > in sub route. > > > class="cluster.quartz.QueryBuilderProcessor" /> > > > uri="quartz2://cluster/quartz?cron=0+0/4+++*+?&durableJob=true&stateful=true&recoverableJob=true"> > > > //calling sub rout > here. > ... > > > > > > > > > > My cluster configuration: > I have followed below Link to set up Clustering with the JDBC-Jobstore. > > http://www.quartz-scheduler.org/documentation/quartz-2.x/configuration/ConfigJDBCJobStoreClustering > > I have quartz.properties file in resource folder like > org/quartz/quartz.properties. > > org.quartz.scheduler.instanceName = ClusteredScheduler > org.quartz.scheduler.instanceId = AUTO > org.quartz.jobStore.isClustered = true > ... > org.quartz.plugin.triggerHistory.class=org.quartz.plugins.history.LoggingTriggerHistoryPlugin > > org.quartz.plugin.triggerHistory.triggerFiredMessage=Trigger [{1}.{0}] fired > job [{6}.{5}] scheduled at: {2, date, dd-MM-yyyy HH:mm:ss.SSS}, next > scheduled at: {3, date, dd-MM-yyyy HH:mm:ss.SSS} > org.quartz.plugin.triggerHistory.triggerCompleteMessage=Trigger [{1}.{0}] > completed firing job [{6}.{5}] with resulting trigger instruction code: {9}. > Next scheduled at: {3, date, dd-MM-yyyy HH:mm:ss.SSS} > org.quartz.plugin.triggerHistory.triggerMisfiredMessage=Trigger [{1}.{0}] > misfired job [{6}.{5}]. Should have fired at: {3, date, dd-MM-yyyy > HH:mm:ss.SSS} > org.quartz.plugin.jobHistory.class=org.quartz.plugins.history.LoggingJobHistoryPlugin > > org.quartz.plugin.jobHistory.jobToBeFiredMessage=Job [{1}.{0}] to be fired > by trigger [{4}.{3}], re-fire: {7} > org.quartz.plugin.jobHistory.jobSuccessMessage=Job [{1}.{0}] execution > complete and reports: {8} > org.quartz.plugin.jobHistory.jobFailedMessage=Job [{1}.{0}] execution failed > with exception: {8} > org.quartz.plugin.jobHistory.jobWasVetoedMessage=Job [{1}.{0}] was vetoed. > It was to be fired by trigger [{4}.{3}] at: {2, date, dd-MM-yyyy > HH:mm:ss.SSS} > > > QueryBuilderProcessor.java > > public void process(Exchange exchange) throws Exception { > LOGGER.info("Started"); > System.out.println(****processor started******"); > Thread.sleep(10000); > System.out.println(****processor Ends******); > > } > > Test case: > > I am running the same camel application as standalone using > org.apache.camel.spring.Main class in two eclipse instance in same machine, > So by default clock is sync. > > Two Node: > 1. Eclipse Instance 1:(Node1) First I am starting application from eclipse > instance 1 , based on quartz properties file Quartz tables are populated > with the job details. > > 2.Eclipse Instance 2:(Node2) I am starting same application from eclipse > instance 2. > > Both instance are started and could see their scheduler entries (Node1 & > Node2) in qrtz_scheduler_state table. > > Stopping Job: > > Constantly I watching the TRIGGER_STATE column of job in *qrtz_triggers* > table & console for two camel application. > > step1 : Initially Trigger state will be "WAITING" > stept2: Once the Trigger state changed to "AQUIRED" , I go back to console > find the which node picked the job. > step3: Assume ****processor started******" printed from > QueryBuilderProcessor.java(Node1) and Immediately terminate the Node1 by > clicking terminate button in eclipse. > step4: Now current TRIGGER state is "BLOCKED". > step5: I could see the recovery logs in Node2 console.(Which is mentioned in > the above question). > > *My doubt is , if you see the Recovering job trigger details in > *qrtz_triggers* table above question, TRIGGER_TYPE is SIMPLE, but we defined > in our route is CRON type*. > > Please refer the section "*Captured in qrtz_triggers table*" in above > question. > > I think the problem is CRON type, Recovery Job Tigger type should be CRON > right? > > > Thanks, > > > > > -- > View this message in context: > http://camel.465427.n5.nabble.com/Quartz-clustering-in-camel-spring-DSL-JIRA-CAMEL-8076-tp5759589p5759614.html > > Sent from the Camel - Users mailing list archive at Nabble.com. >