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

From the GF  command line you can list timers
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*




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)


Reply via email to