You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Lakshmi Prashanth (JIRA)" <ji...@apache.org> on 2014/11/10 08:58:34 UTC
[jira] [Commented] (CAMEL-7978) QuartzEndpoint should share the
same camel context name when it working in cluster mode
[ https://issues.apache.org/jira/browse/CAMEL-7978?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14204480#comment-14204480 ]
Lakshmi Prashanth commented on CAMEL-7978:
------------------------------------------
Hi,
Can you also fix another issue with clustered quartz - when the quartz2 endpoints from 2 nodes try to create the job detail in DB, an ObjectAlreadyExists exception is thrown - leading to misfires. Can we handle the above exception as below:
private void addJobInScheduler() throws Exception {
// Add or use existing trigger to/from scheduler
Scheduler scheduler = getComponent().getScheduler();
JobDetail jobDetail;
Trigger trigger = scheduler.getTrigger(triggerKey);
if (trigger == null) {
jobDetail = createJobDetail();
trigger = createTrigger(jobDetail);
updateJobDataMap(jobDetail);
// Schedule it now. Remember that scheduler might not be started it, but we can schedule now.
try{
Date nextFireDate = scheduler.scheduleJob(jobDetail, trigger);
if (LOG.isInfoEnabled()) {
LOG.info("Job {} (triggerType={}, jobClass={}) is scheduled. Next fire date is {}",
new Object[] {trigger.getKey(), trigger.getClass().getSimpleName(),
jobDetail.getJobClass().getSimpleName(), nextFireDate});
}
}
catch(ObjectAlreadyExistsException e){
//some other VM might may have stored the job & trigger in DB in clustered mode, in the mean time
if(!(getComponent().isClustered())){
throw e;
}
}
} else {
ensureNoDupTriggerKey();
}
// Increase camel job count for this endpoint
AtomicInteger number = (AtomicInteger) scheduler.getContext().get(QuartzConstants.QUARTZ_CAMEL_JOBS_COUNT);
if (number != null) {
number.incrementAndGet();
}
jobAdded.set(true);
}
Thanks,
Lakshmi
> QuartzEndpoint should share the same camel context name when it working in cluster mode
> ---------------------------------------------------------------------------------------
>
> Key: CAMEL-7978
> URL: https://issues.apache.org/jira/browse/CAMEL-7978
> Project: Camel
> Issue Type: Bug
> Components: camel-quartz, camel-quartz2
> Affects Versions: 2.13.2, 2.14.0
> Reporter: Willem Jiang
> Assignee: Willem Jiang
> Fix For: 2.14.1, 2.15.0, 2.13.4
>
>
> It could cause some trouble[1] when two cluster camel-quartz endpoints are share different camel context name.
> [1]http://camel.465427.n5.nabble.com/Quartz-job-data-deletion-in-clustered-quartz2-tp5757508.html
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)