tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Wade Chandler <wchand...@redesetgrow.com>
Subject Re: Session restart replication when using jsvc
Date Wed, 29 Dec 2004 20:27:30 GMT
Trond G. Ziarkowski wrote:
> Hi Wolfgang!
> 
>> by using signal 9 you give Tomcat no chance to perform any further 
>> action. Maybe you omit -9 from your kill command.
> 
> 
> Thanks for the tip. Tried it, but same results.
> 
> Trond
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: tomcat-user-help@jakarta.apache.org
> 
> 
> 

Hmmm.  Here is the source code of the jsvc-unix.c which is called upon a 
signal.

static void handler(int sig) {
     switch (sig) {
         case SIGTERM: {
             log_debug("Caught SIGTERM: Scheduling a shutdown");
             if (stopping==true) {
                 log_error("Shutdown or reload already scheduled");
             } else {
                 stopping=true;
             }
             if (handler_trm!=NULL) (*handler_trm)(sig);
             break;
         }

         case SIGINT: {
             log_debug("Caught SIGINT: Scheduling a shutdown");
             if (stopping==true) {
                 log_error("Shutdown or reload already scheduled");
             } else {
                 stopping=true;
             }
             if (handler_int!=NULL) (*handler_int)(sig);
             break;
         }

         case SIGHUP: {
             log_debug("Caught SIGHUP: Scheduling a reload");
             if (stopping==true) {
                 log_error("Shutdown or reload already scheduled");
             } else {
                 stopping=true;
                 doreload=true;
             }
             if (handler_hup!=NULL) (*handler_hup)(sig);
             break;
         }

         default: {
             log_debug("Caught unknown signal %d",sig);
             break;
         }
     }
}

So, from the text I would assume SIGINT and SIGTERM should perform the 
same shutdown behavior, but you can try to use

kill -s SIGTERM pid

or

kill -s SIGINT pid

and see what results you get.  If it isn't behaving correctly then you 
need to maybe

1) You might want to make sure you don't have the serialization of 
session turned off some how...is it behaving correctly if you don't use 
jsvc?

2) You are using the right tomcat class to start it up...surely or you 
should get an error....I would imagine anyways....so .... maybe forget 
this altogether.

3) You might want to search the tomcat source code for the Daemon 
implementer class and locate the method stop to see if you can figure 
out if it is being called.  It should be I would imagine since tomcat is 
stopping, but if it is not, then I guess it's a Daemon/jsvc error and 
you need to talk to that list. On another note same subject.....You can 
look in the daemon src at the file <>/src/native/unix/native/java.c and 
you could put some code into the java_stop function to see if you can 
figure out if the function is going to call (through jni) the Daemon 
stop method correctly or not.  REMEMBER: The Daemon startup code does 
not force the class used as a Daemon to actually implemnt the interface 
through source code, but the class can simply have the correct 
methods.....only know this because of the source code not any 
docs....don't know if Tomcat does this or not.

4) You might look in your jsvc error file...where ever you have put it 
and look for the text 'Cannot stop daemon' or 'Cannot found Daemon 
Loader "stop" entry point'....that mis type of Cannot found....is really 
in the logging of the 1.0 release source code.  Because even though you 
get this text and tomcat goes away....the method to stop may not have 
been found and the jsvc process is going to kill the JVM anyways.

Hope some of that helps

Wade


---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org


Mime
View raw message