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 11:45:35 GMT
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