Hi Romain!
Attached the packed eclipse project.
Please check README.txt how to adapt to your local system.
It includes a simple example "Timer" demonstrating a scheduled bean without
persistence.
The example "Timer (persisted)" should demonstrate a persisted scheduled bean.
This does only work for the automated timeout - it still runs after TomEE
restart.
The programmatic timeout can be added but is never executed but shows the
described error message.
Hope that helps.
Feel free to contact me if you need additional information.
Best regards,
Thomas
From: Romain Manni-Bucau [via OpenEJB]
[mailto:[email protected]]
Sent: Dienstag, 6. November 2012 14:19
To: Thomas Schuler
Subject: Re: Use external database for persistent timer service
Hi,
yes Romain ;)
Don't know Bruno i think
Ant is fine too, what i meant is sthg improtable in an IDE and buildable in
command line
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/6 tschuler <[hidden
email]</user/SendEmail.jtp?type=node&node=4658393&i=0>>
> Hi!
>
> Sorry to respond once more:
> I can provide you an eclipse project instead.
> It includes an ant task for building and deploying the example by copying
> a TomEE 1.5 installation and adapting it for executing the example.
> Would that help?
>
> Best regards,
> Thomas
>
> From: Romain Manni-Bucau [via OpenEJB] [mailto:
> [hidden email]</user/SendEmail.jtp?type=node&node=4658393&i=1>]
> Sent: Montag, 5. November 2012 17:49
> To: Thomas Schuler
> Subject: Re: Use external database for persistent timer service
>
> Hi,
>
> thanks for it but is it possible to share a maven project (really easier
> for us to work on it since these days are really busy)
>
> *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=4658382&i=0>>
>
> > 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:
> > [hidden email]</user/SendEmail.jtp?type=node&node=4658382&i=1>]
> > 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.
> >
>
> ________________________________
> 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-tp4658321p4658382.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-tp4658321p4658388.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-tp4658321p4658393.html
To unsubscribe from Use external database for persistent timer service, click
here<http://openejb.979440.n4.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=4658321&code=dGhvbWFzLnNjaHVsZXJAb3BlbnRleHQuY29tfDQ2NTgzMjF8LTE4NTIyNTQ0OTI=>.
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>
PS_TOMEE.zip (1M)
<http://openejb.979440.n4.nabble.com/attachment/4658403/0/PS_TOMEE.zip>
--
View this message in context:
http://openejb.979440.n4.nabble.com/Use-external-database-for-persistent-timer-service-tp4658321p4658403.html
Sent from the OpenEJB User mailing list archive at Nabble.com.