Quartz JobStore with Spring Framework


Quartz JobStore with Spring Framework



I am implementing Quartz Job Store on Oracle DB using Spring Framework. My ApplicationContext.xml is below

<bean id="driverJob" class="org.springframework.scheduling.quartz.JobDetailBean"> 	<property name="jobClass" value="BatchFileCollector" /> </bean>  <bean id="ranchTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean"> 	<property name="jobDetail" ref="driverJob" /> 	<property name="startDelay" value="2000" /> 	<property name="repeatInterval" value="10000" /> </bean>  <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> 	<property name="triggers"> 		<list> 			<ref bean="ranchTrigger" /> 		</list> 	</property> 	<property name="dataSource"> 		<ref bean="dataSource.TEXAN"/> 	</property> 	<property name="applicationContextSchedulerContextKey"> 		<value>applicationContext</value> 	</property> 	<property name="autoStartup"> 		<value>true</value> 	</property> 	<property name="configLocation" value="classpath:quartz.properties"/> </bean> 

This configuration gives me the below error.

Caused by: org.quartz.JobPersistenceException: Couldn't store trigger: The job (DEFAULT.driverJob) referenced by the trigger does not exist. [See nested exception: org.quartz.JobPersistenceException: The job (DEFAULT.driverJob) referenced by the trigger does not exist.]

I am using Spring Framework 2.5.6. Do I have to upgrade my Quartz version? I cannot find the problem.

Thanks for your help.




What is best way to learn Spring AOP or AOP in general?

1:



What are all the portlet classes in Spring mvc?
Your SchedulerFactoryBean needs to have the "driverJob" registered, too.


portlet 2.0 (jsr286) development with spring
Along with your triggers, add a list of jobDetails..
Corrupted HTTP headers on Apache/Weblogic 9.2
.
Spring / Hibernate / JUnit - No Hibernate Session bound to Thread
<bean id="job.statistics.DailyQPSValidationJobTrigger" class="org.quartz.CronTrigger">     <property name="name" value="DailyQPSValidationTrigger" />     <property name="jobName" value="DailyQPSValidation" />     <property name="jobGroup" value="Statistics" />     <property name="volatility" value="false" />     <!-- Each day, 4 o'clock AM -->     <property name="cronExpression" value="0 0 4 * * ?" /> </bean>  <!-- Scheduler -->  <bean id="job.SchedulerProperties" class="somecompany.someproduct.util.spring.PropertiesFactoryBean"     scope="singleton">     <property name="source">         <props>             <prop key="org.quartz.scheduler.instanceId">AUTO</prop>             <prop key="org.quartz.scheduler.instanceName">JobCluster</prop>             <prop key="org.quartz.jobStore.class">org.quartz.impl.jdbcjobstore.JobStoreTX</prop>             <prop key="org.quartz.jobStore.driverDelegateClass">org.quartz.impl.jdbcjobstore.StdJDBCDelegate</prop>             <prop key="org.quartz.jobStore.isClustered">true</prop>             <prop key="org.quartz.jobStore.useProperties">false</prop>         </props>     </property> </bean>  <bean id="job.Scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean" scope="singleton"     lazy-init="false">     <property name="startupDelay" value="30" />     <property name="waitForJobsToCompleteOnShutdown" value="true" />     <property name="dataSource" ref="jdbc.DataSource" />     <property name="quartzProperties" ref="job.SchedulerProperties" />     <property name="jobDetails">         <list>             <ref bean="job.statistics.DailyQPSValidationJobDetail" />         </list>     </property>     <property name="triggers">         <list>             <ref bean="job.statistics.DailyQPSValidationJobTrigger" />         </list>     </property>     <property name="schedulerListeners">         <list>             <bean class="somecompany.someproduct.job.SchedulerErrorListener">                 <property name="monitoringService" ref="monitoring.MonitoringService" />             </bean>         </list>     </property>     <property name="globalJobListeners">         <list>             <bean class="somecompany.someproduct.job.JobErrorListener">                 <property name="name" value="JobErrorListener" />                 <property name="monitoringService" ref="monitoring.MonitoringService" />             </bean>         </list>     </property> </bean> 


read file in classpath


Intent of Spring form command

2:



Can a Spring form command be a Map?
I have the same problem with Quartz 1.5.2 and Spring 3.0.4.

The problem is that the JobStoreSupport class tries to store a cron trigger with a foreign key to the job (tries to load the job from the db), which is not persisted yet.. Same problem with quartz 1.6.1, 1.7.2 versions.. .
<bean id="quartzScheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"       depends-on="quartzDatabaseCreator">     <property name="autoStartup">         <value>true</value>     </property>     <property name="dataSource">         <ref bean="dataSource"/>     </property>     <property name="quartzProperties">         <props>             <prop key="org.quartz.jobStore.selectWithLockSQL">SELECT * FROM {0}LOCKS UPDLOCK WHERE LOCK_NAME = ?             </prop>             <prop key="org.quartz.jobStore.driverDelegateClass">org.quartz.impl.jdbcjobstore.${qrtz.delegateClass}             </prop>         </props>     </property>     <property name="triggers">         <list>             <ref bean="cronTrigger"/>         </list>     </property>     <property name="schedulerContextAsMap">         <map>             <entry key="sygnoServerHelper"><ref bean="sygnoServerHelper"/></entry>             <entry key="requestDAO"><ref bean="requestDAO"/></entry>             <entry key="alairoCache"><ref bean="alairoCache"/></entry>         </map>     </property> </bean>  <bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">     <property name="jobDetail" ref="checkGracePeriodJob" />     <!--                                 # s m h dom mon dow [y]  -->     <property name="cronExpression" value="0 0/5 * * * ?" /> </bean>  <bean id="checkGracePeriodJob" class="org.springframework.scheduling.quartz.JobDetailBean">     <property name="jobClass" value="com.synergon.sygnoserver.CheckGracePeriodJob"/>  </bean> 
.


3:


I'm not sure if this will work, but you could try using:.
   <bean id="driverJob" .../> 
instead of:.
   <bean name="driverJob" .../> 



74 out of 100 based on 44 user ratings 1094 reviews