We are using quartz for your scheduling needs in our application. The application runs in a cluster. On application shutdown, we call org.quartz.Scheduler.shutdown()
to shutdown the scheduler. What we find is that this deletes all records in the database tables(we use a org.quartz.impl.jdbcjobstore.JobStoreTX
as our job store.
My initial thought was, as quartz is running in a cluster and all machines in the cluster share the same database, the records should not get deleted so that other machines in the cluster can continue running jobs even when one machine goes down. Am I missing something here?
My quartz.properties file looks thus:
org.quartz.scheduler.instanceName=DefaultQuartzScheduler
org.quartz.scheduler.instanceId=AUTO
org.quartz.scheduler.rmi.export=false
org.quartz.scheduler.rmi.proxy=false
org.quartz.scheduler.wrapJobExecutionInUserTransaction=false
org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount=10
org.quartz.threadPool.threadPriority=5
org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread=true
org.quartz.jobStore.isClustered=true
org.quartz.jobStore.clusterCheckinInterval=20000
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.tablePrefix=DS_QRTZ_
org.quartz.jobStore.dataSource=dsjta
org.quartz.dataSource.dsjta.jndiURL=dsjta
org.quartz.jobStore.useProperties=true