Re: Persistent Quartz jobs and jobDetails

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

Re: Persistent Quartz jobs and jobDetails

Antoine Roux
I had the same problem, I solved it by adding

org.quartz.scheduler.threadsInheritContextClassLoaderOfInitializer true

to my quartz.properties.



On Tue, Jan 12, 2010 at 2:41 PM, olivier.fr <[hidden email]> wrote:

Well, no.
My quartz jobs are "memory only " :-)
and well, in fine,  it's ok to fit my requirements...
Regards,
O.



Axelandru wrote:
>
> Hi,
>
> I'm facing a similar issue. Did you find any solutions so far?
>
> Thanks,
>
> Alex
>
>
> olivier.fr wrote:
>>
>> Hi,
>> I'm facing the following issue.
>>
>> I have a Quartz job CustomWorkerJob  and a job details object (a groovy
>> class) used to pass parameters to this job.
>>
>> //-------------------------------------------------------------------------------------------------------------------------------------------------
>>
>> public class CustomJobDefinition implements Serializable {
>>
>>   CADCustomWorker CustomWorker
>>   User owner;
>>
>>   String cadProductId
>>   String targetFolder
>>   Map<String, String> cadParameterValuesMap;
>>   String mdlName
>>   String script
>>
>>   String name
>>   String description
>>   Date creationDate
>>
>>    def volatility = false
>>
>>  }
>>
>> //-------------------------------------------------------------------------------------------------------------------------------------------------
>>
>> class CustomWorkerJob {
>>
>>   private final Logger logger = Logger.getLogger(getClass())
>>
>>
>>   static triggers = {
>>     // Pas de triggers -> demarrage par code.
>>   }
>>
>>   def group = "CustomWorker"
>>
>>   // Un seul job à la fois !
>>   def concurrent = false
>>   def owner = ''
>>
>>   // persistence du job.
>>   def volatility = false
>>
>>
>>
>>   def execute(context) {
>>     // do the job :-)
>>   }
>>
>>
>> }
>>
>> //-------------------------------------------------------------------------------------------------------------------------------------------------
>>
>> My job is started from a service, like this  :
>>
>>  CustomJobDefinition jobDef = new
>> CustomJobDefinition(cadProductId:product.id.toString(),
>>             name:cadScript.name,
>>             description:cadScript.description,
>>             creationDate:new Date(),
>>             targetFolder:targetDocFolder,
>>             cadParameterValuesMap: cadParameterValuesMap,
>>             mdlName: product.template.cadProduct.cadName,
>>             script: cadScript.script,
>>             CustomWorker: CustomWorker,
>>             owner: authenticateService.userDomain())
>>
>>     //SimpleTrigger trigger = new  SimpleTrigger('Custom job', 'test')
>>     //trigger.setJobDataMap([CUSTOM_JOB:jobDef])
>>
>>
>> com.fcad.configurator.Custom.CustomWorkerJob.triggerNow([CUSTOM_JOB:jobDef])
>>
>>
>> It works as long as I don't use jdbc store.
>>
>> If I try to use a persistent mode, I get the following issue :
>>
>> My JobDefinition is not found...
>>
>> org.quartz.JobPersistenceException: Couldn't retrieve trigger:
>> com.mypackage.CustomJobDefinition [See nested exception:
>> java.lang.ClassNotFoundException: com.mypackage.CustomJobDefinition]
>>      at
>> org.quartz.impl.jdbcjobstore.JobStoreSupport.retrieveTrigger(JobStoreSupport.java:1508)
>>      at
>> org.quartz.impl.jdbcjobstore.JobStoreSupport.recoverMisfiredJobs(JobStoreSupport.java:891)
>>      at
>> org.quartz.impl.jdbcjobstore.JobStoreSupport.doRecoverMisfires(JobStoreSupport.java:3029)
>>      at
>> org.quartz.impl.jdbcjobstore.JobStoreSupport$MisfireHandler.manage(JobStoreSupport.java:3789)
>>      at
>> org.quartz.impl.jdbcjobstore.JobStoreSupport$MisfireHandler.run(JobStoreSupport.java:3809)
>> Caused by: java.lang.ClassNotFoundException:
>> com.mypackage..CustomJobDefinition
>>      at org.codehaus.groovy.tools.RootLoader.findClass(RootLoader.java:156)
>>      at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
>>      at org.codehaus.groovy.tools.RootLoader.loadClass(RootLoader.java:128)
>>      at
>> org.codehaus.groovy.grails.cli.support.GrailsRootLoader.loadClass(GrailsRootLoader.java:43)
>>      at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
>>      at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
>>      at java.lang.Class.forName0(Native Method)
>>      at java.lang.Class.forName(Class.java:247)
>>      at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:604)
>>      at
>> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1575)
>>      at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
>>      at
>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)
>>      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>>      at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
>>      at java.util.HashMap.readObject(HashMap.java:1030)
>>      at sun.reflect.GeneratedMethodAccessor431.invoke(Unknown Source)
>>      at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>      at java.lang.reflect.Method.invoke(Method.java:597)
>>      at
>> java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
>>      at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849)
>>      at
>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
>>      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>>      at
>> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
>>      at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
>>      at
>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
>>      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>>      at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
>>      at
>> org.quartz.impl.jdbcjobstore.StdJDBCDelegate.getObjectFromBlob(StdJDBCDelegate.java:3473)
>>      at
>> org.quartz.impl.jdbcjobstore.StdJDBCDelegate.selectTrigger(StdJDBCDelegate.java:2132)
>>      at
>> org.quartz.impl.jdbcjobstore.JobStoreSupport.retrieveTrigger(JobStoreSupport.java:1490)
>>      ... 4 more
>>
>> What can be the root of this issue ?
>> regards,
>>
>> O.
>>
>
>

--
View this message in context: http://old.nabble.com/Persistent-Quartz-jobs-and-jobDetails-tp23423854p27127002.html
Sent from the grails - user mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe from this list, please visit:

   http://xircles.codehaus.org/manage_email



Reply | Threaded
Open this post in threaded view
|

Re: Persistent Quartz jobs and jobDetails

Antoine Roux
Sorry, I talked too fast: some commented out code was making me think it was working.

I tried to replace Quartz ClassLoader, without success. Finally, I transformed my object into a map that I passed as a jobDataMap to my job. I did not find any other means and Google could not help me.


On Tue, Oct 26, 2010 at 11:07 AM, Antoine Roux <[hidden email]> wrote:
I had the same problem, I solved it by adding

org.quartz.scheduler.threadsInheritContextClassLoaderOfInitializer true

to my quartz.properties.




On Tue, Jan 12, 2010 at 2:41 PM, olivier.fr <[hidden email]> wrote:

Well, no.
My quartz jobs are "memory only " :-)
and well, in fine,  it's ok to fit my requirements...
Regards,
O.



