I am sorry, 1.6.0 is in production here. :-(
[] Leo On Mon, Sep 28, 2015 at 4:38 PM, Romain Manni-Bucau <[email protected]> wrote: > Hi Leo, > > can you quickly check it on 1.7.2 before digging into 1.6.0 bugs? I know we > enhanced a bit this area (singleton) so can be fixed. > > > Romain Manni-Bucau > @rmannibucau <https://twitter.com/rmannibucau> | Blog > <http://rmannibucau.wordpress.com> | Github < > https://github.com/rmannibucau> | > LinkedIn <https://www.linkedin.com/in/rmannibucau> | Tomitriber > <http://www.tomitribe.com> > > 2015-09-28 12:16 GMT-07:00 Leonardo K. Shikida <[email protected]>: > > > Hi > > > > I have a singleton that initialized my own scheduler. > > > > Please don't ask me why do I need another schedule, since TomEE already > > provides one by default. Actually, I need this because since the JavaEE > > spec is not clear about how the timers must be hadled when they're > > persistent, I had to do this. But anyway. > > > > > > @Startup > > @Singleton > > @DependsOn("SystemInitializerEJB") > > public class TimerEJB{ > > > > private Scheduler scheduler; > > > > private static Logger log = Logger.getLogger(TimerEJB.class); > > > > @PostConstruct > > public void initialize() throws SchedulerException{ > > log.info("Initialize "+this); > > StdSchedulerFactory factory = new StdSchedulerFactory(); > > > > > > > factory.initialize(this.getClass().getResourceAsStream("my.quartz.properties")); > > scheduler = factory.getScheduler(); > > scheduler.start(); > > log.info("scheduler > "+scheduler.getMetaData().getSchedulerName()); > > } > > > > > > SOMETIMES... > > > > it seems to be initialized twice, because I get this message > > > > INFO: Started Ejb(deployment-id=SystemInitializerEJB, > > ejb-name=SystemInitializerEJB, container=Default Singleton Container) > > > > 2015-09-28 17:40:02,806 INFO [TimerEJB] Initialize > > com.company.software.tomee.timer.TimerEJB@4d8818cd > > 2015-09-28 17:40:02,807 INFO [TimerEJB] Initialize > > com.company.software.tomee.timer.TimerEJB@7e2715a4 Sep 28, 2015 5:40:02 > PM > > org.quartz.impl.StdSchedulerFactory instantiate > > INFO: Using default implementation for ThreadExecutor > > Sep 28, 2015 5:40:02 PM org.quartz.impl.StdSchedulerFactory instantiate > > INFO: Using default implementation for ThreadExecutor > > Sep 28, 2015 5:40:02 PM org.quartz.core.SchedulerSignalerImpl <init> > > INFO: Initialized Scheduler Signaller of type: class > > org.quartz.core.SchedulerSignalerImpl > > Sep 28, 2015 5:40:02 PM org.quartz.core.QuartzScheduler <init> > > INFO: Quartz Scheduler v.2.2.0 created. > > Sep 28, 2015 5:40:02 PM org.quartz.simpl.RAMJobStore initialize > > INFO: RAMJobStore initialized. > > Sep 28, 2015 5:40:02 PM org.quartz.core.QuartzScheduler initialize > > INFO: Scheduler meta-data: Quartz Scheduler (v2.2.0) > > 'MyClusteredScheduler2' with instanceId 'NON_CLUSTERED' > > Scheduler class: 'org.quartz.core.QuartzScheduler' - running locally. > > NOT STARTED. > > Currently in standby mode. > > Number of jobs executed: 0 > > Using thread pool 'org.quartz.simpl.SimpleThreadPool' - with 30 > threads. > > Using job-store 'org.quartz.simpl.RAMJobStore' - which does not support > > persistence. and is not clustered. > > > > Sep 28, 2015 5:40:02 PM org.quartz.impl.StdSchedulerFactory instantiate > > INFO: Quartz scheduler 'MyClusteredScheduler2' initialized from an > > externally opened InputStream. > > Sep 28, 2015 5:40:02 PM org.quartz.impl.StdSchedulerFactory instantiate > > INFO: Quartz scheduler version: 2.2.0 > > Sep 28, 2015 5:40:02 PM org.quartz.core.QuartzScheduler start > > INFO: Scheduler MyClusteredScheduler2_$_NON_CLUSTERED started. > > > > 2015-09-28 17:40:02,847 INFO [TimerEJB] scheduler MyClusteredScheduler2 > > Sep 28, 2015 5:40:02 PM org.apache.openejb.assembler.classic.Assembler > > startEjbs > > INFO: Started Ejb(deployment-id=myTimerEJB, ejb-name=myTimerEJB, > > container=Default Singleton Container) > > Sep 28, 2015 5:40:02 PM org.quartz.core.SchedulerSignalerImpl <init> > > INFO: Initialized Scheduler Signaller of type: class > > org.quartz.core.SchedulerSignalerImpl > > Sep 28, 2015 5:40:02 PM org.quartz.core.QuartzScheduler <init> > > INFO: Quartz Scheduler v.2.2.0 created. > > Sep 28, 2015 5:40:02 PM org.quartz.simpl.RAMJobStore initialize > > INFO: RAMJobStore initialized. > > Sep 28, 2015 5:40:02 PM org.quartz.core.QuartzScheduler initialize > > INFO: Scheduler meta-data: Quartz Scheduler (v2.2.0) > > 'MyClusteredScheduler2' with instanceId 'NON_CLUSTERED' > > Scheduler class: 'org.quartz.core.QuartzScheduler' - running locally. > > NOT STARTED. > > Currently in standby mode. > > Number of jobs executed: 0 > > Using thread pool 'org.quartz.simpl.SimpleThreadPool' - with 30 > threads. > > Using job-store 'org.quartz.simpl.RAMJobStore' - which does not support > > persistence. and is not clustered. > > > > Sep 28, 2015 5:40:02 PM org.quartz.impl.StdSchedulerFactory instantiate > > INFO: Quartz scheduler 'MyClusteredScheduler2' initialized from an > > externally opened InputStream. > > Sep 28, 2015 5:40:02 PM org.quartz.impl.StdSchedulerFactory instantiate > > INFO: Quartz scheduler version: 2.2.0 > > Sep 28, 2015 5:40:02 PM org.quartz.core.QuartzScheduler shutdown > > INFO: Scheduler MyClusteredScheduler2_$_NON_CLUSTERED shutting down. > > Sep 28, 2015 5:40:02 PM org.quartz.core.QuartzScheduler standby > > INFO: Scheduler MyClusteredScheduler2_$_NON_CLUSTERED paused. > > Sep 28, 2015 5:40:02 PM org.quartz.core.QuartzScheduler shutdown > > INFO: Scheduler MyClusteredScheduler2_$_NON_CLUSTERED shutdown complete. > > Sep 28, 2015 5:40:02 PM > > org.apache.openejb.core.transaction.EjbTransactionUtil > > handleSystemException > > SEVERE: EjbTransactionUtil.handleSystemException: Scheduler with name > > 'MyClusteredScheduler2' already exists. > > org.quartz.SchedulerException: Scheduler with name > 'MyClusteredScheduler2' > > already exists. > > at > > org.quartz.impl.SchedulerRepository.bind(SchedulerRepository.java:80) > > at > > > > > org.quartz.impl.StdSchedulerFactory.instantiate(StdSchedulerFactory.java:1352) > > at > > > > > org.quartz.impl.StdSchedulerFactory.getScheduler(StdSchedulerFactory.java:1517) > > at > > com.company.software.tomee.timer.TimerEJB.initialize(TimerEJB.java:71) > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > at > > > > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > > at > > > > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > > at java.lang.reflect.Method.invoke(Method.java:606) > > at > > > > > org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:182) > > at > > > > > org.apache.openejb.core.interceptor.ReflectionInvocationContext$LifecycleInvocation.invoke(ReflectionInvocationContext.java:214) > > at > > > > > org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:164) > > at > > > > > org.apache.openejb.monitoring.StatsInterceptor.record(StatsInterceptor.java:180) > > at > > > > > org.apache.openejb.monitoring.StatsInterceptor.PostConstruct(StatsInterceptor.java:108) > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > at > > > > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > > at > > > > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > > at java.lang.reflect.Method.invoke(Method.java:606) > > at > > > > > org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:182) > > at > > > > > org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:164) > > at > > > > > org.apache.openejb.core.interceptor.InterceptorStack.invoke(InterceptorStack.java:80) > > at org.apache.openejb.BeanContext.newInstance(BeanContext.java:1565) > > at > > > > > org.apache.openejb.core.singleton.SingletonInstanceManager.createInstance(SingletonInstanceManager.java:175) > > at > > > > > org.apache.openejb.core.singleton.SingletonInstanceManager.access$100(SingletonInstanceManager.java:67) > > at > > > > > org.apache.openejb.core.singleton.SingletonInstanceManager$1.call(SingletonInstanceManager.java:116) > > at > > > > > org.apache.openejb.core.singleton.SingletonInstanceManager$1.call(SingletonInstanceManager.java:114) > > at java.util.concurrent.FutureTask.run(FutureTask.java:262) > > at > > > > > org.apache.openejb.core.singleton.SingletonInstanceManager.getInstance(SingletonInstanceManager.java:125) > > at > > > > > org.apache.openejb.core.singleton.SingletonInstanceManager.initialize(SingletonInstanceManager.java:91) > > at > > > > > org.apache.openejb.core.singleton.SingletonInstanceManager.access$400(SingletonInstanceManager.java:67) > > at > > > > > org.apache.openejb.core.singleton.SingletonInstanceManager$Data.initialize(SingletonInstanceManager.java:367) > > at > > > > > org.apache.openejb.core.singleton.SingletonInstanceManager.initializeDependencies(SingletonInstanceManager.java:166) > > at > > > > > org.apache.openejb.core.singleton.SingletonInstanceManager.createInstance(SingletonInstanceManager.java:173) > > at > > > > > org.apache.openejb.core.singleton.SingletonInstanceManager.access$100(SingletonInstanceManager.java:67) > > at > > > > > org.apache.openejb.core.singleton.SingletonInstanceManager$1.call(SingletonInstanceManager.java:116) > > at > > > > > org.apache.openejb.core.singleton.SingletonInstanceManager$1.call(SingletonInstanceManager.java:114) > > at java.util.concurrent.FutureTask.run(FutureTask.java:262) > > at > > > > > org.apache.openejb.core.singleton.SingletonInstanceManager.getInstance(SingletonInstanceManager.java:125) > > at > > > > > org.apache.openejb.core.singleton.SingletonInstanceManager.initialize(SingletonInstanceManager.java:91) > > at > > > > > org.apache.openejb.core.singleton.SingletonInstanceManager.access$400(SingletonInstanceManager.java:67) > > at > > > > > org.apache.openejb.core.singleton.SingletonInstanceManager$Data.initialize(SingletonInstanceManager.java:367) > > at > > > > > org.apache.openejb.core.singleton.SingletonInstanceManager.initializeDependencies(SingletonInstanceManager.java:166) > > at > > > > > org.apache.openejb.core.singleton.SingletonInstanceManager.createInstance(SingletonInstanceManager.java:173) > > at > > > > > org.apache.openejb.core.singleton.SingletonInstanceManager.access$100(SingletonInstanceManager.java:67) > > at > > > > > org.apache.openejb.core.singleton.SingletonInstanceManager$1.call(SingletonInstanceManager.java:116) > > at > > > > > org.apache.openejb.core.singleton.SingletonInstanceManager$1.call(SingletonInstanceManager.java:114) > > at java.util.concurrent.FutureTask.run(FutureTask.java:262) > > at > > > > > org.apache.openejb.core.singleton.SingletonInstanceManager.getInstance(SingletonInstanceManager.java:125) > > at > > > > > org.apache.openejb.core.singleton.SingletonInstanceManager.initialize(SingletonInstanceManager.java:91) > > at > > > > > org.apache.openejb.core.singleton.SingletonInstanceManager.access$400(SingletonInstanceManager.java:67) > > at > > > > > org.apache.openejb.core.singleton.SingletonInstanceManager$Data.initialize(SingletonInstanceManager.java:367) > > at > > > > > org.apache.openejb.core.singleton.SingletonInstanceManager.initializeDependencies(SingletonInstanceManager.java:166) > > at > > > > > org.apache.openejb.core.singleton.SingletonInstanceManager.createInstance(SingletonInstanceManager.java:173) > > at > > > > > org.apache.openejb.core.singleton.SingletonInstanceManager.access$100(SingletonInstanceManager.java:67) > > at > > > > > org.apache.openejb.core.singleton.SingletonInstanceManager$1.call(SingletonInstanceManager.java:116) > > at > > > > > org.apache.openejb.core.singleton.SingletonInstanceManager$1.call(SingletonInstanceManager.java:114) > > at java.util.concurrent.FutureTask.run(FutureTask.java:262) > > at > > > > > org.apache.openejb.core.singleton.SingletonInstanceManager.getInstance(SingletonInstanceManager.java:125) > > at > > > > > org.apache.openejb.core.singleton.SingletonInstanceManager.initialize(SingletonInstanceManager.java:91) > > at > > > > > org.apache.openejb.core.singleton.SingletonInstanceManager.access$400(SingletonInstanceManager.java:67) > > at > > > > > org.apache.openejb.core.singleton.SingletonInstanceManager$Data.initialize(SingletonInstanceManager.java:367) > > at > > > > > org.apache.openejb.core.singleton.SingletonInstanceManager.initializeDependencies(SingletonInstanceManager.java:166) > > at > > > > > org.apache.openejb.core.singleton.SingletonInstanceManager.createInstance(SingletonInstanceManager.java:173) > > at > > > > > org.apache.openejb.core.singleton.SingletonInstanceManager.access$100(SingletonInstanceManager.java:67) > > at > > > > > org.apache.openejb.core.singleton.SingletonInstanceManager$1.call(SingletonInstanceManager.java:116) > > at > > > > > org.apache.openejb.core.singleton.SingletonInstanceManager$1.call(SingletonInstanceManager.java:114) > > at java.util.concurrent.FutureTask.run(FutureTask.java:262) > > at > > > > > org.apache.openejb.core.singleton.SingletonInstanceManager.getInstance(SingletonInstanceManager.java:125) > > at > > > > > org.apache.openejb.core.singleton.SingletonInstanceManager.initialize(SingletonInstanceManager.java:91) > > at > > > > > org.apache.openejb.core.singleton.SingletonInstanceManager.access$400(SingletonInstanceManager.java:67) > > at > > > > > org.apache.openejb.core.singleton.SingletonInstanceManager$Data.initialize(SingletonInstanceManager.java:367) > > at > > > > > org.apache.openejb.core.singleton.SingletonInstanceManager.initializeDependencies(SingletonInstanceManager.java:166) > > at > > > > > org.apache.openejb.core.singleton.SingletonInstanceManager.createInstance(SingletonInstanceManager.java:173) > > at > > > > > org.apache.openejb.core.singleton.SingletonInstanceManager.access$100(SingletonInstanceManager.java:67) > > at > > > > > org.apache.openejb.core.singleton.SingletonInstanceManager$1.call(SingletonInstanceManager.java:116) > > at > > > > > org.apache.openejb.core.singleton.SingletonInstanceManager$1.call(SingletonInstanceManager.java:114) > > at java.util.concurrent.FutureTask.run(FutureTask.java:262) > > at > > > > > org.apache.openejb.core.singleton.SingletonInstanceManager.getInstance(SingletonInstanceManager.java:125) > > at > > > > > org.apache.openejb.core.singleton.SingletonInstanceManager.initialize(SingletonInstanceManager.java:91) > > at > > > > > org.apache.openejb.core.singleton.SingletonInstanceManager.access$400(SingletonInstanceManager.java:67) > > at > > > > > org.apache.openejb.core.singleton.SingletonInstanceManager$Data.initialize(SingletonInstanceManager.java:367) > > (...) > > > > I can understand it seems to be like some dependency cycle, but I need to > > know why it does not happen all the time and how to avoid this sort of > > thing, because it really breaks the app. > > > > Any help is welcome. thanks > > > > > > [] > > > > Leo > > >
