tomee-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Romain Manni-Bucau <rmannibu...@gmail.com>
Subject Re: Persistent timers not working in TomEE?
Date Fri, 10 Mar 2017 12:04:40 GMT
I d do yes to be sure.

Le 10 mars 2017 12:54, "Bodo Pfelzer" <bodo.pfelzer@business-logics.de> a
écrit :

> I compared the sources of 1.7.4 and 7.0.2 regarding the packae
> org.apache.openejb.core.timer. From that I did not expect big
> differences. But I could give it a try. I think I should try the variant
> with quartz connected to a database?
>
> On 10.03.2017 12:45, Romain Manni-Bucau wrote:
> > I see,
> >
> > did you try on tomee 7? recall we fixed some things in that are, not sure
> > it fixes this exact case but 1.7 is quite old on that topic
> >
> >
> > Romain Manni-Bucau
> > @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> > <https://blog-rmannibucau.rhcloud.com> | Old Blog
> > <http://rmannibucau.wordpress.com> | Github <https://github.com/
> rmannibucau> |
> > LinkedIn <https://www.linkedin.com/in/rmannibucau> | JavaEE Factory
> > <https://javaeefactory-rmannibucau.rhcloud.com>
> >
> > 2017-03-10 12:36 GMT+01:00 Bodo Pfelzer <bodo.pfelzer@business-logics.de
> >:
> >
> >> In my EJB I use timerService.createTimer() to schedule a task for next
> >> month. And this task should be executed regardless whether the server is
> >> restarted or not in the meantime.
> >>
> >> On 10.03.2017 12:29, Romain Manni-Bucau wrote:
> >>> the timerstore need is mainly to handle the transactionality AFAIK and
> >>> doesnt assume anything about quartz or not. We can surely drop a part
> >> today.
> >>> Not sure what you mean by "persistent quartz timer are wanted", have to
> >>> admit I almost always use not persistent timers.
> >>>
> >>> Do you try to solve a particular issue?
> >>>
> >>>
> >>> Romain Manni-Bucau
> >>> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> >>> <https://blog-rmannibucau.rhcloud.com> | Old Blog
> >>> <http://rmannibucau.wordpress.com> | Github <https://github.com/
> >> rmannibucau> |
> >>> LinkedIn <https://www.linkedin.com/in/rmannibucau> | JavaEE Factory
> >>> <https://javaeefactory-rmannibucau.rhcloud.com>
> >>>
> >>> 2017-03-10 12:17 GMT+01:00 Bodo Pfelzer <bodo.pfelzer@business-logics.
> de
> >>> :
> >>>
> >>>> Hi Romain,
> >>>>
> >>>> I do not really understand the interplay between quartz, TimerStore
> and
> >>>> EjbTimerServiceImpl. As far as I understand, EjbTimerServiceImpl
> writes
> >> all
> >>>> Timers into quartz and TimerStore. TimerStore contains the Timers that
> >> are
> >>>> visible to the EJB and quartz contains the Timers that are actually
> >>>> executed. Reading https://issues.apache.org/jira/browse/OPENEJB-1867
> I
> >>>> assume, that using persistent quartz timers is allowed and even wanted
> >> in
> >>>> TomEE, but the persisted timers are neglected by TimerStore during
> >> startup.
> >>>> My ugly patch (see attached file) copies the Timers persisted by
> quartz
> >>>> into TimerStore.
> >>>>
> >>>> But I do not understand the need for the TimerStore itself. In my
> >> opinion
> >>>> one could avoid the duplicate storage of Timers and retrieve
> everything
> >>>> from quartz itself, especially when using different GroupNames for
> >>>> different deployments. Is there any reason for that? Otherwise I would
> >> like
> >>>> to adjust EjbTimerServiceImpl in a way that does not need a
> TimerStore,
> >> or
> >>>> at least try a "QuartzTimerStore". But modifiying the group name would
> >> be
> >>>> nice for that.
> >>>>
> >>>> Bodo
> >>>>
> >>>> On 09.03.2017 15:00, Romain Manni-Bucau wrote:
> >>>>
> >>>> Hi
> >>>>
> >>>> needs a custom timerstore I think (seehttps://issues.apache.org/
> >> jira/browse/TOMEE-785)
> >>>>
> >>>> Romain Manni-Bucau
> >>>> @rmannibucau <https://twitter.com/rmannibucau> <https://twitter.com/
> >> rmannibucau> |  Blog<https://blog-rmannibucau.rhcloud.com> <
> >> https://blog-rmannibucau.rhcloud.com> | Old Blog<http://rmannibucau.
> >> wordpress.com> <http://rmannibucau.wordpress.com> | Github <
> >> https://github.com/rmannibucau> <https://github.com/rmannibucau> |
> >>>> LinkedIn <https://www.linkedin.com/in/rmannibucau> <
> >> https://www.linkedin.com/in/rmannibucau> | JavaEE Factory<
> >> https://javaeefactory-rmannibucau.rhcloud.com> <https://javaeefactory-
> >> rmannibucau.rhcloud.com>
> >>>> 2017-03-09 14:44 GMT+01:00 Bodo Pfelzer <bodo.pfelzer@business-logics.
> >> de> <bodo.pfelzer@business-logics.de>:
> >>>>
> >>>> I tried to configure persistent timers in TomEE-1.7.4 by adding:
> >>>>
> >>>> org.apache.openejb.quartz.jobStore.class
> >>>> org.apache.openejb.quartz.impl.jdbcjobstore.JobStoreCMT
> >>>> org.apache.openejb.quartz.jobStore.driverDelegateClass
> >>>> org.apache.openejb.quartz.impl.jdbcjobstore.StdJDBCDelegate
> >>>> org.apache.openejb.quartz.jobStore.dataSource
> >>  ActiveDataSource
> >>>> org.apache.openejb.quartz.jobStore.nonManagedTXDataSource
> >>>> NoTxActiveDataSource
> >>>> org.apache.openejb.quartz.dataSource.ActiveDataSource.jndiURL
> >>>> openejb:Resource/ActiveDataSource
> >>>> org.apache.openejb.quartz.dataSource.NoTxActiveDataSource.jndiURL
> >>>> openejb:Resource/NoTxActiveDataSource
> >>>>
> >>>> to my system.properties. And yes, my EJB method annotated with
> @Timeout
> >>>> gets called, even if TomEE was restarted during the creation of the
> >>>> timer and its expiration. But two things do not work as expected:
> >>>>
> >>>> timerServer.getTimers() returns an empty collection after restart
> though
> >>>> active timers exist. And perhaps even worse: Old timers get
> overwritten
> >>>> by new ones, since MemoryTimerStore.counter always starts from zero
> >>>> after restart.
> >>>>
> >>>> Am I missing something in my configuration? How could I replace
> >>>> MemoryTimerStore?
> >>>>
> >>>> Best regards,
> >>>> Bodo
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message