Axelandru wrote:
>
> Hi,
>
> I'm facing a similar issue. Did you find any solutions so far?
>
> Thanks,
>
> Alex
>
>
> olivier.fr wrote:
>>
>> Hi,
>> I'm facing the following issue.
>>
>> I have a Quartz job CustomWorkerJob  and a job details object (a groovy
>> class) used to pass parameters to this job.
>>
>> //-------------------------------------------------------------------------------------------------------------------------------------------------
>>
>> public class CustomJobDefinition implements Serializable {
>>
>>   CADCustomWorker CustomWorker
>>   User owner;
>>
>>   String cadProductId
>>   String targetFolder
>>   Map<String, String> cadParameterValuesMap;
>>   String mdlName
>>   String script
>>
>>   String name
>>   String description
>>   Date creationDate
>>
>>    def volatility = false
>>
>>  }
>>
>> //-------------------------------------------------------------------------------------------------------------------------------------------------
>>
>> class CustomWorkerJob {
>>
>>   private final Logger logger = Logger.getLogger(getClass())
>>
>>
>>   static triggers = {
>>     // Pas de triggers -> demarrage par code.
>>   }
>>
>>   def group = "CustomWorker"
>>
>>   // Un seul job à la fois !
>>   def concurrent = false
>>   def owner = ''
>>
>>   // persistence du job.
>>   def volatility = false
>>
>>
>>
>>   def execute(context) {
>>     // do the job :-)
>>   }
>>
>>
>> }
>>
>> //-------------------------------------------------------------------------------------------------------------------------------------------------
>>
>> My job is started from a service, like this  :
>>
>>  CustomJobDefinition jobDef = new
>> CustomJobDefinition(cadProductId:product.id.toString(),
>>             name:cadScript.name,
>>             description:cadScript.description,
>>             creationDate:new Date(),
>>             targetFolder:targetDocFolder,
>>             cadParameterValuesMap: cadParameterValuesMap,
>>             mdlName: product.template.cadProduct.cadName,
>>             script: cadScript.script,
>>             CustomWorker: CustomWorker,
>>             owner: authenticateService.userDomain())
>>
>>     //SimpleTrigger trigger = new  SimpleTrigger('Custom job', 'test')
>>     //trigger.setJobDataMap([CUSTOM_JOB:jobDef])
>>
>>
>> com.fcad.configurator.Custom.CustomWorkerJob.triggerNow([CUSTOM_JOB:jobDef])
>>
>>
>> It works as long as I don't use jdbc store.
>>
>> If I try to use a persistent mode, I get the following issue :
>>
>> My JobDefinition is not found...
>>
>> org.quartz.JobPersistenceException: Couldn't retrieve trigger:
>> com.mypackage.CustomJobDefinition [See nested exception:
>> java.lang.ClassNotFoundException: com.mypackage.CustomJobDefinition]
>>      at
>> org.quartz.impl.jdbcjobstore.JobStoreSupport.retrieveTrigger(JobStoreSupport.java:1508)
>>      at
>> org.quartz.impl.jdbcjobstore.JobStoreSupport.recoverMisfiredJobs(JobStoreSupport.java:891)
>>      at
>> org.quartz.impl.jdbcjobstore.JobStoreSupport.doRecoverMisfires(JobStoreSupport.java:3029)
>>      at
>> org.quartz.impl.jdbcjobstore.JobStoreSupport$MisfireHandler.manage(JobStoreSupport.java:3789)
>>      at
>> org.quartz.impl.jdbcjobstore.JobStoreSupport$MisfireHandler.run(JobStoreSupport.java:3809)
>> Caused by: java.lang.ClassNotFoundException:
>> com.mypackage..CustomJobDefinition
>>      at org.codehaus.groovy.tools.RootLoader.findClass(RootLoader.java:156)
>>      at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
>>      at org.codehaus.groovy.tools.RootLoader.loadClass(RootLoader.java:128)
>>      at
>> org.codehaus.groovy.grails.cli.support.GrailsRootLoader.loadClass(GrailsRootLoader.java:43)
>>      at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
>>      at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
>>      at java.lang.Class.forName0(Native Method)
>>      at java.lang.Class.forName(Class.java:247)
>>      at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:604)
>>      at
>> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1575)
>>      at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
>>      at
>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)
>>      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>>      at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
>>      at java.util.HashMap.readObject(HashMap.java:1030)
>>      at sun.reflect.GeneratedMethodAccessor431.invoke(Unknown Source)
>>      at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>      at java.lang.reflect.Method.invoke(Method.java:597)
>>      at
>> java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
>>      at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849)
>>      at
>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
>>      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>>      at
>> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
>>      at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
>>      at
>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
>>      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>>      at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
>>      at
>> org.quartz.impl.jdbcjobstore.StdJDBCDelegate.getObjectFromBlob(StdJDBCDelegate.java:3473)
>>      at
>> org.quartz.impl.jdbcjobstore.StdJDBCDelegate.selectTrigger(StdJDBCDelegate.java:2132)
>>      at
>> org.quartz.impl.jdbcjobstore.JobStoreSupport.retrieveTrigger(JobStoreSupport.java:1490)
>>      ... 4 more
>>
>> What can be the root of this issue ?
>> regards,
>>
>> O.
>>
>
>

--
View this message in context: http://old.nabble.com/Persistent-Quartz-jobs-and-jobDetails-tp23423854p27127002.html
Sent from the grails - user mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe from this list, please visit:

   http://xircles.codehaus.org/manage_email




Reply | Threaded
Open this post in threaded view
|

Re: Persistent Quartz jobs and jobDetails

Luis Muniz-2
Hi,

Has anyone solved this issue?

I am having the same problem.

It is not a quartz-plugin bug, as I have the same behavior with a custom (defined in resources.groovy) quartz scheduler.

On Tue, Oct 26, 2010 at 2:14 PM, Antoine Roux <[hidden email]> wrote:
Sorry, I talked too fast: some commented out code was making me think it was working.

I tried to replace Quartz ClassLoader, without success. Finally, I transformed my object into a map that I passed as a jobDataMap to my job. I did not find any other means and Google could not help me.



On Tue, Oct 26, 2010 at 11:07 AM, Antoine Roux <[hidden email]> wrote:
I had the same problem, I solved it by adding

org.quartz.scheduler.threadsInheritContextClassLoaderOfInitializer true

to my quartz.properties.




On Tue, Jan 12, 2010 at 2:41 PM, olivier.fr <[hidden email]> wrote:

Well, no.
My quartz jobs are "memory only " :-)
and well, in fine,  it's ok to fit my requirements...
Regards,
O.



