Hi,

I’m using Camel 2.12.1, Quartz 2.2.0, Blueprint and Mysql 5.5 in Karaf 2.3.1 
and attempting to use clustering, without any success :-(



My aim is to run multiple VMs that will load balance Quartz camel routes and 
fail over should one stop (losing the odd job schedule isn't too important, but 
being down for more than 5-10 minutes would be unacceptable; so clustering 
seems a logical solution. :-)



Steps:

- When I build and start the first Karaf in a Linux VM... it will start Quartz2 
and begin triggering jobs.

- When I copy the Karaf build into another VM and start Karaf (both connecting 
to the same db) I get complaints about Job durability.

- If I restart the first Karaf; it no longer works with Quartz2, also 
complaining about Job Durability.



So, I'd really appreciate any help or experience anyone has with this; I'm 
hoping I'm not the first to run Camel Quartz2 clusters and if anyone has an 
example set of quartz 2 properties and a camel route that works in Blueprint, 
perhaps Spring (although trying to avoid going Spring heavy); that'd be great!



Alternatively, it there's a way to wire it in in Java DSL, I can give that a go 
if there's a way to hook the Camel context in from the Blueprint somehow!?



My setup is below! Would really appreciate some help on this; Camel and Quartz 
seem like a great fit! :-)

The properties seem to work fine if I use Quartz without Camel (Example 13 in 
Quartz 2 documentation).



Thanks

Mark



I have a blueprint including the following:

  <bean id="quartz2" class="org.apache.camel.component.quartz2.QuartzComponent">

    <property name="properties" ref="props" />

  </bean>

  <reference id="myBean" interface="example.com.MyBean" 
availability="mandatory" />

  <camel:camelContext id="blueprintContext" trace="true">

    <camel:route>

      <camel:from 
uri="quartz2://examples/example?job.name=test1&amp;deleteJob=false&amp;stateful=true&amp;cron=0/10+*+*+*+*+?"
 />

      <camel:bean ref="myBean" method="fire" />

    </camel:route>

  </camel:camelContext>



But get the error:

Failed to create route route1: 
Route(route1)[[From[quartz2://examples/example?job.name=tes... because of 
Failed to resolve endpoint: 
quartz2://examples/example?cron=0%2F10+*+*+*+*+%3F&deleteJob=false&job.name=test1&stateful=true
 due to: Jobs added with no trigger must be durable.

Caused by: org.apache.camel.ResolveEndpointFailedException: Failed to resolve 
endpoint: 
quartz2://examples/example?cron=0%2F10+*+*+*+*+%3F&deleteJob=false&job.name=test1&stateful=true
 due to: Jobs added with no trigger must be durable.

Caused by: org.quartz.SchedulerException: Jobs added with no trigger must be 
durable.







Quartz properties:

org.quartz.scheduler.instanceName: TestScheduler

org.quartz.scheduler.skipUpdateCheck: true

org.quartz.threadPool.class: org.quartz.simpl.SimpleThreadPool

org.quartz.threadPool.threadCount: 5

org.quartz.threadPool.threadPriority: 5

org.quartz.jobStore.misfireThreshold: 60000

org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX

org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate

org.quartz.jobStore.dataSource=myDS

org.quartz.jobStore.tablePrefix=QRTZ_

org.quartz.jobStore.isClustered=true

org.quartz.dataSource.myDS.driver: com.mysql.jdbc.Driver

org.quartz.dataSource.myDS.URL: jdbc:mysql://windowshost:3306/quartz

org.quartz.dataSource.myDS.user: root

org.quartz.dataSource.myDS.password: password

org.quartz.dataSource.myDS.maxConnections: 8

org.quartz.dataSource.myDS.validationQuery: select 0



Using a feature like:

<feature>

  <bundle 
start-level="40">mvn:org.apache.camel/camel-core/${camel.version}/jar</bundle>

  <bundle 
start-level="40">mvn:org.apache.camel/camel-blueprint/${camel.version}/jar</bundle>

  <bundle 
start-level="40">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.c3p0/${c3p0.version}/jar</bundle>

  <bundle 
start-level="40">mvn:org.apache.camel/camel-quartz2/${camel.version}/jar</bundle>

  <bundle 
start-level="40">mvn:org.quartz-scheduler/quartz/${quartz2.version}/jar</bundle>

  <bundle 
start-level="40">mvn:mysql/mysql-connector-java/${mysql.version}/jar</bundle>

  <bundle 
start-level="40">mvn:example/osgi-fragment-c3p0-mysql/${project.version}/jar</bundle>
 <- fragment bundle imports Mysql driver package into C3P0 bundle

</feature>




----------------------------

http://www.bbc.co.uk
This e-mail (and any attachments) is confidential and may contain personal 
views which are not the views of the BBC unless specifically stated.
If you have received it in error, please delete it from your system.
Do not use, copy or disclose the information in any way nor act in reliance on 
it and notify the sender immediately.
Please note that the BBC monitors e-mails sent or received.
Further communication will signify your consent to this.

---------------------

Reply via email to