You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by Surjit Sen <su...@yahoo.com> on 2014/10/31 16:40:35 UTC

Re: Camel Quartz2 Clustering fails due to durable jobs, has anyone got

Hi Claus,
Even though the JIRA ticket CAMEL-7280 mentions that the issue has been
resolved, if I execute QuartzCronRouteDurableJobTest twice in succession
with Oracle DB as JobStore, I get the following exception (on the 2nd run):

org.apache.camel.FailedToCreateRouteException: Failed to create route
route1: Route(route1)[[From[quartz2://myGroup/myTimerName?durableJob...
because of Failed to resolve endpoint:
quartz2://myGroup/myTimerName?cron=0%2F2+*+*+*+*+%3F&durableJob=true&recoverableJob=true
due to: Unable to store Job : 'myGroup.myTimerName', because one already
exists with this identification.
	at
org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:180)
	at
org.apache.camel.impl.DefaultCamelContext.startRoute(DefaultCamelContext.java:778)
	at
org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:2041)
	at
org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:1791)
	at
org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:1665)
	at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
	at
org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:1633)
	at
org.apache.camel.test.junit4.CamelTestSupport.startCamelContext(CamelTestSupport.java:477)
	at
org.apache.camel.test.junit4.CamelTestSupport.doSetUp(CamelTestSupport.java:311)
	at
org.apache.camel.test.junit4.CamelTestSupport.setUp(CamelTestSupport.java:217)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	at
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
	at
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
	at
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
	at
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
	at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:55)
	at org.junit.rules.RunRules.evaluate(RunRules.java:20)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
	at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:77)
	at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:56)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at
org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
	at
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
	at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
	at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
	at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
	at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: org.apache.camel.ResolveEndpointFailedException: Failed to
resolve endpoint:
quartz2://myGroup/myTimerName?cron=0%2F2+*+*+*+*+%3F&durableJob=true&recoverableJob=true
due to: Unable to store Job : 'myGroup.myTimerName', because one already
exists with this identification.
	at
org.apache.camel.impl.DefaultCamelContext.getEndpoint(DefaultCamelContext.java:532)
	at
org.apache.camel.util.CamelContextHelper.getMandatoryEndpoint(CamelContextHelper.java:71)
	at
org.apache.camel.model.RouteDefinition.resolveEndpoint(RouteDefinition.java:190)
	at
org.apache.camel.impl.DefaultRouteContext.resolveEndpoint(DefaultRouteContext.java:106)
	at
org.apache.camel.impl.DefaultRouteContext.resolveEndpoint(DefaultRouteContext.java:112)
	at
org.apache.camel.model.FromDefinition.resolveEndpoint(FromDefinition.java:72)
	at
org.apache.camel.impl.DefaultRouteContext.getEndpoint(DefaultRouteContext.java:88)
	at
org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:888)
	at
org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:175)
	... 36 more
Caused by: org.quartz.ObjectAlreadyExistsException: Unable to store Job :
'myGroup.myTimerName', because one already exists with this identification.
	at
org.quartz.impl.jdbcjobstore.JobStoreSupport.storeJob(JobStoreSupport.java:1108)
	at
org.quartz.impl.jdbcjobstore.JobStoreSupport$2.executeVoid(JobStoreSupport.java:1062)
	at
org.quartz.impl.jdbcjobstore.JobStoreSupport$VoidTransactionCallback.execute(JobStoreSupport.java:3703)
	at
org.quartz.impl.jdbcjobstore.JobStoreSupport$VoidTransactionCallback.execute(JobStoreSupport.java:3701)
	at
org.quartz.impl.jdbcjobstore.JobStoreSupport.executeInNonManagedTXLock(JobStoreSupport.java:3787)
	at
org.quartz.impl.jdbcjobstore.JobStoreTX.executeInLock(JobStoreTX.java:93)
	at
org.quartz.impl.jdbcjobstore.JobStoreSupport.storeJobAndTrigger(JobStoreSupport.java:1058)
	at org.quartz.core.QuartzScheduler.scheduleJob(QuartzScheduler.java:886)
	at org.quartz.impl.StdScheduler.scheduleJob(StdScheduler.java:249)
	at
org.apache.camel.component.quartz2.QuartzEndpoint.addJobInScheduler(QuartzEndpoint.java:241)
	at
org.apache.camel.component.quartz2.QuartzEndpoint.doStart(QuartzEndpoint.java:190)
	at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
	at
org.apache.camel.impl.DefaultCamelContext.startService(DefaultCamelContext.java:2015)
	at
org.apache.camel.impl.DefaultCamelContext.doAddService(DefaultCamelContext.java:987)
	at
org.apache.camel.impl.DefaultCamelContext.addService(DefaultCamelContext.java:948)
	at
org.apache.camel.impl.DefaultCamelContext.getEndpoint(DefaultCamelContext.java:528)
	... 44 more

Please let me know how to avoid this situation. Tried a few options, but no
luck. Tried with Camel versions 2.13.2, 2.13.0. I do see the code fixes, but
does not work

Surjit Sen





--
View this message in context: http://camel.465427.n5.nabble.com/Camel-Quartz2-Clustering-fails-due-to-durable-jobs-has-anyone-got-tp5741030p5758379.html
Sent from the Camel - Users mailing list archive at Nabble.com.