Axelandru wrote:
>
> Hi,
>
> I'm facing a similar issue. Did you find any solutions so far?
>
> Thanks,
>
> Alex
>
>
> olivier.fr wrote:
>>
>> Hi,
>> I'm facing the following issue.
>>
>> I have a Quartz job CustomWorkerJob  and a job details object (a groovy
>> class) used to pass parameters to this job.
>>
>> //-------------------------------------------------------------------------------------------------------------------------------------------------
>>
>> public class CustomJobDefinition implements Serializable {
>>
>>   CADCustomWorker CustomWorker
>>   User owner;
>>
>>   String cadProductId
>>   String targetFolder
>>   Map<String, String> cadParameterValuesMap;
>>   String mdlName
>>   String script
>>
>>   String name
>>   String description
>>   Date creationDate
>>
>>    def volatility = false
>>
>>  }
>>
>> //-------------------------------------------------------------------------------------------------------------------------------------------------
>>
>> class CustomWorkerJob {
>>
>>   private final Logger logger = Logger.getLogger(getClass())
>>
>>
>>   static triggers = {
>>     // Pas de triggers -> demarrage par code.
>>   }
>>
>>   def group = "CustomWorker"
>>
>>   // Un seul job à la fois !
>>   def concurrent = false
>>   def owner = ''
>>
>>   // persistence du job.
>>   def volatility = false
>>
>>
>>
>>   def execute(context) {
>>     // do the job :-)
>>   }
>>
>>
>> }
>>
>> //-------------------------------------------------------------------------------------------------------------------------------------------------
>>
>> My job is started from a service, like this  :
>>
>>  CustomJobDefinition jobDef = new
>> CustomJobDefinition(cadProductId:product.id.toString(),
>>             name:cadScript.name,
>>             description:cadScript.description,
>>             creationDate:new Date(),
>>             targetFolder:targetDocFolder,
>>             cadParameterValuesMap: cadParameterValuesMap,
>>             mdlName: product.template.cadProduct.cadName,
>>             script: cadScript.script,
>>             CustomWorker: CustomWorker,
>>             owner: authenticateService.userDomain())
>>
>>     //SimpleTrigger trigger = new  SimpleTrigger('Custom job', 'test')
>>     //trigger.setJobDataMap([CUSTOM_JOB:jobDef])
>>
>>
>> com.fcad.configurator.Custom.CustomWorkerJob.triggerNow([CUSTOM_JOB:jobDef])
>>
>>
>> It works as long as I don't use jdbc store.
>>
>> If I try to use a persistent mode, I get the following issue :
>>
>> My JobDefinition is not found...
>>
>> org.quartz.JobPersistenceException: Couldn't retrieve trigger:
>> com.mypackage.CustomJobDefinition [See nested exception:
>> java.lang.ClassNotFoundException: com.mypackage.CustomJobDefinition]
>>      at
>> org.quartz.impl.jdbcjobstore.JobStoreSupport.retrieveTrigger(JobStoreSupport.java:1508)
>>      at
>> org.quartz.impl.jdbcjobstore.JobStoreSupport.recoverMisfiredJobs(JobStoreSupport.java:891)
>>      at
>> org.quartz.impl.jdbcjobstore.JobStoreSupport.doRecoverMisfires(JobStoreSupport.java:3029)
>>      at
>> org.quartz.impl.jdbcjobstore.JobStoreSupport$MisfireHandler.manage(JobStoreSupport.java:3789)
>>      at
>> org.quartz.impl.jdbcjobstore.JobStoreSupport$MisfireHandler.run(JobStoreSupport.java:3809)
>> Caused by: java.lang.ClassNotFoundException:
>> com.mypackage..CustomJobDefinition
>>      at org.codehaus.groovy.tools.RootLoader.findClass(RootLoader.java:156)
>>      at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
>>      at org.codehaus.groovy.tools.RootLoader.loadClass(RootLoader.java:128)
>>      at
>> org.codehaus.groovy.grails.cli.support.GrailsRootLoader.loadClass(GrailsRootLoader.java:43)
>>      at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
>>      at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
>>      at java.lang.Class.forName0(Native Method)
>>      at java.lang.Class.forName(Class.java:247)
>>      at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:604)
>>      at
>> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1575)
>>      at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
>>      at
>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)
>>      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>>      at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
>>      at java.util.HashMap.readObject(HashMap.java:1030)
>>      at sun.reflect.GeneratedMethodAccessor431.invoke(Unknown Source)
>>      at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>      at java.lang.reflect.Method.invoke(Method.java:597)
>>      at
>> java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
>>      at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849)
>>      at
>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
>>      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>>      at
>> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
>>      at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
>>      at
>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
>>      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>>      at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
>>      at
>> org.quartz.impl.jdbcjobstore.StdJDBCDelegate.getObjectFromBlob(StdJDBCDelegate.java:3473)
>>      at
>> org.quartz.impl.jdbcjobstore.StdJDBCDelegate.selectTrigger(StdJDBCDelegate.java:2132)
>>      at
>> org.quartz.impl.jdbcjobstore.JobStoreSupport.retrieveTrigger(JobStoreSupport.java:1490)
>>      ... 4 more
>>
>> What can be the root of this issue ?
>> regards,
>>
>> O.
>>
>
>

--
View this message in context: http://old.nabble.com/Persistent-Quartz-jobs-and-jobDetails-tp23423854p27127002.html
Sent from the grails - user mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe from this list, please visit:

   http://xircles.codehaus.org/manage_email





Reply | Threaded
Open this post in threaded view
|

Re: Persistent Quartz jobs and jobDetails

Luis Muniz-2
In reply to this post by Antoine Roux
Hi Antoine,

Could you please post some example code of your workaround?

Thank you,

Luis

On Tue, Oct 26, 2010 at 2:14 PM, Antoine Roux <[hidden email]> wrote:
Sorry, I talked too fast: some commented out code was making me think it was working.

I tried to replace Quartz ClassLoader, without success. Finally, I transformed my object into a map that I passed as a jobDataMap to my job. I did not find any other means and Google could not help me.



On Tue, Oct 26, 2010 at 11:07 AM, Antoine Roux <[hidden email]> wrote:
I had the same problem, I solved it by adding

org.quartz.scheduler.threadsInheritContextClassLoaderOfInitializer true

to my quartz.properties.




On Tue, Jan 12, 2010 at 2:41 PM, olivier.fr <[hidden email]> wrote:

Well, no.
My quartz jobs are "memory only " :-)
and well, in fine,  it's ok to fit my requirements...
Regards,
O.



Axelandru wrote:
>
> Hi,
>
> I'm facing a similar issue. Did you find any solutions so far?
>
> Thanks,
>
> Alex
>
>
> olivier.fr wrote:
>>
>> Hi,
>> I'm facing the following issue.
>>
>> I have a Quartz job CustomWorkerJob  and a job details object (a groovy
>> class) used to pass parameters to this job.
>>
>> //-------------------------------------------------------------------------------------------------------------------------------------------------
>>
>> public class CustomJobDefinition implements Serializable {
>>
>>   CADCustomWorker CustomWorker
>>   User owner;
>>
>>   String cadProductId
>>   String targetFolder
>>   Map<String, String> cadParameterValuesMap;
>>   String mdlName
>>   String script
>>
>>   String name
>>   String description
>>   Date creationDate
>>
>>    def volatility = false
>>
>>  }
>>
>> //-------------------------------------------------------------------------------------------------------------------------------------------------
>>
>> class CustomWorkerJob {
>>
>>   private final Logger logger = Logger.getLogger(getClass())
>>
>>
>>   static triggers = {
>>     // Pas de triggers -> demarrage par code.
>>   }
>>
>>   def group = "CustomWorker"
>>
>>   // Un seul job à la fois !
>>   def concurrent = false
>>   def owner = ''
>>
>>   // persistence du job.
>>   def volatility = false
>>
>>
>>
>>   def execute(context) {
>>     // do the job :-)
>>   }
>>
>>
>> }
>>
>> //-------------------------------------------------------------------------------------------------------------------------------------------------
>>
>> My job is started from a service, like this  :
>>
>>  CustomJobDefinition jobDef = new
>> CustomJobDefinition(cadProductId:product.id.toString(),
>>             name:cadScript.name,
>>             description:cadScript.description,
>>             creationDate:new Date(),
>>             targetFolder:targetDocFolder,
>>             cadParameterValuesMap: cadParameterValuesMap,
>>             mdlName: product.template.cadProduct.cadName,
>>             script: cadScript.script,
>>             CustomWorker: CustomWorker,
>>             owner: authenticateService.userDomain())
>>
>>     //SimpleTrigger trigger = new  SimpleTrigger('Custom job', 'test')
>>     //trigger.setJobDataMap([CUSTOM_JOB:jobDef])
>>
>>
>> com.fcad.configurator.Custom.CustomWorkerJob.triggerNow([CUSTOM_JOB:jobDef])
>>
>>
>> It works as long as I don't use jdbc store.
>>
>> If I try to use a persistent mode, I get the following issue :
>>
>> My JobDefinition is not found...
>>
>> org.quartz.JobPersistenceException: Couldn't retrieve trigger:
>> com.mypackage.CustomJobDefinition [See nested exception:
>> java.lang.ClassNotFoundException: com.mypackage.CustomJobDefinition]
>>      at
>> org.quartz.impl.jdbcjobstore.JobStoreSupport.retrieveTrigger(JobStoreSupport.java:1508)
>>      at
>> org.quartz.impl.jdbcjobstore.JobStoreSupport.recoverMisfiredJobs(JobStoreSupport.java:891)
>>      at
>> org.quartz.impl.jdbcjobstore.JobStoreSupport.doRecoverMisfires(JobStoreSupport.java:3029)
>>      at
>> org.quartz.impl.jdbcjobstore.JobStoreSupport$MisfireHandler.manage(JobStoreSupport.java:3789)
>>      at
>> org.quartz.impl.jdbcjobstore.JobStoreSupport$MisfireHandler.run(JobStoreSupport.java:3809)
>> Caused by: java.lang.ClassNotFoundException:
>> com.mypackage..CustomJobDefinition
>>      at org.codehaus.groovy.tools.RootLoader.findClass(RootLoader.java:156)
>>      at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
>>      at org.codehaus.groovy.tools.RootLoader.loadClass(RootLoader.java:128)
>>      at
>> org.codehaus.groovy.grails.cli.support.GrailsRootLoader.loadClass(GrailsRootLoader.java:43)
>>      at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
>>      at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
>>      at java.lang.Class.forName0(Native Method)
>>      at java.lang.Class.forName(Class.java:247)
>>      at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:604)
>>      at
>> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1575)
>>      at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
>>      at
>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)
>>      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>>      at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
>>      at java.util.HashMap.readObject(HashMap.java:1030)
>>      at sun.reflect.GeneratedMethodAccessor431.invoke(Unknown Source)
>>      at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>      at java.lang.reflect.Method.invoke(Method.java:597)
>>      at
>> java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
>>      at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849)
>>      at
>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
>>      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>>      at
>> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
>>      at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
>>      at
>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
>>      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>>      at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
>>      at
>> org.quartz.impl.jdbcjobstore.StdJDBCDelegate.getObjectFromBlob(StdJDBCDelegate.java:3473)
>>      at
>> org.quartz.impl.jdbcjobstore.StdJDBCDelegate.selectTrigger(StdJDBCDelegate.java:2132)
>>      at
>> org.quartz.impl.jdbcjobstore.JobStoreSupport.retrieveTrigger(JobStoreSupport.java:1490)
>>      ... 4 more
>>
>> What can be the root of this issue ?
>> regards,
>>
>> O.
>>
>
>

