did  https://issues.apache.org/jira/browse/OPENEJB-1867

does it help?

- Romain


2012/7/15 Enrico Olivelli <[email protected]>

> Hi,
> I am wondering if is it possibile to use EjbTimer to run in a cluster
> environment in a way that only one JVM runs a ejbTimeout at scheduled time
> I see you are using Quartz,
> I'm using Quartz since years with JdbcJobStore, it is possible to synch
> timers in diffferent JVMs
> http://terracotta.org/**documentation/quartz-**
> scheduler/installation-guide<http://terracotta.org/documentation/quartz-scheduler/installation-guide>
>
> I think that the real problem of OpenEJB is that there is now way to
> deploy the same app in more JVMs in one administration action, so there is
> no way to "synch" timers because there is no cluster management node (o
> something like that)
>
> But assuming that we deploy exactly the same App in two (o more) JVMs
> would it not to be possibile to configure Quartz inside
> org.apache.openejb.core.timer.**EjbTimerServiceImpl.java to use the same
> JdbcStore ?
>
> Some configuration could be
> <Container id="Default EjbTimer Service" type="TIMERSERVICE">
> JobStoreType:  jdbc
> DataSource: MyQuartzDataSource
> LocalSchedulerId: instance1scheduler
> </Container>
>
> In GF3.1.2 if you want clustered timers you have to configure a global
> shared DataSource for the EJBTimerService
>
> The only workaround for me is to:
> - use an external ActiveMQ
> - use ejbTimer to put at scheduled a message on a queue  (with a system
> property I let only ejbtimeout to something in one jvm)
> - let a MDB take a message from that queue (only one mdb in the cluter
> will take that message)
> it is a very poor solution, there is not way to guarantee that this fake
> ebjtTimeout whith MDB is not executed twice in parallel
>
> thanks
> Enrico
>
>
>
>

Reply via email to