As of Win2000 (not sure if this existed in WinNT) you can configure a
service to attempt to recover if it dies. This is fairly flexible in that
you can cause it to attempt up to three restarts (after a delay period),
execute a file on failure, reboot the system, etc.
We might as well use the facilities the OS provides instead of duplicating
this inside the service.
Marc Saegesser
> -----Original Message-----
> From: Schreibman, David [mailto:[EMAIL PROTECTED]]
> Sent: Thursday, August 30, 2001 6:06 PM
> To: '[EMAIL PROTECTED]'
> Subject: RE: PATCH: jk_nt_service can't automatically be restarted by
> Windows Service Control Manager upon crash
>
>
> If you really want the service code to be aggressive about restarting
> Tomcat, I would suggest just calling start_tomcat() again. This
> would avoid
> any dependency on the Service Control Manager's reaction to "ungraceful"
> exits. In fact, I've never seen any documentation from Microsoft
> about such
> restarts. The only automatic service startups that I know about are upon
> booting. Can you send a reference to MS documentation about this?
>
> In addition, I don't think you would want this to just keep restarting
> indefinitely. If the vm is crashing a lot then there's something going on
> that needs to be looked at. Such restart functionality should be
> limited to
> a certain number of retries. Continuing to run the vm might
> interfere with
> other software running on the same machine. Especially if the vm is
> crashing due to some unusual resource consumption.
>
> Just my 2 bits worth.
>
> -David
>
>
> -----Original Message-----
> From: Dave Ringoen [mailto:[EMAIL PROTECTED]]
> Sent: Thursday, August 30, 2001 2:55 PM
> To: '[EMAIL PROTECTED]'
> Cc: Chien-Ming Huang; Brian Enright; Rob Webb; Patti Vrobel; Steven
> Velez
> Subject: PATCH: jk_nt_service can't automatically be restarted by
> Windows Service Control Manager upon crash
>
>
> We're using Tomcat at our company with considerable success, but
> discovered
> that if java.exe crashes for some reason, the Tomcat service won't restart
> automatically.
>
> I diagnosed the problem and came up with this discovery and a
> proposed fix.
>
> jk_nt_service.exe exits too gracefully if the java.exe process dies,
> notifying the Service Control Manager that it is shutting down.
> When Service
> Control Manager receives the shutdown message, it does not restart the
> service. It assumes that the service was supposed to be shut down.
>
> This patch makes jk_nt_service exit more abruptly without notifying SCM.
> With this patch, SCM will correctly initiate a restart of the Tomcat
> service.
>
> I couldn't file this in Bugzilla because Bugzilla was down.
>
> Thanks for your consideration on this patch. I'm very impressed with the
> Tomcat development approach and process.
>
> Dave Ringoen
> Alventive, Inc.
>
>
> cvs diff -u jk_nt_service.c (in directory
> C:\Temp\tomcatsrcnightly\jakarta-tomcat\src\native\mod_jk\nt_service)
> Index: jk_nt_service.c
> ===================================================================
> RCS file:
> /home/cvspublic/jakarta-tomcat/src/native/mod_jk/nt_service/jk_nt_
> service.c,
> v
> retrieving revision 1.3
> diff -u -r1.3 jk_nt_service.c
> --- jk_nt_service.c 2001/04/24 08:49:46 1.3
> +++ jk_nt_service.c 2001/08/30 18:05:02
> @@ -535,6 +535,11 @@
> /*
> * Tomcat died !!!
> */
> + CloseHandle(hServerStopEvent);
> + CloseHandle(hTomcat);
> + exit(0); // exit ungracefully so
> + // Service Control Manager
> + // will attempt a restart.
> break;
> default:
> /*