--
View this message in context: http://old.nabble.com/Persistent-Quartz-jobs-and-jobDetails-tp23423854p27127002.html
Sent from the grails - user mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe from this list, please visit:

   http://xircles.codehaus.org/manage_email





Reply | Threaded
Open this post in threaded view
|

Re: Persistent Quartz jobs and jobDetails

Luis Muniz-2
(sigh) i guess I have to forget about using quartz in a cluster then.

On Mon, Apr 4, 2011 at 5:04 PM, Luis Muniz <[hidden email]> wrote:
Hi Antoine,

Could you please post some example code of your workaround?

Thank you,

Luis


On Tue, Oct 26, 2010 at 2:14 PM, Antoine Roux <[hidden email]> wrote:
Sorry, I talked too fast: some commented out code was making me think it was working.

I tried to replace Quartz ClassLoader, without success. Finally, I transformed my object into a map that I passed as a jobDataMap to my job. I did not find any other means and Google could not help me.



On Tue, Oct 26, 2010 at 11:07 AM, Antoine Roux <[hidden email]> wrote:
I had the same problem, I solved it by adding

org.quartz.scheduler.threadsInheritContextClassLoaderOfInitializer true

to my quartz.properties.




On Tue, Jan 12, 2010 at 2:41 PM, olivier.fr <[hidden email]> wrote:

Well, no.
My quartz jobs are "memory only " :-)
and well, in fine,  it's ok to fit my requirements...
Regards,
O.



Axelandru wrote:
>
> Hi,
>
> I'm facing a similar issue. Did you find any solutions so far?
>
> Thanks,
>
> Alex
>
>
> olivier.fr wrote:
>>
>> Hi,
>> I'm facing the following issue.
>>
>> I have a Quartz job CustomWorkerJob  and a job details object (a groovy
>> class) used to pass parameters to this job.
>>
>> //-------------------------------------------------------------------------------------------------------------------------------------------------
>>
>> public class CustomJobDefinition implements Serializable {
>>
>>   CADCustomWorker CustomWorker
>>   User owner;
>>
>>   String cadProductId
>>   String targetFolder
>>   Map<String, String> cadParameterValuesMap;
>>   String mdlName
>>   String script
>>
>>   String name
>>   String description
>>   Date creationDate
>>
>>    def volatility = false
>>
>>  }
>>
>> //-------------------------------------------------------------------------------------------------------------------------------------------------
>>
>> class CustomWorkerJob {
>>
>>   private final Logger logger = Logger.getLogger(getClass())
>>
>>
>>   static triggers = {
>>     // Pas de triggers -> demarrage par code.
>>   }
>>
>>   def group = "CustomWorker"
>>
>>   // Un seul job à la fois !
>>   def concurrent = false
>>   def owner = ''
>>
>>   // persistence du job.
>>   def volatility = false
>>
>>
>>
>>   def execute(context) {
>>     // do the job :-)
>>   }
>>
>>
>> }
>>
>> //-------------------------------------------------------------------------------------------------------------------------------------------------
>>
>> My job is started from a service, like this  :
>>
>>  CustomJobDefinition jobDef = new
>> CustomJobDefinition(cadProductId:product.id.toString(),
>>             name:cadScript.name,
>>             description:cadScript.description,
>>             creationDate:new Date(),
>>             targetFolder:targetDocFolder,
>>             cadParameterValuesMap: cadParameterValuesMap,
>>             mdlName: product.template.cadProduct.cadName,
>>             script: cadScript.script,
>>             CustomWorker: CustomWorker,
>>             owner: authenticateService.userDomain())
>>
>>     //SimpleTrigger trigger = new  SimpleTrigger('Custom job', 'test')
>>     //trigger.setJobDataMap([CUSTOM_JOB:jobDef])
>>
>>
>> com.fcad.configurator.Custom.CustomWorkerJob.triggerNow([CUSTOM_JOB:jobDef])
>>
>>
>> It works as long as I don't use jdbc store.
>>
>> If I try to use a persistent mode, I get the following issue :
>>
>> My JobDefinition is not found...
>>
>> org.quartz.JobPersistenceException: Couldn't retrieve trigger:
>> com.mypackage.CustomJobDefinition [See nested exception:
>> java.lang.ClassNotFoundException: com.mypackage.CustomJobDefinition]
>>      at
>> org.quartz.impl.jdbcjobstore.JobStoreSupport.retrieveTrigger(JobStoreSupport.java:1508)
>>      at
>> org.quartz.impl.jdbcjobstore.JobStoreSupport.recoverMisfiredJobs(JobStoreSupport.java:891)
>>      at
>> org.quartz.impl.jdbcjobstore.JobStoreSupport.doRecoverMisfires(JobStoreSupport.java:3029)
>>      at
>> org.quartz.impl.jdbcjobstore.JobStoreSupport$MisfireHandler.manage(JobStoreSupport.java:3789)
>>      at
>> org.quartz.impl.jdbcjobstore.JobStoreSupport$MisfireHandler.run(JobStoreSupport.java:3809)
>> Caused by: java.lang.ClassNotFoundException:
>> com.mypackage..CustomJobDefinition
>>      at org.codehaus.groovy.tools.RootLoader.findClass(RootLoader.java:156)
>>      at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
>>      at org.codehaus.groovy.tools.RootLoader.loadClass(RootLoader.java:128)
>>      at
>> org.codehaus.groovy.grails.cli.support.GrailsRootLoader.loadClass(GrailsRootLoader.java:43)
>>      at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
>>      at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
>>      at java.lang.Class.forName0(Native Method)
>>      at java.lang.Class.forName(Class.java:247)
>>      at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:604)
>>      at
>> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1575)
>>      at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
>>      at
>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)
>>      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>>      at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
>>      at java.util.HashMap.readObject(HashMap.java:1030)
>>      at sun.reflect.GeneratedMethodAccessor431.invoke(Unknown Source)
>>      at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>      at java.lang.reflect.Method.invoke(Method.java:597)
>>      at
>> java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
>>      at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849)
>>      at
>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
>>      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>>      at
>> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
>>      at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
>>      at
>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
>>      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>>      at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
>>      at
>> org.quartz.impl.jdbcjobstore.StdJDBCDelegate.getObjectFromBlob(StdJDBCDelegate.java:3473)
>>      at
>> org.quartz.impl.jdbcjobstore.StdJDBCDelegate.selectTrigger(StdJDBCDelegate.java:2132)
>>      at
>> org.quartz.impl.jdbcjobstore.JobStoreSupport.retrieveTrigger(JobStoreSupport.java:1490)
>>      ... 4 more
>>
>> What can be the root of this issue ?
>> regards,
>>
>> O.
>>
>
>

