Dirk,
I believe the Serialization occurs inside the quartz code when it tries to store the job in the database. The job must be serialized to be persisted in the DB. When the QuartzMessageReceiver is started, all of the jobs are persisted in the database. Here is some log and stack trace:
INFO 2009-06-30 18:08:49,746 [WrapperListener_start_runner] org.mule.component.DefaultJavaComponent: Starting: org.mule.component.DefaultJavaComponent component for: SedaService{PollModemsInitiatorService}
INFO 2009-06-30 18:08:49,755 [WrapperListener_start_runner] org.mule.transport.quartz.QuartzConnector: Registering listener: PollModemsInitiatorService on endpointUri: quartz://pollModemServiceJob
INFO 2009-06-30 18:08:49,776 [WrapperListener_start_runner] org.mule.transport.quartz.QuartzMessageReceiver: Connected: quartz://pollModemServiceJob
ERROR 2009-06-30 18:08:49,878 [WrapperListener_start_runner] org.mule.MuleServer:
********************************************************************************
Message : Failed to start Quartz receiver
Type : org.mule.api.endpoint.EndpointException
Code : MULE_ERROR-60042
JavaDoc :
http://www.mulesource.org/docs/site/current2/apidocs/org/mule/api/endpoint/EndpointException.html********************************************************************************
Exception stack is:
1. Unable to serialize JobDataMap for insertion into database because the value of property 'jobConfig' is not serializable: org.mule.expression.MuleExpressionEvaluator (java.io.NotSerializableException)
org.quartz.impl.jdbcjobstore.StdJDBCDelegate:3354 (null)
2. Couldn't store job: Unable to serialize JobDataMap for insertion into database because the value of property 'jobConfig' is not serializable: org.mule.expression.MuleExpressionEvaluator (org.quartz.JobPersistenceException)
org.quartz.impl.jdbcjobstore.JobStoreSupport:1041 (null)
3. Failed to start Quartz receiver (org.mule.api.endpoint.EndpointException)
org.mule.transport.quartz.QuartzMessageReceiver:150 (
http://www.mulesource.org/docs/site/current2/apidocs/org/mule/api/endpoint/EndpointException.html)
********************************************************************************
Root Exception stack trace:
java.io.NotSerializableException: Unable to serialize JobDataMap for insertion into database because the value of property 'jobConfig' is not serializable: org.mule.expression.MuleExpressionEvaluator
at org.quartz.impl.jdbcjobstore.StdJDBCDelegate.serializeJobData(StdJDBCDelegate.java:3354)
at org.quartz.impl.jdbcjobstore.StdJDBCDelegate.insertJobDetail(StdJDBCDelegate.java:515)
at org.quartz.impl.jdbcjobstore.JobStoreSupport.storeJob(JobStoreSupport.java:1038)
at org.quartz.impl.jdbcjobstore.JobStoreSupport$3.execute(JobStoreSupport.java:983)
at org.quartz.impl.jdbcjobstore.JobStoreSupport$39.execute(JobStoreSupport.java:3590)
at org.quartz.impl.jdbcjobstore.JobStoreSupport.executeInNonManagedTXLock(JobStoreSupport.java:3662)
at org.quartz.impl.jdbcjobstore.JobStoreTX.executeInLock(JobStoreTX.java:93)
at org.quartz.impl.jdbcjobstore.JobStoreSupport.executeInLock(JobStoreSupport.java:3586)
at org.quartz.impl.jdbcjobstore.JobStoreSupport.storeJobAndTrigger(JobStoreSupport.java:971)
at org.quartz.core.QuartzScheduler.scheduleJob(QuartzScheduler.java:703)
at org.quartz.impl.StdScheduler.scheduleJob(StdScheduler.java:255)
at org.mule.transport.quartz.QuartzMessageReceiver.doStart(QuartzMessageReceiver.java:137)
at org.mule.transport.AbstractConnectable.start(AbstractConnectable.java:280)
at org.mule.service.AbstractService.startListeners(AbstractService.java:644)
at org.mule.service.AbstractService.start(AbstractService.java:343)
at org.mule.service.AbstractService.start(AbstractService.java:293)
at sun.reflect.GeneratedMethodAccessor151.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.mule.lifecycle.DefaultLifecyclePhase.applyLifecycle(DefaultLifecyclePhase.java:273)
at org.mule.lifecycle.DefaultLifecyclePhase.applyLifecycle(DefaultLifecyclePhase.java:129)
at org.mule.lifecycle.GenericLifecycleManager.firePhase(GenericLifecycleManager.java:84)
at org.mule.DefaultMuleContext.start(DefaultMuleContext.java:171)
at org.mule.MuleServer.run(MuleServer.java:259)
at org.mule.MuleServer.start(MuleServer.java:244)
at org.mule.module.boot.MuleServerWrapper.start(MuleServerWrapper.java:49)
at org.tanukisoftware.wrapper.WrapperManager$12.run(WrapperManager.java:2788)
********************************************************************************
Thanks,
Rob
Dirk Olmes-5 wrote:
rstacy@zcorum.com wrote:
> Dirk,
>
> Thanks for the help. The following endpoint is what is the job being
> persisted:
>
> <quartz:inbound-endpoint jobName="pollModemServiceJob"
> cronExpression="${poll.modems.cron.expression}">
> <property key="method" value="findAll"/>
> <quartz:event-generator-job />
> </quartz:inbound-endpoint>
Where exactly does the serialization happen? This is the crucial info to
find out and then decide how to proceed from there.
> So far I have had to add Serialization to a number of classes. I am not
> sure why these classes are being persisted to be honest with you. I have
> had to Serialize DefaultMuleContext obviously, but I have also had to add
> Serialization to a number of ExpressionEvaluators such as
> org.mule.expression.MuleExpressionEvaluator. Why are these being persisted?
That's the root question. I would not go down the route adding
serialization until the persistence works. I'm pretty sure e.g. that if
you persist a MuleContext and it's de-seiralized somewhere else in the
cluster all kinds of havoc will happen.
-dirk
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email