About a year ago, I implemented the EJB timer APIs on top of Quartz. I read the same comment that you did, so I submitted my implementation to JBoss as a patch. The link to this patch used to be at http://sourceforge.net/tracker/?func=detail&aid=881597&group_id=22866&atid=376687 but the page now says:
Artifact: Only Group Members Can View Private ArtifactTypes
So I thought maybe it had been moved to JIRA, but I can't find it there either. Last I knew, the patch was still open. Nobody appeared to do anything with it, or even comment on it. We've been using it in a JBoss cluster for about a year now and it works great. It's not a high-availability service; it runs on every node in the cluster. Quartz locks at the database level so the cluster node that ejbTimeout gets invoked on is pretty much random. This also means that there are no worries about what happens if one of your cluster nodes goes down.
Today, I tried ripping it out and using the JBoss 4 timer implementation and was shocked at what a joke the JBoss implementation is. It doesn't appear to work in a clustered environment at all. It doesn't even appear to work across server restarts! The classloading is broken too. The "info" parameter I pass to createTimer is an object whose class is inside my ear. When JBoss starts up, it generates a ClassNotFoundException because the scheduler service is trying to deserialize the object long before my ear is deployed.
I can repost my patch somewhere (maybe in JIRA) if anyone is interested.
Yes, repost it to jira please.
I am newbe to the scheduling. This example is very interesting and I was trying to figure out how you implemented it. Currently, I am trying to implement a Quartz timer using a session bean. The project.xml where is it placed. Can you give me a little more information about this patch.? Please???