--
View this message in context: http://old.nabble.com/Persistent-Quartz-jobs-and-jobDetails-tp23423854p27127002.html
Sent from the grails - user mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe from this list, please visit:

   http://xircles.codehaus.org/manage_email






Reply | Threaded
Open this post in threaded view
|

Re: Persistent Quartz jobs and jobDetails

Sergey Nebolsin
Please raise an issue against Grails-Quartz, I'll look if we could fix or work around it in the plugin.

Cheers

On Tue, Apr 5, 2011 at 12:55, Luis Muniz <[hidden email]> wrote:
(sigh) i guess I have to forget about using quartz in a cluster then.


On Mon, Apr 4, 2011 at 5:04 PM, Luis Muniz <[hidden email]> wrote:
Hi Antoine,

Could you please post some example code of your workaround?

Thank you,

Luis


On Tue, Oct 26, 2010 at 2:14 PM, Antoine Roux <[hidden email]> wrote:
Sorry, I talked too fast: some commented out code was making me think it was working.

I tried to replace Quartz ClassLoader, without success. Finally, I transformed my object into a map that I passed as a jobDataMap to my job. I did not find any other means and Google could not help me.



On Tue, Oct 26, 2010 at 11:07 AM, Antoine Roux <[hidden email]> wrote:
I had the same problem, I solved it by adding

org.quartz.scheduler.threadsInheritContextClassLoaderOfInitializer true

to my quartz.properties.




On Tue, Jan 12, 2010 at 2:41 PM, olivier.fr <[hidden email]> wrote:

Well, no.
My quartz jobs are "memory only " :-)
and well, in fine,  it's ok to fit my requirements...
Regards,
O.



Axelandru wrote:
>
> Hi,
>
> I'm facing a similar issue. Did you find any solutions so far?
>
> Thanks,
>
> Alex
>
>
> olivier.fr wrote:
>>
>> Hi,
>> I'm facing the following issue.
>>
>> I have a Quartz job CustomWorkerJob  and a job details object (a groovy
>> class) used to pass parameters to this job.
>>
>> //-------------------------------------------------------------------------------------------------------------------------------------------------
>>
>> public class CustomJobDefinition implements Serializable {
>>
>>   CADCustomWorker CustomWorker
>>   User owner;
>>
>>   String cadProductId
>>   String targetFolder
>>   Map<String, String> cadParameterValuesMap;
>>   String mdlName
>>   String script
>>
>>   String name
>>   String description
>>   Date creationDate
>>
>>    def volatility = false
>>
>>  }
>>
>> //-------------------------------------------------------------------------------------------------------------------------------------------------
>>
>> class CustomWorkerJob {
>>
>>   private final Logger logger = Logger.getLogger(getClass())
>>
>>
>>   static triggers = {
>>     // Pas de triggers -> demarrage par code.
>>   }
>>
>>   def group = "CustomWorker"
>>
>>   // Un seul job à la fois !
>>   def concurrent = false
>>   def owner = ''
>>
>>   // persistence du job.
>>   def volatility = false
>>
>>
>>
>>   def execute(context) {
>>     // do the job :-)
>>   }
>>
>>
>> }
>>
>> //-------------------------------------------------------------------------------------------------------------------------------------------------
>>
>> My job is started from a service, like this  :
>>
>>  CustomJobDefinition jobDef = new
>> CustomJobDefinition(cadProductId:product.id.toString(),
>>             name:cadScript.name,
>>             description:cadScript.description,
>>             creationDate:new Date(),
>>             targetFolder:targetDocFolder,
>>             cadParameterValuesMap: cadParameterValuesMap,
>>             mdlName: product.template.cadProduct.cadName,
>>             script: cadScript.script,
>>             CustomWorker: CustomWorker,
>>             owner: authenticateService.userDomain())
>>
>>     //SimpleTrigger trigger = new  SimpleTrigger('Custom job', 'test')
>>     //trigger.setJobDataMap([CUSTOM_JOB:jobDef])
>>
>>
>> com.fcad.configurator.Custom.CustomWorkerJob.triggerNow([CUSTOM_JOB:jobDef])
>>
>>
>> It works as long as I don't use jdbc store.
>>
>> If I try to use a persistent mode, I get the following issue :
>>
>> My JobDefinition is not found...
>>
>> org.quartz.JobPersistenceException: Couldn't retrieve trigger:
>> com.mypackage.CustomJobDefinition [See nested exception:
>> java.lang.ClassNotFoundException: com.mypackage.CustomJobDefinition]
>>      at
>> org.quartz.impl.jdbcjobstore.JobStoreSupport.retrieveTrigger(JobStoreSupport.java:1508)
>>      at
>> org.quartz.impl.jdbcjobstore.JobStoreSupport.recoverMisfiredJobs(JobStoreSupport.java:891)
>>      at
>> org.quartz.impl.jdbcjobstore.JobStoreSupport.doRecoverMisfires(JobStoreSupport.java:3029)
>>      at
>> org.quartz.impl.jdbcjobstore.JobStoreSupport$MisfireHandler.manage(JobStoreSupport.java:3789)
>>      at
>> org.quartz.impl.jdbcjobstore.JobStoreSupport$MisfireHandler.run(JobStoreSupport.java:3809)
>> Caused by: java.lang.ClassNotFoundException:
>> com.mypackage..CustomJobDefinition
>>      at org.codehaus.groovy.tools.RootLoader.findClass(RootLoader.java:156)
>>      at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
>>      at org.codehaus.groovy.tools.RootLoader.loadClass(RootLoader.java:128)
>>      at
>> org.codehaus.groovy.grails.cli.support.GrailsRootLoader.loadClass(GrailsRootLoader.java:43)
>>      at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
>>      at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
>>      at java.lang.Class.forName0(Native Method)
>>      at java.lang.Class.forName(Class.java:247)
>>      at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:604)
>>      at
>> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1575)
>>      at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
>>      at
>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)
>>      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>>      at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
>>      at java.util.HashMap.readObject(HashMap.java:1030)
>>      at sun.reflect.GeneratedMethodAccessor431.invoke(Unknown Source)
>>      at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>      at java.lang.reflect.Method.invoke(Method.java:597)
>>      at
>> java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
>>      at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849)
>>      at
>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
>>      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>>      at
>> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
>>      at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
>>      at
>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
>>      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>>      at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
>>      at
>> org.quartz.impl.jdbcjobstore.StdJDBCDelegate.getObjectFromBlob(StdJDBCDelegate.java:3473)
>>      at
>> org.quartz.impl.jdbcjobstore.StdJDBCDelegate.selectTrigger(StdJDBCDelegate.java:2132)
>>      at
>> org.quartz.impl.jdbcjobstore.JobStoreSupport.retrieveTrigger(JobStoreSupport.java:1490)
>>      ... 4 more
>>
>> What can be the root of this issue ?
>> regards,
>>
>> O.
>>
>
>

--
View this message in context: http://old.nabble.com/Persistent-Quartz-jobs-and-jobDetails-tp23423854p27127002.html
Sent from the grails - user mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe from this list, please visit:

   http://xircles.codehaus.org/manage_email









--
Sergey Nebolsin
CTO at Prophotos.ru, Bestphotographer.ru and Fotoshkola.net
Reply | Threaded
Open this post in threaded view
|

