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 > > > >
