----------------------------------------------------------------
BEFORE YOU POST, search the faq at <http://java.apache.org/faq/>
WHEN YOU POST, include all relevant version numbers, log files,
and configuration files. Don't make us guess your problem!!!
----------------------------------------------------------------
Hi,
I have installed JServ, Apache, etc, and everything appears to be running
fine, including the example servlets. I am, however, concerned with an
error that is logged to mod_jserv.log when I shut down apache:
(EMERGENCY) wrapper: JServ (29345) didn't die nicely, killing it
After terminating httpd (with "apachectl stop"), ps shows the following for
a while (until mod_jserv hits its timeout to forcibly terminate java):
nobody 5970 0.0 4.5 5600 2840 ? S 02:36 0:00
/usr/local/apache/bin/httpd
nobody 5977 30.7 28.8 75308 18116 ? R 02:36 0:10
/usr/local/jdk1.2.2/bin/i386/native_threads/java org.apache.jse
nobody 6015 0.0 0.0 0 0 ? Z 02:36 0:00
[java <defunct>]
Strangely enough, this defunct java thread comes and goes under new pid's
while httpd is running (regardless of whether it is serving requests):
nobody 5846 0.0 0.0 0 0 ? Z 02:13 0:00
[java <defunct>]
I'm not completely sure, but I don't imagine this is normal behaviour. Most
of the time, these processes are successfully terminated (by mod_jserv the
"forceful" way), however there was one occasion when the non-defunct java
process somehow remained until I killed it off myself. These quirks occur
every time I run apache, regardless of whether it has served any requests.
The system configuration is as follows:
- Linux kernel 2.2.14
- Apache 1.3.12 (built with -DEAPI & SHARED_CORE, all modules are DSO)
- ApacheJServ1.1
- mod_ssl/2.6.0 OpenSSL/0.9.3a
- mod_perl/1.21 PHP/4.0b4pl1
- Blackdown Java 2 SDK Version 1.2.2 RC4
- Inprise JIT Compiler 1.2.13 (though this occurs with or without the JIT
compiler)
Below is the entire startup/shutdown process logged to mod_jserv (with
additional logging enabled):
============mod_jserv.log:
[28/02/2000 02:36:40:358] (INFO) Apache Module was cleaned-up
[28/02/2000 02:36:43:666] (INFO) wrapper classpath:
/usr/local/apache/libexec/ApacheJServ.jar:/usr/local/jdk/JSDK2.0/lib/jsdk.jar
[28/02/2000 02:36:43:666] (INFO) wrapper: Java VM spawned (PID=5977, PPID=5970)
[28/02/2000 02:36:53:674] (INFO) wrapper: watching processes
(PID=5970,PPID=5969,JVM PID=5977)
[28/02/2000 02:37:08:276] (INFO) Apache Module was cleaned-up
[28/02/2000 02:37:08:278] (INFO) Wrapper: Shutting down JServ (PID=5970)
(sig 15)
[28/02/2000 02:37:08:278] (INFO) wrapper: Terminating JServ (PID=5970, VM
PID=5977)
[28/02/2000 02:37:08:278] (INFO) ajp12: sending shutdown signal
[28/02/2000 02:37:18:374] (EMERGENCY) wrapper: JServ (5977) didn't die
nicely, killing it
============
The apache error log file shows nothing unusual during this time. The
jserv.log file with debugging output turned on also shows nothing out of
the ordinary. The final log item of the this file indicates that line 466
of JServ.java is reached, so it looks like the JVM is failing on the
System.exit(0) call?? I'm convinced this has something to do with the
lingering zombie java process, but I'm clueless as to how. Can anyone
enlighten me? Thanks for helping.
============jserv.log:
[28/02/2000 00:14:38:053 CST] ApacheJServ/1.1 is starting...
[28/02/2000 00:14:38:056 CST] Connection authentication is disabled
[28/02/2000 00:14:38:074 CST] Connection allowed from localhost/127.0.0.1
[28/02/2000 00:14:38:075 CST] Listening on port 8007 accepting 5 maximum
connections
[28/02/2000 00:14:38:083 CST] Creating Servlet Zones
[28/02/2000 00:14:38:083 CST] Servlet Zone root initializing...
[28/02/2000 00:14:38:083 CST] - Using configuration file:
/usr/local/apache/conf/jserv/zone.properties
[28/02/2000 00:14:38:153 CST] Initialisation timeout: 10 seconds
[28/02/2000 00:14:38:154 CST] Destroy timeout: 10 seconds
[28/02/2000 00:14:38:155 CST] Session timeout: 1800 seconds
[28/02/2000 00:14:38:155 CST] New session timeout: 1800 seconds
[28/02/2000 00:14:38:156 CST] Session check frequency: 30 seconds
[28/02/2000 00:14:38:157 CST] Autoreload on zone file changes: true
[28/02/2000 00:14:38:157 CST] Autoreload on classfile changes: true
[28/02/2000 00:14:38:166 CST] Default initArgs: {}
[28/02/2000 00:14:38:178 CST] Creating new sessions hashtable.
[28/02/2000 00:14:38:180 CST] Servlet Zone root initialization complete
[28/02/2000 00:14:42:530 CST] Connection from localhost/127.0.0.1
[28/02/2000 00:14:42:531 CST] Initializing servlet request
[28/02/2000 00:14:42:532 CST] Reading request data
[28/02/2000 00:14:42:539 CST] Received signal 15
[28/02/2000 00:14:42:540 CST] Terminating ApacheJServ/1.1...
[28/02/2000 00:14:42:541 CST] Closing the server socket
[28/02/2000 00:14:42:570 CST] Terminating root
[28/02/2000 00:14:42:572 CST] Destroying Servlets
[28/02/2000 00:14:42:575 CST] ApacheJServ/1.1 terminated.
============JServe.java:
461 protected static synchronized void terminate() {
462 if (log.active) log.log(CH_INFO, "Terminating " +
JServ.version() + "...");
463 clear();
464 if (log.active) log.log(CH_DEBUG, JServ.version() + "
terminated.");
465 log.flush();
466 System.exit(0);
467 }
============jserve.conf, condensed :)
<IfModule mod_jserv.c>
ApJServManual off
ApJServProperties /usr/local/apache/conf/jserv/jserv.properties
ApJServLogFile /var/www/log/mod_jserv.log
ApJServLogLevel debug
ApJServDefaultProtocol ajpv12
#ApJServDefaultHost www
ApJServDefaultPort 8007
ApJServSecretKey DISABLED
ApJServMount /servlets /root
ApJServMount /servlet /root
ApJServMountCopy on
<Location /jserv/>
SetHandler jserv-status
order deny,allow
deny from all
allow from localhost
</Location>
============jserve.properties, also condensed...
wrapper.bin=/usr/local/jdk/bin/java
wrapper.classpath=/usr/local/apache/libexec/ApacheJServ.jar
wrapper.classpath=/usr/local/jdk/JSDK2.0/lib/jsdk.jar
bindaddress=localhost
port=8007
zones=root
root.properties=/usr/local/apache/conf/jserv/zone.properties
pool=false
pool.capacity=10
pool.controller=org.apache.java.recycle.DefaultController
security.selfservlet=false
security.maxConnections=50
security.authentication=false
log=true
log.file=/var/www/log/jserv.log
log.timestamp=true
log.dateFormat=[dd/MM/yyyy HH:mm:ss:SSS zz]
log.queue.maxage = 5000
log.queue.maxsize = 1000
log.channel.servletException=true
log.channel.jservException=true
log.channel.warning=true
log.channel.servletLog=true
log.channel.critical=true
--
--------------------------------------------------------------
Please read the FAQ! <http://java.apache.org/faq/>
To subscribe: [EMAIL PROTECTED]
To unsubscribe: [EMAIL PROTECTED]
Archives and Other: <http://java.apache.org/main/mail.html>
Problems?: [EMAIL PROTECTED]