Re: Persistent Quartz jobs and jobDetails

Sergey Nebolsin
In reply to this post by Luis Muniz-2
I found one solution which could possibly work.

You need to subclass driver delegate class for your database and change it to use ClassLoadHelper for retrieving JobDataMap from database instead of simple ObjectInputStream.

1) Find suitable driver delegate class in the org.quartz.impl.jdbcjobstore package (for example, PostgreSQLDelegate)
2) Subclass it and alter it's selectJobDetail method to save classLoadHelper into instance variable and use this helper in the getObjectFromBlob (see http://forums.terracotta.org/forums/posts/list/4064.page for implementation example)
3) Set org.quartz.jobStore.driverDelegateClass property, so Quartz will use your driver delegate class.

If this will work, I think an issue should be raised in the Quartz issue tracker, because doesn't look like the Grails Quartz plugin problem.

Cheers

On Tue, Apr 5, 2011 at 12:55, Luis Muniz <[hidden email]> wrote:
(sigh) i guess I have to forget about using quartz in a cluster then.


On Mon, Apr 4, 2011 at 5:04 PM, Luis Muniz <[hidden email]> wrote:
Hi Antoine,

Could you please post some example code of your workaround?

Thank you,

Luis


On Tue, Oct 26, 2010 at 2:14 PM, Antoine Roux <[hidden email]> wrote:
Sorry, I talked too fast: some commented out code was making me think it was working.

I tried to replace Quartz ClassLoader, without success. Finally, I transformed my object into a map that I passed as a jobDataMap to my job. I did not find any other means and Google could not help me.



On Tue, Oct 26, 2010 at 11:07 AM, Antoine Roux <[hidden email]> wrote:
I had the same problem, I solved it by adding

org.quartz.scheduler.threadsInheritContextClassLoaderOfInitializer true

to my quartz.properties.




On Tue, Jan 12, 2010 at 2:41 PM, olivier.fr <[hidden email]> wrote:

Well, no.
My quartz jobs are "memory only " :-)
and well, in fine,  it's ok to fit my requirements...
Regards,
O.



Axelandru wrote:
>
> Hi,
>
> I'm facing a similar issue. Did you find any solutions so far?
>
> Thanks,
>
> Alex
>
>
> olivier.fr wrote:
>>
>> Hi,
>> I'm facing the following issue.
>>
>> I have a Quartz job CustomWorkerJob  and a job details object (a groovy
>> class) used to pass parameters to this job.
>>
>> //-------------------------------------------------------------------------------------------------------------------------------------------------
>>
>> public class CustomJobDefinition implements Serializable {
>>
>>   CADCustomWorker CustomWorker
>>   User owner;
>>
>>   String cadProductId
>>   String targetFolder
>>   Map<String, String> cadParameterValuesMap;
>>   String mdlName
>>   String script
>>
>>   String name
>>   String description
>>   Date creationDate
>>
>>    def volatility = false
>>
>>  }
>>
>> //-------------------------------------------------------------------------------------------------------------------------------------------------
>>
>> class CustomWorkerJob {
>>
>>   private final Logger logger = Logger.getLogger(getClass())
>>
>>
>>   static triggers = {
>>     // Pas de triggers -> demarrage par code.
>>   }
>>
>>   def group = "CustomWorker"
>>
>>   // Un seul job à la fois !
>>   def concurrent = false
>>   def owner = ''
>>
>>   // persistence du job.
>>   def volatility = false
>>
>>
>>
>>   def execute(context) {
>>     // do the job :-)
>>   }
>>
>>
>> }
>>
>> //-------------------------------------------------------------------------------------------------------------------------------------------------
>>
>> My job is started from a service, like this  :
>>
>>  CustomJobDefinition jobDef = new
>> CustomJobDefinition(cadProductId:product.id.toString(),
>>             name:cadScript.name,
>>             description:cadScript.description,
>>             creationDate:new Date(),
>>             targetFolder:targetDocFolder,
>>             cadParameterValuesMap: cadParameterValuesMap,
>>             mdlName: product.template.cadProduct.cadName,
>>             script: cadScript.script,
>>             CustomWorker: CustomWorker,
>>             owner: authenticateService.userDomain())
>>
>>     //SimpleTrigger trigger = new  SimpleTrigger('Custom job', 'test')
>>     //trigger.setJobDataMap([CUSTOM_JOB:jobDef])
>>
>>
>> com.fcad.configurator.Custom.CustomWorkerJob.triggerNow([CUSTOM_JOB:jobDef])
>>
>>
>> It works as long as I don't use jdbc store.
>>
>> If I try to use a persistent mode, I get the following issue :
>>
>> My JobDefinition is not found...
>>
>> org.quartz.JobPersistenceException: Couldn't retrieve trigger:
>> com.mypackage.CustomJobDefinition [See nested exception:
>> java.lang.ClassNotFoundException: com.mypackage.CustomJobDefinition]
>>      at
>> org.quartz.impl.jdbcjobstore.JobStoreSupport.retrieveTrigger(JobStoreSupport.java:1508)
>>      at
>> org.quartz.impl.jdbcjobstore.JobStoreSupport.recoverMisfiredJobs(JobStoreSupport.java:891)
>>      at
>> org.quartz.impl.jdbcjobstore.JobStoreSupport.doRecoverMisfires(JobStoreSupport.java:3029)
>>      at
>> org.quartz.impl.jdbcjobstore.JobStoreSupport$MisfireHandler.manage(JobStoreSupport.java:3789)
>>      at
>> org.quartz.impl.jdbcjobstore.JobStoreSupport$MisfireHandler.run(JobStoreSupport.java:3809)
>> Caused by: java.lang.ClassNotFoundException:
>> com.mypackage..CustomJobDefinition
>>      at org.codehaus.groovy.tools.RootLoader.findClass(RootLoader.java:156)
>>      at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
>>      at org.codehaus.groovy.tools.RootLoader.loadClass(RootLoader.java:128)
>>      at
>> org.codehaus.groovy.grails.cli.support.GrailsRootLoader.loadClass(GrailsRootLoader.java:43)
>>      at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
>>      at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
>>      at java.lang.Class.forName0(Native Method)
>>      at java.lang.Class.forName(Class.java:247)
>>      at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:604)
>>      at
>> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1575)
>>      at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
>>      at
>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)
>>      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>>      at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
>>      at java.util.HashMap.readObject(HashMap.java:1030)
>>      at sun.reflect.GeneratedMethodAccessor431.invoke(Unknown Source)
>>      at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>      at java.lang.reflect.Method.invoke(Method.java:597)
>>      at
>> java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
>>      at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849)
>>      at
>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
>>      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>>      at
>> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
>>      at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
>>      at
>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
>>      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>>      at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
>>      at
>> org.quartz.impl.jdbcjobstore.StdJDBCDelegate.getObjectFromBlob(StdJDBCDelegate.java:3473)
>>      at
>> org.quartz.impl.jdbcjobstore.StdJDBCDelegate.selectTrigger(StdJDBCDelegate.java:2132)
>>      at
>> org.quartz.impl.jdbcjobstore.JobStoreSupport.retrieveTrigger(JobStoreSupport.java:1490)
>>      ... 4 more
>>
>> What can be the root of this issue ?
>> regards,
>>
>> O.
>>
>
>

--
View this message in context: http://old.nabble.com/Persistent-Quartz-jobs-and-jobDetails-tp23423854p27127002.html
Sent from the grails - user mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe from this list, please visit:

   http://xircles.codehaus.org/manage_email









--
Sergey Nebolsin
CTO at Prophotos.ru, Bestphotographer.ru and Fotoshkola.net
Reply | Threaded
Open this post in threaded view
|

Re: Persistent Quartz jobs and jobDetails

Luis Muniz-2
I agree with you, in my opinion it is a Quartz issue

