You can access to the TimerService API directly from your handler code. If you handle any
Throwable yourself, you should be able to cancel the current Timer and create a new one
with the parameters you want.
Manfred
From: Dru Devore [mailto:ddevore_at_duckhouse.us]
Sent: Thursday, July 24, 2008 9:17 PM
To: users_at_glassfish.dev.java.net
Subject: RE: Keeping a timer alive
I found it configurable through the admin but I can't seem to see anyway of doing it programmatically, if it is even possible.
I must thank you for all your help. This has been one of the most helpful threads I have ever put on an email list.
Thanks
-------- Original Message --------
Subject: RE: Keeping a timer alive
From: "Manfred Riem" <mriem_at_manorrock.org>
Date: Thu, July 24, 2008 10:24 pm
To: <users_at_glassfish.dev.java.net>
And did you find your answer?
From: Dru Devore [ <mailto:ddevore_at_duckhouse.us> mailto:ddevore_at_duckhouse.us]
Sent: Thursday, July 24, 2008 3:38 PM
To: <mailto:users_at_glassfish.dev.java.net> users_at_glassfish.dev.java.net
Subject: RE: Keeping a timer alive
Wait wait don't answer yet.. I did one more search after sending this message and I think I found the answer.
-------- Original Message --------
Subject: RE: Keeping a timer alive
From: "Dru Devore" <ddevore_at_duckhouse.us>
Date: Thu, July 24, 2008 5:36 pm
To: <mailto:users_at_glassfish.dev.java.net> users_at_glassfish.dev.java.net
I have been running some tests and have found that the server will expung the timer "EJB5119 Expunging timer" if it fails two times and the first time it fails it turns right back around and tries again, not on the schedule. This application queries a database so if it errors out it will not be fixed before it will hit it the second time and fail for good. Is there a way I can configure this action. Like tell it to attempt more times and only on the scheduled times. Or anything that will allow me to check resources and recover if possible?
I must say you are being a BIG help too bad we didn't talk before I implemented the other "solution".
-------- Original Message --------
Subject: RE: Keeping a timer alive
From: "Manfred Riem" <mriem_at_manorrock.org>
Date: Thu, July 24, 2008 4:56 pm
To: < <mailto:users_at_glassfish.dev.java> users_at_glassfish.dev.java.net>
This is actually part of the EJB spec. And it is implemented ;)
And yes it will retrigger.
Manfred
From: Dru Devore [ <mailto:ddevore_at_duckhouse.us> mailto:ddevore_at_duckhouse.us]
Sent: Thursday, July 24, 2008 2:15 PM
To: <mailto:users_at_glassfish.dev.java.net> users_at_glassfish.dev.java.net
Subject: RE: Keeping a timer alive
Oh my...that was so much easier than I thought. With little work and it just works.
I am reading elsewhere that the timing in EJB 3 is still not implemented which, if I remember correctly, is why I didn't do it this way from the start. But if you use this example:
<
http://www.diotalevi.com/weblog/2006/10/30/java-ee-in-the-trenches-how-to-use-the-timerservice-and-write-a-timer-session-bean/>
http://www.diotalevi.com/weblog/2006/10/30/java-ee-in-the-trenches-how-to-use-the-timerservice-and-write-a-timer-session-bean/
Everything for what I need is right there.
One last question though. If something goes horribly wrong with an execution of the task and it dies, runtime exception or something, am I right in saying that it will pickup with the next one? (I am going to be testing it if you don't know for sure)
Thanks for the suggestion.
-------- Original Message --------
Subject: RE: Keeping a timer alive
From: "Manfred Riem" <mriem_at_manorrock.org>
Date: Thu, July 24, 2008 12:48 pm
To: < <mailto:users_at_glassfish.dev.java> users_at_glassfish.dev.java.net>
Hi Dru,
While it might seem to be a lot of overhead it is J2EE standard. Spawning a thread
in a servlet is not. The question is if you want to deal with race conditions that are
associated with threading.
Manfred
From: Dru Devore [ <mailto:ddevore_at_duckhouse.us> mailto:ddevore_at_duckhouse.us]
Sent: Thursday, July 24, 2008 10:31 AM
To: users_at_glassfish.dev.java.net
Subject: RE: Keeping a timer alive
I am sure I can make this work though all I really need is a a timer that kicks off a method every X seconds and is managed by someone. Using the servlet I simply had a thread that would sleep for X seconds but I didn't have any management, which could be done if I need to.
Looking at the EJB timer service it looks like a lot of overhead and work to do a run this every X seconds. Is there a solution I am missing or do I need to create a monitor thread for my run every x seconds thread?
-------- Original Message --------
Subject: RE: Keeping a timer alive
From: "Manfred Riem" <mriem_at_manorrock.org>
Date: Thu, July 24, 2008 10:25 am
To: <users_at_glassfish.dev.java.net>
The following URLs come to mind:
<
http://java-x.blogspot.com/2007/01/ejb-3-timer-service.html>
http://java-x.blogspot.com/2007/01/ejb-3-timer-service.html
<
http://docs.sun.com/app/docs/doc/820-4496/beahw?a=view>
http://docs.sun.com/app/docs/doc/820-4496/beahw?a=view
<
http://www.diotalevi.com/weblog/2006/10/30/java-ee-in-the-trenches-how-to-use-the-timerservice-and-write-a-timer-session-bean/>
http://www.diotalevi.com/weblog/2006/10/30/java-ee-in-the-trenches-how-to-use-the-timerservice-and-write-a-timer-session-bean/
<
http://java.sun.com/javaee/5/docs/tutorial/doc/bnboy.html>
http://java.sun.com/javaee/5/docs/tutorial/doc/bnboy.html
Hope this helps,
Manfred
From: Dru Devore [ <mailto:ddevore_at_duckhouse.us> mailto:ddevore_at_duckhouse.us]
Sent: Thursday, July 24, 2008 8:18 AM
To: users_at_glassfish.dev.java.net
Subject: RE: Keeping a timer alive
When it was written I am sure there was but I can't think of any presently.
I am looking for examples/tutorials do you have any good ones?
-------- Original Message --------
Subject: RE: Keeping a timer alive
From: "Manfred Riem" <mriem_at_manorrock.org>
Date: Thu, July 24, 2008 9:55 am
To: <users_at_glassfish.dev.java.net>
Any reason why you are not EJB timer service?
From: Dru Devore [ <mailto:ddevore_at_duckhouse.us> mailto:ddevore_at_duckhouse.us]
Sent: Thursday, July 24, 2008 7:52 AM
To: glassfish_user
Subject: Keeping a timer alive
I have a timer that is running in a servlet in Glassfish and I encountered a problem with it last night, the timer thread stopped. I need a way to ensure the timer is running and if it does stop, to restart it. Is there a way to have the server monitor this or am I hoping for too much?
--------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscribe_at_glassfish.dev.java.net For additional commands, e-mail: users-help_at_glassfish.dev.java.net
--------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscribe_at_glassfish.dev.java.net For additional commands, e-mail: users-help_at_glassfish.dev.java.net
--------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscribe_at_glassfish.dev.java.net For additional commands, e-mail: users-help_at_glassfish.dev.java.net
--------------------------------------------------------------------- To unsubscribe, e-mail: <mailto:users-unsubscribe_at_glassfish.dev.java.net> users-unsubscribe_at_glassfish.dev.java.net For additional commands, e-mail: <mailto:users-help_at_glassfish.dev.java.net> users-help_at_glassfish.dev.java.net
--------------------------------------------------------------------- To unsubscribe, e-mail: <mailto:users-unsubscribe_at_glassfish.dev.java.net> users-unsubscribe_at_glassfish.dev.java.net For additional commands, e-mail: <mailto:users-help_at_glassfish.dev.java.net> users-help_at_glassfish.dev.java.net
--------------------------------------------------------------------- To unsubscribe, e-mail: <mailto:users-unsubscribe_at_glassfish.dev.java.net> users-unsubscribe_at_glassfish.dev.java.net For additional commands, e-mail: <mailto:users-help_at_glassfish.dev.java.net> users-help_at_glassfish.dev.java.net
--------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscribe_at_glassfish.dev.java.net For additional commands, e-mail: users-help_at_glassfish.dev.java.net