i think so too *Romain Manni-Bucau* *Twitter: @rmannibucau* *Blog: http://rmannibucau.wordpress.com*
2012/8/23 Enrico Olivelli <[email protected]> > you added org.quartz.scheduler.jmx.**export=true > then Quartz published a MBean for each Scheduler (instanceName) > > I this is enough to cleanup "orphan" triggers > thanks > > > Il 22/08/2012 19:19, Romain Manni-Bucau ha scritto: > >> getting the HEAD you should get some info through JMX >> >> *Romain Manni-Bucau* >> *Twitter: @rmannibucau* >> *Blog: http://rmannibucau.wordpress.**com<http://rmannibucau.wordpress.com> >> * >> >> >> >> >> 2012/8/22 Romain Manni-Bucau <[email protected]> >> >> great to hear you like tomee :) >>> >>> if you want to write docs please do, we'll be happy to integrate them in >>> our doc pages :) >>> >>> the comman dis not bad and we have already some command pattern (for >>> tomee >>> maven plugin, karafee and ssh console), could even be done through JMX i >>> think, it is clearly something to think a bit more but can be a great >>> added >>> value >>> >>> *Romain Manni-Bucau* >>> *Twitter: @rmannibucau* >>> *Blog: http://rmannibucau.wordpress.**com<http://rmannibucau.wordpress.com> >>> * >>> >>> >>> >>> >>> 2012/8/22 Enrico Olivelli <[email protected]> >>> >>> I did a build on trunk and now undeploy of triggers works great >>>> >>>> I tested a scenario with two apps: >>>> - one uses the "default scheduler" >>>> - one uses a custom scheduler defined in WEB-INF/application.conf >>>> When I undeploy one app triggers are deleted from the "right" db and the >>>> other scheduler continues to work >>>> >>>> This feature was important because when you reload your app (during >>>> development) you would like >>>> - to rename your EJBTimered-bean >>>> - to change automatic timers defined with @Schedule (before this >>>> enhancement if you declared your timer to be executed once a minute, you >>>> could not change it without dropping/recreating quartz tables) >>>> >>>> For me it's all OK about Quartz now >>>> Some docs/examples have to be written because configuring a >>>> persistent/clustered Quartz is not very simple (I can write it) >>>> >>>> I'm coming from GF3, I think that now TomEE 1.1 is better than it !!! >>>> http://docs.oracle.com/cd/****E18930_01/html/821-2418/beahw.****html<http://docs.oracle.com/cd/**E18930_01/html/821-2418/beahw.**html> >>>> <http://docs.oracle.com/**cd/E18930_01/html/821-2418/**beahw.html<http://docs.oracle.com/cd/E18930_01/html/821-2418/beahw.html> >>>> > >>>> >>>> >>>> From the GF command line you can list timers >>>> http://docs.oracle.com/cd/****E19798-01/821-1751/giojd/****index.html<http://docs.oracle.com/cd/**E19798-01/821-1751/giojd/**index.html> >>>> <http://docs.oracle.**com/cd/E19798-01/821-1751/**giojd/index.html<http://docs.oracle.com/cd/E19798-01/821-1751/giojd/index.html> >>>> > >>>> >>>> maybe it would be usefull to have such command and a command to erase a >>>> trigger (because undeploy of the trigger failed and there is no way to >>>> drop >>>> it) >>>> but I really do not need these commands >>>> >>>> great job ! >>>> thank you >>>> - Enrico >>>> >>>> >>>> Il 21/08/2012 20:25, Romain Manni-Bucau ha scritto: >>>> >>>> unscheduled the trigger job however not sure it is the only cause. >>>>> >>>>> btw your lines are no more up to date i think so not sure of the cause, >>>>> >>>>> can you give it try with the up to date snapshot please? >>>>> >>>>> *Romain Manni-Bucau* >>>>> *Twitter: @rmannibucau* >>>>> *Blog: http://rmannibucau.wordpress.****com<http://rmannibucau.** >>>>> wordpress.com <http://rmannibucau.wordpress.com>> >>>>> >>>>> * >>>>> >>>>> >>>>> >>>>> >>>>> 2012/8/21 Enrico Olivelli <[email protected]> >>>>> >>>>> When I undeploy an app with an EJB timer, the trigger is not >>>>> removed, so >>>>> >>>>>> when quartz tries to reload the trigger from DB gets a NullPointer >>>>>> exception >>>>>> I suggest: >>>>>> - to remove triggers/jobdata from Quartz on "undeploy" >>>>>> - to handle this situation, maybe tring to remove the failing trigger >>>>>> (or >>>>>> give quartz a "noop" task?!?!?) >>>>>> >>>>>> >>>>>> rave: MisfireHandler: Error handling misfires: Couldn't retrieve >>>>>> trigger: >>>>>> null >>>>>> org.quartz.******JobPersistenceException: Couldn't retrieve trigger: >>>>>> null >>>>>> [See nested exception: java.lang.******NullPointerException] >>>>>> at org.quartz.impl.jdbcjobstore.******JobStoreSupport.**** >>>>>> retrieveTrigger(** >>>>>> JobStoreSupport.java:1524) >>>>>> at org.quartz.impl.jdbcjobstore.******JobStoreSupport.** >>>>>> recoverMisfiredJobs(******JobStoreSupport.java:968) >>>>>> at org.quartz.impl.jdbcjobstore.******JobStoreSupport.**** >>>>>> doRecoverMisfires( >>>>>> **JobStoreSupport.java:3187) >>>>>> at org.quartz.impl.jdbcjobstore.******JobStoreSupport$** >>>>>> MisfireHandler.manage(******JobStoreSupport.java:3947) >>>>>> at org.quartz.impl.jdbcjobstore.******JobStoreSupport$** >>>>>> MisfireHandler.run(******JobStoreSupport.java:3968) >>>>>> Caused by: java.lang.NullPointerException >>>>>> at org.apache.openejb.core.timer.******EjbTimerServiceImpl.** >>>>>> getDefaultScheduler(******EjbTimerServiceImpl.java:121) >>>>>> at org.apache.openejb.core.timer.******EjbTimerServiceImpl.**** >>>>>> readObject(** >>>>>> EjbTimerServiceImpl.java:117) >>>>>> at sun.reflect.******NativeMethodAccessorImpl.****** >>>>>> invoke0(Native >>>>>> Method) >>>>>> at sun.reflect.******NativeMethodAccessorImpl.******invoke(** >>>>>> NativeMethodAccessorImpl.java:******57) >>>>>> at sun.reflect.******DelegatingMethodAccessorImpl.*** >>>>>> ***invoke(** >>>>>> DelegatingMethodAccessorImpl.******java:43) >>>>>> >>>>>> >>>>>> >