On Tue, Apr 5, 2011 at 1:24 PM, Sergey Nebolsin <[hidden email]> wrote:
I found one solution which could possibly work.

You need to subclass driver delegate class for your database and change it to use ClassLoadHelper for retrieving JobDataMap from database instead of simple ObjectInputStream.

1) Find suitable driver delegate class in the org.quartz.impl.jdbcjobstore package (for example, PostgreSQLDelegate)
2) Subclass it and alter it's selectJobDetail method to save classLoadHelper into instance variable and use this helper in the getObjectFromBlob (see http://forums.terracotta.org/forums/posts/list/4064.page for implementation example)
3) Set org.quartz.jobStore.driverDelegateClass property, so Quartz will use your driver delegate class.

If this will work, I think an issue should be raised in the Quartz issue tracker, because doesn't look like the Grails Quartz plugin problem.

Cheers


On Tue, Apr 5, 2011 at 12:55, Luis Muniz <[hidden email]> wrote:
(sigh) i guess I have to forget about using quartz in a cluster then.


On Mon, Apr 4, 2011 at 5:04 PM, Luis Muniz <[hidden email]> wrote:
Hi Antoine,

Could you please post some example code of your workaround?

Thank you,

Luis


On Tue, Oct 26, 2010 at 2:14 PM, Antoine Roux <[hidden email]> wrote:
Sorry, I talked too fast: some commented out code was making me think it was working.

I tried to replace Quartz ClassLoader, without success. Finally, I transformed my object into a map that I passed as a jobDataMap to my job. I did not find any other means and Google could not help me.



On Tue, Oct 26, 2010 at 11:07 AM, Antoine Roux <[hidden email]> wrote:
I had the same problem, I solved it by adding

org.quartz.scheduler.threadsInheritContextClassLoaderOfInitializer true

to my quartz.properties.




On Tue, Jan 12, 2010 at 2:41 PM, olivier.fr <[hidden email]> wrote:

Well, no.
My quartz jobs are "memory only " :-)
and well, in fine,  it's ok to fit my requirements...
Regards,
O.



Axelandru wrote:
>
> Hi,
>
> I'm facing a similar issue. Did you find any solutions so far?
>
> Thanks,
>
> Alex
>
>
> olivier.fr wrote:
>>
>> Hi,
>> I'm facing the following issue.
>>
>> I have a Quartz job CustomWorkerJob  and a job details object (a groovy
>> class) used to pass parameters to this job.
>>
>> //-------------------------------------------------------------------------------------------------------------------------------------------------
>>
>> public class CustomJobDefinition implements Serializable {
>>
>>   CADCustomWorker CustomWorker
>>   User owner;
>>
>>   String cadProductId
>>   String targetFolder
>>   Map<String, String> cadParameterValuesMap;
>>   String mdlName
>>   String script
>>
>>   String name
>>   String description
>>   Date creationDate
>>
>>    def volatility = false
>>
>>  }
>>
>> //-------------------------------------------------------------------------------------------------------------------------------------------------
>>
>> class CustomWorkerJob {
>>
>>   private final Logger logger = Logger.getLogger(getClass())
>>
>>
>>   static triggers = {
>>     // Pas de triggers -> demarrage par code.
>>   }
>>
>>   def group = "CustomWorker"
>>
>>   // Un seul job à la fois !
>>   def concurrent = false
>>   def owner = ''
>>
>>   // persistence du job.
>>   def volatility = false
>>
>>
>>
>>   def execute(context) {
>>     // do the job :-)
>>   }
>>
>>
>> }
>>
>> //-------------------------------------------------------------------------------------------------------------------------------------------------
>>
>> My job is started from a service, like this  :
>>
>>  CustomJobDefinition jobDef = new
>> CustomJobDefinition(cadProductId:product.id.toString(),
>>             name:cadScript.name,
>>             description:cadScript.description,
>>             creationDate:new Date(),
>>             targetFolder:targetDocFolder,
>>             cadParameterValuesMap: cadParameterValuesMap,
>>             mdlName: product.template.cadProduct.cadName,
>>             script: cadScript.script,
>>             CustomWorker: CustomWorker,
>>             owner: authenticateService.userDomain())
>>
>>     //SimpleTrigger trigger = new  SimpleTrigger('Custom job', 'test')
>>     //trigger.setJobDataMap([CUSTOM_JOB:jobDef])
>>
>>
>> com.fcad.configurator.Custom.CustomWorkerJob.triggerNow([CUSTOM_JOB:jobDef])
>>
>>
>> It works as long as I don't use jdbc store.
>>
>> If I try to use a persistent mode, I get the following issue :
>>
>> My JobDefinition is not found...
>>
>> org.quartz.JobPersistenceException: Couldn't retrieve trigger:
>> com.mypackage.CustomJobDefinition [See nested exception:
>> java.lang.ClassNotFoundException: com.mypackage.CustomJobDefinition]
>>      at
>> org.quartz.impl.jdbcjobstore.JobStoreSupport.retrieveTrigger(JobStoreSupport.java:1508)
>>      at
>> org.quartz.impl.jdbcjobstore.JobStoreSupport.recoverMisfiredJobs(JobStoreSupport.java:891)
>>      at
>> org.quartz.impl.jdbcjobstore.JobStoreSupport.doRecoverMisfires(JobStoreSupport.java:3029)
>>      at
>> org.quartz.impl.jdbcjobstore.JobStoreSupport$MisfireHandler.manage(JobStoreSupport.java:3789)
>>      at
>> org.quartz.impl.jdbcjobstore.JobStoreSupport$MisfireHandler.run(JobStoreSupport.java:3809)
>> Caused by: java.lang.ClassNotFoundException:
>> com.mypackage..CustomJobDefinition
>>      at org.codehaus.groovy.tools.RootLoader.findClass(RootLoader.java:156)
>>      at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
>>      at org.codehaus.groovy.tools.RootLoader.loadClass(RootLoader.java:128)
>>      at
>> org.codehaus.groovy.grails.cli.support.GrailsRootLoader.loadClass(GrailsRootLoader.java:43)
>>      at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
>>      at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
>>      at java.lang.Class.forName0(Native Method)
>>      at java.lang.Class.forName(Class.java:247)
>>      at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:604)
>>      at
>> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1575)
>>      at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
>>      at
>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)
>>      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>>      at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
>>      at java.util.HashMap.readObject(HashMap.java:1030)
>>      at sun.reflect.GeneratedMethodAccessor431.invoke(Unknown Source)
>>      at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>      at java.lang.reflect.Method.invoke(Method.java:597)
>>      at
>> java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
>>      at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849)
>>      at
>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
>>      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>>      at
>> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
>>      at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
>>      at
>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
>>      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>>      at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
>>      at
>> org.quartz.impl.jdbcjobstore.StdJDBCDelegate.getObjectFromBlob(StdJDBCDelegate.java:3473)
>>      at
>> org.quartz.impl.jdbcjobstore.StdJDBCDelegate.selectTrigger(StdJDBCDelegate.java:2132)
>>      at
>> org.quartz.impl.jdbcjobstore.JobStoreSupport.retrieveTrigger(JobStoreSupport.java:1490)
>>      ... 4 more
>>
>> What can be the root of this issue ?
>> regards,
>>
>> O.
>>
>
>

--
View this message in context: http://old.nabble.com/Persistent-Quartz-jobs-and-jobDetails-tp23423854p27127002.html
Sent from the grails - user mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe from this list, please visit:

   http://xircles.codehaus.org/manage_email









--
Sergey Nebolsin
CTO at Prophotos.ru, Bestphotographer.ru and Fotoshkola.net

Reply | Threaded
Open this post in threaded view
|

Re: Persistent Quartz jobs and jobDetails

