Hi!
Added a few files for reproducing the problem:
SchedulerBeanPersisted and SchedulerBeanPersistedRemote are like the example in
the JavaEE6 Tutorial stripped down to the programmatically inserted timer.
AddProgrammaticTimer adds the programmatic timer.
Tomee.xml shows the datasource definition.
Application.properties (deployed to WEB-INF directory) shows the definition of
the used quartz scheduler.
Tables_sqlServer.sql show the SQL script provided from Quartz to generate the
according tables for a MSSQL database.
Do you need more information?
Best regards,
Thomas
-----
From: Romain Manni-Bucau [via OpenEJB]
[mailto:[email protected]]
Sent: Montag, 5. November 2012 16:27
To: Thomas Schuler
Subject: Re: Use external database for persistent timer service
yeah, was asking to a sample to have a look locally
thks
*Romain Manni-Bucau*
*Twitter: @rmannibucau <https://twitter.com/rmannibucau>*
*Blog: **http://rmannibucau.wordpress.com/*<http://rmannibucau.wordpress.com/>
*LinkedIn: **http://fr.linkedin.com/in/rmannibucau*
*Github: https://github.com/rmannibucau*
2012/11/5 tschuler <[hidden email]>
> Hi!
>
> What do you mean with reproduce?
> If you want, I can provide you a simple example that doesn't work.
>
> Best regards,
> Thomas
>
> From: Romain Manni-Bucau [via OpenEJB] [mailto:
> [hidden email]]
> Sent: Montag, 5. November 2012 16:18
> To: Thomas Schuler
> Subject: Re: Use external database for persistent timer service
>
> Hi,
>
> can you reproduce it?
>
> normally timeoutMethod can't be null
>
> *Romain Manni-Bucau*
> *Twitter: @rmannibucau <https://twitter.com/rmannibucau>*
> *Blog: **http://rmannibucau.wordpress.com/*<
> http://rmannibucau.wordpress.com/>
> *LinkedIn: **http://fr.linkedin.com/in/rmannibucau*
> *Github: https://github.com/rmannibucau*
>
>
>
>
> 2012/11/5 tschuler <[hidden
> email]</user/SendEmail.jtp?type=node&node=4658374&i=0>>
>
> > Hi!
> >
> > I successfully configured tomee for using an external database to enable
> a
> > persistent timer service.
> > I tried the TimerSessionBean example within the JavaEE6 Tutorial
> > (http://docs.oracle.com/javaee/6/tutorial/doc/bnboy.html).
> > The quartz database tables get the job informations, but I face a problem
> > with programmatically added timeouts:
> > They don't seem to be executed, about 90 seconds after the trigger time
> the
> > following message is written to the log file:
> >
> > [Timestamp] org.quartz.impl.jdbcjobstore.JobStoreSupport
> > recoverMisfiredJobs
> > INFO: Handling 2 trigger(s) that missed their scheduled fire-time.
> > [Timestamp] org.quartz.impl.jdbcjobstore.JobStoreSupport$MisfireHandler
> > manage
> > SCHWERWIEGEND: MisfireHandler: Error handling misfires: Couldn't store
> > trigger
> >
> >
> 'OPEN_EJB_TIMEOUT_TRIGGER_GROUP.OPEN_EJB_TIMEOUT_TRIGGER_SchedulerBeanPersisted_1'
>
> > for 'OPENEJB_TIMEOUT_GROUP.OPENEJB_TIMEOUT_JOB' job:null
> > org.quartz.JobPersistenceException: Couldn't store trigger
> >
> >
> 'OPEN_EJB_TIMEOUT_TRIGGER_GROUP.OPEN_EJB_TIMEOUT_TRIGGER_SchedulerBeanPersisted_1'
>
> > for 'OPENEJB_TIMEOUT_GROUP.OPENEJB_TIMEOUT_JOB' job:null [See nested
> > exception: java.lang.NullPointerException]
> > at
> >
> >
> org.quartz.impl.jdbcjobstore.JobStoreSupport.storeTrigger(JobStoreSupport.java:1212)
>
> > at
> >
> >
> org.quartz.impl.jdbcjobstore.JobStoreSupport.doUpdateOfMisfiredTrigger(JobStoreSupport.java:1026)
>
> > at
> >
> >
> org.quartz.impl.jdbcjobstore.JobStoreSupport.recoverMisfiredJobs(JobStoreSupport.java:975)
>
> > at
> >
> >
> org.quartz.impl.jdbcjobstore.JobStoreSupport.doRecoverMisfires(JobStoreSupport.java:3187)
>
> > at
> >
> >
> org.quartz.impl.jdbcjobstore.JobStoreSupport$MisfireHandler.manage(JobStoreSupport.java:3947)
>
> > at
> >
> >
> org.quartz.impl.jdbcjobstore.JobStoreSupport$MisfireHandler.run(JobStoreSupport.java:3968)
>
> > Caused by: java.lang.NullPointerException
> > at
> > org.apache.openejb.core.timer.TimerData.writeObject(TimerData.java:120)
> > at sun.reflect.GeneratedMethodAccessor55.invoke(Unknown Source)
> > at
> >
> >
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>
> > at java.lang.reflect.Method.invoke(Method.java:597)
> > at
> > java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
> > at
> > java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1469)
> > at
> >
> >
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
> > at
> > java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
> > at
> > java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)
> > at java.util.HashMap.writeObject(HashMap.java:1001)
> > at sun.reflect.GeneratedMethodAccessor50.invoke(Unknown Source)
> > at
> >
> >
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>
> > at java.lang.reflect.Method.invoke(Method.java:597)
> > at
> > java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
> > at
> > java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1469)
> > at
> >
> >
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
> > at
> > java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
> > at
> >
> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
> > at
> > java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)
> > at
> >
> >
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
> > at
> > java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
> > at
> > java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)
> > at
> >
> >
> org.quartz.impl.jdbcjobstore.StdJDBCDelegate.serializeObject(StdJDBCDelegate.java:3011)
>
> > at
> >
> >
> org.quartz.impl.jdbcjobstore.StdJDBCDelegate.serializeJobData(StdJDBCDelegate.java:3036)
>
> > at
> >
> >
> org.quartz.impl.jdbcjobstore.StdJDBCDelegate.updateTrigger(StdJDBCDelegate.java:1168)
>
> > at
> >
> >
> org.quartz.impl.jdbcjobstore.JobStoreSupport.storeTrigger(JobStoreSupport.java:1207)
>
> > ... 5 more
> >
> > Having a look into TimerData.java shows that timeoutMethod seems to be
> > null.
> >
> > What must be done to get the programmtic timeout running?
> >
> > Best regards,
> > Thomas
> >
> >
> >
> > --
> > View this message in context:
> >
> http://openejb.979440.n4.nabble.com/Use-external-database-for-persistent-timer-service-tp4658321p4658373.html
> > Sent from the OpenEJB User mailing list archive at Nabble.com.
> >
>
> ________________________________
> If you reply to this email, your message will be added to the discussion
> below:
>
> http://openejb.979440.n4.nabble.com/Use-external-database-for-persistent-timer-service-tp4658321p4658374.html
> To unsubscribe from Use external database for persistent timer service,
> click here<
> >.
> NAML<
> http://openejb.979440.n4.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml
> >
>
>
>
>
> --
> View this message in context:
> http://openejb.979440.n4.nabble.com/Use-external-database-for-persistent-timer-service-tp4658321p4658375.html
> Sent from the OpenEJB User mailing list archive at Nabble.com.
>
________________________________________
If you reply to this email, your message will be added to the discussion below:
http://openejb.979440.n4.nabble.com/Use-external-database-for-persistent-timer-service-tp4658321p4658376.html
To unsubscribe from Use external database for persistent timer service, click
here.
NAML
SchedulerBeanPersisted.java (1K)
<http://openejb.979440.n4.nabble.com/attachment/4658381/0/SchedulerBeanPersisted.java>
SchedulerBeanPersistedRemote.java (230 bytes)
<http://openejb.979440.n4.nabble.com/attachment/4658381/1/SchedulerBeanPersistedRemote.java>
AddProgrammaticTimer.java (1K)
<http://openejb.979440.n4.nabble.com/attachment/4658381/2/AddProgrammaticTimer.java>
tomee.xml (654 bytes)
<http://openejb.979440.n4.nabble.com/attachment/4658381/3/tomee.xml>
application.properties (1K)
<http://openejb.979440.n4.nabble.com/attachment/4658381/4/application.properties>
tables_sqlServer.sql (14K)
<http://openejb.979440.n4.nabble.com/attachment/4658381/5/tables_sqlServer.sql>
--
View this message in context:
http://openejb.979440.n4.nabble.com/Use-external-database-for-persistent-timer-service-tp4658321p4658381.html
Sent from the OpenEJB User mailing list archive at Nabble.com.