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.
>  

Reply via email to