Luis Muniz-2
In reply to this post by Sergey Nebolsin
Thanks a lot Sergey. Right now I'm a bit rushed because I lost a lot of time trying to figure this out and had to come up with a different solution than using a clustered quartz scheduler, but I will probably come back to you solution proposal and tryit out. I will post a follow-up on this thread if I get to it.

On Tue, Apr 5, 2011 at 1:24 PM, Sergey Nebolsin <[hidden email]> wrote:
I found one solution which could possibly work.

You need to subclass driver delegate class for your database and change it to use ClassLoadHelper for retrieving JobDataMap from database instead of simple ObjectInputStream.

1) Find suitable driver delegate class in the org.quartz.impl.jdbcjobstore package (for example, PostgreSQLDelegate)
2) Subclass it and alter it's selectJobDetail method to save classLoadHelper into instance variable and use this helper in the getObjectFromBlob (see http://forums.terracotta.org/forums/posts/list/4064.page for implementation example)
3) Set org.quartz.jobStore.driverDelegateClass property, so Quartz will use your driver delegate class.

If this will work, I think an issue should be raised in the Quartz issue tracker, because doesn't look like the Grails Quartz plugin problem.

Cheers


On Tue, Apr 5, 2011 at 12:55, Luis Muniz <[hidden email]> wrote:
(sigh) i guess I have to forget about using quartz in a cluster then.


On Mon, Apr 4, 2011 at 5:04 PM, Luis Muniz <[hidden email]> wrote:
Hi Antoine,

Could you please post some example code of your workaround?

Thank you,

Luis


On Tue, Oct 26, 2010 at 2:14 PM, Antoine Roux <[hidden email]> wrote:
Sorry, I talked too fast: some commented out code was making me think it was working.

I tried to replace Quartz ClassLoader, without success. Finally, I transformed my object into a map that I passed as a jobDataMap to my job. I did not find any other means and Google could not help me.



On Tue, Oct 26, 2010 at 11:07 AM, Antoine Roux <[hidden email]> wrote:
I had the same problem, I solved it by adding

org.quartz.scheduler.threadsInheritContextClassLoaderOfInitializer true

to my quartz.properties.




On Tue, Jan 12, 2010 at 2:41 PM, olivier.fr <[hidden email]> wrote:

Well, no.
My quartz jobs are "memory only " :-)
and well, in fine,  it's ok to fit my requirements...
Regards,
O.



Axelandru wrote:
>
> Hi,
>
> I'm facing a similar issue. Did you find any solutions so far?
>
> Thanks,
>
> Alex
>
>
> olivier.fr wrote:
>>
>> Hi,
>> I'm facing the following issue.
>>
>> I have a Quartz job CustomWorkerJob  and a job details object (a groovy
>> class) used to pass parameters to this job.
>>
>> //-------------------------------------------------------------------------------------------------------------------------------------------------
>>
>> public class CustomJobDefinition implements Serializable {
>>
>>   CADCustomWorker CustomWorker
>>   User owner;
>>
>>   String cadProductId
>>   String targetFolder
>>   Map<String, String> cadParameterValuesMap;
>>   String mdlName
>>   String script
>>
>>   String name
>>   String description
>>   Date creationDate
>>
>>    def volatility = false
>>
>>  }
>>
>> //-------------------------------------------------------------------------------------------------------------------------------------------------
>>
>> class CustomWorkerJob {
>>
>>   private final Logger logger = Logger.getLogger(getClass())
>>
>>
>>   static triggers = {
>>     // Pas de triggers -> demarrage par code.
>>   }
>>
>>   def group = "CustomWorker"
>>
>>   // Un seul job à la fois !
>>   def concurrent = false
>>   def owner = ''
>>
>>   // persistence du job.
>>   def volatility = false
>>
>>
>>
>>   def execute(context) {
>>     // do the job :-)
>>   }
>>
>>
>> }
>>
>> //-------------------------------------------------------------------------------------------------------------------------------------------------
>>
>> My job is started from a service, like this  :
>>
>>  CustomJobDefinition jobDef = new
>> CustomJobDefinition(cadProductId:product.id.toString(),
>>             name:cadScript.name,
>>             description:cadScript.description,
>>             creationDate:new Date(),
>>             targetFolder:targetDocFolder,
>>             cadParameterValuesMap: cadParameterValuesMap,
>>             mdlName: product.template.cadProduct.cadName,
>>             script: cadScript.script,
>>             CustomWorker: CustomWorker,
>>             owner: authenticateService.userDomain())
>>
>>     //SimpleTrigger trigger = new  SimpleTrigger('Custom job', 'test')
>>     //trigger.setJobDataMap([CUSTOM_JOB:jobDef])
>>
>>
>> com.fcad.configurator.Custom.CustomWorkerJob.triggerNow([CUSTOM_JOB:jobDef])
>>
>>
>> It works as long as I don't use jdbc store.
>>
>> If I try to use a persistent mode, I get the following issue :
>>
>> My JobDefinition is not found...
>>
>> org.quartz.JobPersistenceException: Couldn't retrieve trigger:
>> com.mypackage.CustomJobDefinition [See nested exception:
>> java.lang.ClassNotFoundException: com.mypackage.CustomJobDefinition]
>>      at
>> org.quartz.impl.jdbcjobstore.JobStoreSupport.retrieveTrigger(JobStoreSupport.java:1508)
>>      at
>> org.quartz.impl.jdbcjobstore.JobStoreSupport.recoverMisfiredJobs(JobStoreSupport.java:891)
>>      at
>> org.quartz.impl.jdbcjobstore.JobStoreSupport.doRecoverMisfires(JobStoreSupport.java:3029)
>>      at
>> org.quartz.impl.jdbcjobstore.JobStoreSupport$MisfireHandler.manage(JobStoreSupport.java:3789)
>>      at
>> org.quartz.impl.jdbcjobstore.JobStoreSupport$MisfireHandler.run(JobStoreSupport.java:3809)
>> Caused by: java.lang.ClassNotFoundException:
>> com.mypackage..CustomJobDefinition
>>      at org.codehaus.groovy.tools.RootLoader.findClass(RootLoader.java:156)
>>      at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
>>      at org.codehaus.groovy.tools.RootLoader.loadClass(RootLoader.java:128)
>>      at
>> org.codehaus.groovy.grails.cli.support.GrailsRootLoader.loadClass(GrailsRootLoader.java:43)
>>      at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
>>      at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
>>      at java.lang.Class.forName0(Native Method)
>>      at java.lang.Class.forName(Class.java:247)
>>      at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:604)
>>      at
>> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1575)
>>      at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
>>      at
>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)
>>      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>>      at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
>>      at java.util.HashMap.readObject(HashMap.java:1030)
>>      at sun.reflect.GeneratedMethodAccessor431.invoke(Unknown Source)
>>      at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>      at java.lang.reflect.Method.invoke(Method.java:597)
>>      at
>> java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
>>      at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849)
>>      at
>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
>>      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>>      at
>> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
>>      at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
>>      at
>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
>>      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>>      at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
>>      at
>> org.quartz.impl.jdbcjobstore.StdJDBCDelegate.getObjectFromBlob(StdJDBCDelegate.java:3473)
>>      at
>> org.quartz.impl.jdbcjobstore.StdJDBCDelegate.selectTrigger(StdJDBCDelegate.java:2132)
>>      at
>> org.quartz.impl.jdbcjobstore.JobStoreSupport.retrieveTrigger(JobStoreSupport.java:1490)
>>      ... 4 more
>>
>> What can be the root of this issue ?
>> regards,
>>
>> O.
>>
>
>

--
View this message in context: http://old.nabble.com/Persistent-Quartz-jobs-and-jobDetails-tp23423854p27127002.html
Sent from the grails - user mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe from this list, please visit:

   http://xircles.codehaus.org/manage_email









--
Sergey Nebolsin
CTO at Prophotos.ru, Bestphotographer.ru and Fotoshkola.net