|
From: Marsh, R. <ral...@th...> - 2005-04-06 20:02:20
|
Is this a difficult, stupid or uninteresting question I'm asking? I'm = not accustomed to posting detailed descriptions of problems to lists = multiple times (this is my 4th posting on this issue) and getting = absolutely no response. If there is more detail required please let me know and I'll attempt to = gather it.=20 I simply need a high level analysis of this situation to determine what = if any contribution the wrapper has in this situation, either to help or = to cause it. If it has no potential to cause the problem, I will move = on. If it can be configured to help the problem please indicate how. = Thank you. Ralph -----Original Message----- From: wra...@li... [mailto:wra...@li...]On Behalf Of Marsh, Ralph Sent: Friday, April 01, 2005 3:17 PM To: wra...@li... Subject: [Wrapper-user] Tomcat NT JVM hung debug details I ran the wrapper with log output set to DEBUG. The logs indicate that = the wrapper detected what it thought was a hung JVM, attempted to launch = a new JVM, had a problem binding to port 8081, then shutdown everything. = This is my recurring problem. I'm including the debug output below. = Questions: 1) Is it possible the wrapper incorrectly identifies the JVM as hung? 2) If so, how/why? Is there a timeout setting that can be increased to = force the wrapper to attempt communication with the JVM longer before = giving up? 3) In the log "ERROR | wrapper | 2005/04/01 14:30:08 | Java Virtual = Machine did not exit on request, terminated" appears. It seems the = wrapper is attempting to stop that hung JVM before launching a new one. = Does "terminated" mean the JVM or the wrapper action was terminated? If = it's the JVM, why is port 8081 not released? If it's the wrapper, why = can't the JVM be killed? 4) in general, if the JVM is really hung, what can create this state? Bottom line: it appears the wrapper is trying to recover a JVM in a bad = state but it is failing. Are there any configuration settings I can = modify to help the wrapper successfully recover or initialize a JVM? = Thanks. Ralph =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D DEBUG | wrapperp | 2005/04/01 14:29:26 | send a packet PING : ping INFO | jvm 1 | 2005/04/01 14:29:26 | Received a packet PING : ping INFO | jvm 1 | 2005/04/01 14:29:26 | Send a packet PING : ok DEBUG | wrapperp | 2005/04/01 14:29:26 | read a packet PING : ok DEBUG | wrapper | 2005/04/01 14:29:26 | Got ping response from JVM DEBUG | wrapperp | 2005/04/01 14:29:32 | send a packet PING : ping INFO | jvm 1 | 2005/04/01 14:29:32 | Received a packet PING : ping INFO | jvm 1 | 2005/04/01 14:29:32 | Send a packet PING : ok DEBUG | wrapperp | 2005/04/01 14:29:32 | read a packet PING : ok DEBUG | wrapper | 2005/04/01 14:29:32 | Got ping response from JVM DEBUG | wrapperp | 2005/04/01 14:29:38 | send a packet PING : ping DEBUG | wrapperp | 2005/04/01 14:29:44 | send a packet PING : ping DEBUG | wrapperp | 2005/04/01 14:29:50 | send a packet PING : ping DEBUG | wrapperp | 2005/04/01 14:29:56 | send a packet PING : ping DEBUG | wrapperp | 2005/04/01 14:30:02 | send a packet PING : ping ERROR | wrapper | 2005/04/01 14:30:08 | JVM appears hung: Timed out = waiting for signal from JVM. ERROR | wrapper | 2005/04/01 14:30:08 | Java Virtual Machine did not = exit on request, terminated STATUS | wrapper | 2005/04/01 14:30:14 | Launching a JVM... DEBUG | wrapper | 2005/04/01 14:30:14 | command: = "C:\tools\j2sdk1.4.2\bin\java" -server -XX:+UseParNewGC = -XX:MaxNewSize=3D24m -XX:NewSize=3D24m -XX:SurvivorRatio=3D128 = -XX:+UseConcMarkSweepGC -XX:MaxTenuringThreshold=3D0 = -XX:CMSInitiatingOccupancyFraction=3D60 = -Djava.endorsed.dirs=3D../bin;../common/endorsed -Dcatalina.base=3D.. = -Dcatalina.home=3D.. -Djava.io.tmpdir=3D../temp -Xms1200m -Xmx1200m = -Djava.library.path=3D"../common/lib" -classpath = "../common/lib/wrapper.jar;C:\tools\j2sdk1.4.2/lib/tools.jar;../bin/boots= trap.jar" -Dwrapper.key=3D"NhcjD9wi11JZ8IY8" -Dwrapper.port=3D32000 = -Dwrapper.debug=3D"TRUE" -Dwrapper.service=3D"TRUE" = -Dwrapper.cpu.timeout=3D"10" -Dwrapper.jvmid=3D2 = org.tanukisoftware.wrapper.WrapperStartStopApp = org.apache.catalina.startup.Bootstrap 1 start = org.apache.catalina.startup.Bootstrap true 1 stop DEBUG | wrapper | 2005/04/01 14:30:14 | Java Virtual Machine started = (PID=3D6800) INFO | jvm 2 | 2005/04/01 14:30:14 | Wrapper Manager: JVM #2 INFO | jvm 2 | 2005/04/01 14:30:14 | Wrapper Manager: Registering = shutdown hook INFO | jvm 2 | 2005/04/01 14:30:14 | Wrapper Manager: Using wrapper INFO | jvm 2 | 2005/04/01 14:30:15 | Calling native initialization = method. DEBUG | wrapper | 2005/04/01 14:30:15 | Pause reading child output to = share cycles. DEBUG | wrapperp | 2005/04/01 14:30:15 | accepted a socket from = 127.0.0.1 on port 2035 DEBUG | wrapperp | 2005/04/01 14:30:15 | read a packet KEY : = NhcjD9wi11JZ8IY8 DEBUG | wrapper | 2005/04/01 14:30:15 | Got key from JVM: = NhcjD9wi11JZ8IY8 DEBUG | wrapperp | 2005/04/01 14:30:15 | send a packet LOW_LOG_LEVEL : = 1 DEBUG | wrapperp | 2005/04/01 14:30:15 | send a packet PING_TIMEOUT : = 30 DEBUG | wrapper | 2005/04/01 14:30:15 | Pause reading socket data to = share cycles. DEBUG | wrapper | 2005/04/01 14:30:15 | Start Application. DEBUG | wrapperp | 2005/04/01 14:30:15 | send a packet START : start INFO | jvm 2 | 2005/04/01 14:30:16 | Initializing WrapperManager = native library. INFO | jvm 2 | 2005/04/01 14:30:16 | Java Executable: = C:\tools\j2sdk1.4.2\bin\java.exe INFO | jvm 2 | 2005/04/01 14:30:16 | Java Version : 1.4.2-b28 = Java HotSpot(TM) Server VM DEBUG | wrapper | 2005/04/01 14:30:16 | Pause reading child output to = share cycles. INFO | jvm 2 | 2005/04/01 14:30:16 | Java VM Vendor : Sun = Microsystems Inc. INFO | jvm 2 | 2005/04/01 14:30:16 |=20 INFO | jvm 2 | 2005/04/01 14:30:16 | Wrapper (Version 3.0.5) DEBUG | wrapper | 2005/04/01 14:30:16 | Pause reading child output to = share cycles. INFO | jvm 2 | 2005/04/01 14:30:16 |=20 INFO | jvm 2 | 2005/04/01 14:30:16 | Open socket to wrapper... INFO | jvm 2 | 2005/04/01 14:30:16 | Opened Socket DEBUG | wrapper | 2005/04/01 14:30:17 | Pause reading child output to = share cycles. INFO | jvm 2 | 2005/04/01 14:30:17 | Send a packet KEY : = NhcjD9wi11JZ8IY8 INFO | jvm 2 | 2005/04/01 14:30:17 | = handleSocket(Socket[addr=3D/127.0.0.1,port=3D32000,localport=3D2035]) INFO | jvm 2 | 2005/04/01 14:30:17 | Received a packet = LOW_LOG_LEVEL : 1 DEBUG | wrapper | 2005/04/01 14:30:17 | Pause reading child output to = share cycles. INFO | jvm 2 | 2005/04/01 14:30:17 | Wrapper Manager: LowLogLevel = from Wrapper is 1 INFO | jvm 2 | 2005/04/01 14:30:17 | Received a packet PING_TIMEOUT = : 30 INFO | jvm 2 | 2005/04/01 14:30:17 | Wrapper Manager: PingTimeout = from Wrapper is 30000 INFO | jvm 2 | 2005/04/01 14:30:17 | Received a packet START : = start INFO | jvm 2 | 2005/04/01 14:30:17 | calling listener.start() INFO | jvm 2 | 2005/04/01 14:30:17 | WrapperStartStopApp: = start(args) INFO | jvm 2 | 2005/04/01 14:30:17 | WrapperStartStopApp: invoking = start main method DEBUG | wrapper | 2005/04/01 14:30:17 | Pause reading child output to = share cycles. INFO | jvm 2 | 2005/04/01 14:30:18 | WrapperStartStopApp: = start(args) end. Main Completed=3Dfalse, exitCode=3Dnull INFO | jvm 2 | 2005/04/01 14:30:18 | returned from listener.start() INFO | jvm 2 | 2005/04/01 14:30:18 | Send a packet STARTED :=20 DEBUG | wrapperp | 2005/04/01 14:30:18 | read a packet STARTED :=20 DEBUG | wrapper | 2005/04/01 14:30:18 | JVM signalled that it was = started. DEBUG | wrapperp | 2005/04/01 14:30:18 | send a packet PING : ping INFO | jvm 2 | 2005/04/01 14:30:18 | Received a packet PING : ping INFO | jvm 2 | 2005/04/01 14:30:18 | Send a packet PING : ok DEBUG | wrapperp | 2005/04/01 14:30:18 | read a packet PING : ok DEBUG | wrapper | 2005/04/01 14:30:18 | Got ping response from JVM INFO | jvm 2 | 2005/04/01 14:30:20 | StandardEngine[null]: = setJvmRoute=3Dtr2a INFO | jvm 2 | 2005/04/01 14:30:20 | 2005-04-01 14:30:20,671 ERROR = [] org.apache.coyote.http11.Http11Protocol.init:152 - Error initializing = endpoint INFO | jvm 2 | 2005/04/01 14:30:20 | java.net.BindException: = Address already in use: JVM_Bind:8081 INFO | jvm 2 | 2005/04/01 14:30:20 | at = org.apache.tomcat.util.net.PoolTcpEndpoint.initEndpoint(PoolTcpEndpoint.j= ava:280) INFO | jvm 2 | 2005/04/01 14:30:21 | at = org.apache.coyote.http11.Http11Protocol.init(Http11Protocol.java:150) DEBUG | wrapper | 2005/04/01 14:30:21 | Pause reading child output to = share cycles. INFO | jvm 2 | 2005/04/01 14:30:21 | at = org.apache.coyote.tomcat4.CoyoteConnector.initialize(CoyoteConnector.java= :1117) INFO | jvm 2 | 2005/04/01 14:30:21 | at = org.apache.catalina.core.StandardService.initialize(StandardService.java:= 579) INFO | jvm 2 | 2005/04/01 14:30:21 | at = org.apache.catalina.core.StandardServer.initialize(StandardServer.java:22= 46) DEBUG | wrapper | 2005/04/01 14:30:21 | Pause reading child output to = share cycles. INFO | jvm 2 | 2005/04/01 14:30:21 | at = org.apache.catalina.startup.Catalina.start(Catalina.java:511) INFO | jvm 2 | 2005/04/01 14:30:21 | at = org.apache.catalina.startup.Catalina.execute(Catalina.java:400) INFO | jvm 2 | 2005/04/01 14:30:21 | at = org.apache.catalina.startup.Catalina.process(Catalina.java:180) DEBUG | wrapper | 2005/04/01 14:30:21 | Pause reading child output to = share cycles. INFO | jvm 2 | 2005/04/01 14:30:22 | at = sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) INFO | jvm 2 | 2005/04/01 14:30:22 | at = sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java= :39) DEBUG | wrapper | 2005/04/01 14:30:22 | Pause reading child output to = share cycles. INFO | jvm 2 | 2005/04/01 14:30:22 | at = sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorI= mpl.java:25) INFO | jvm 2 | 2005/04/01 14:30:22 | at = java.lang.reflect.Method.invoke(Method.java:324) INFO | jvm 2 | 2005/04/01 14:30:22 | at = org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:203) INFO | jvm 2 | 2005/04/01 14:30:22 | at = sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) DEBUG | wrapper | 2005/04/01 14:30:22 | Pause reading child output to = share cycles. INFO | jvm 2 | 2005/04/01 14:30:22 | at = sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java= :39) INFO | jvm 2 | 2005/04/01 14:30:22 | at = sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorI= mpl.java:25) INFO | jvm 2 | 2005/04/01 14:30:22 | at = java.lang.reflect.Method.invoke(Method.java:324) DEBUG | wrapper | 2005/04/01 14:30:22 | Pause reading child output to = share cycles. INFO | jvm 2 | 2005/04/01 14:30:22 | at = org.tanukisoftware.wrapper.WrapperStartStopApp.run(WrapperStartStopApp.ja= va:126) INFO | jvm 2 | 2005/04/01 14:30:23 | at = java.lang.Thread.run(Thread.java:534) INFO | jvm 2 | 2005/04/01 14:30:23 | Catalina.start: = LifecycleException: Protocol handler initialization failed: = java.net.BindException: Address already in use: JVM_Bind:8081 INFO | jvm 2 | 2005/04/01 14:30:23 | LifecycleException: Protocol = handler initialization failed: java.net.BindException: Address already = in use: JVM_Bind:8081 DEBUG | wrapper | 2005/04/01 14:30:23 | Pause reading child output to = share cycles. INFO | jvm 2 | 2005/04/01 14:30:23 | at = org.apache.coyote.tomcat4.CoyoteConnector.initialize(CoyoteConnector.java= :1119) INFO | jvm 2 | 2005/04/01 14:30:23 | at = org.apache.catalina.core.StandardService.initialize(StandardService.java:= 579) INFO | jvm 2 | 2005/04/01 14:30:23 | at = org.apache.catalina.core.StandardServer.initialize(StandardServer.java:22= 46) DEBUG | wrapper | 2005/04/01 14:30:23 | Pause reading child output to = share cycles. INFO | jvm 2 | 2005/04/01 14:30:23 | at = org.apache.catalina.startup.Catalina.start(Catalina.java:511) INFO | jvm 2 | 2005/04/01 14:30:23 | at = org.apache.catalina.startup.Catalina.execute(Catalina.java:400) INFO | jvm 2 | 2005/04/01 14:30:23 | at = org.apache.catalina.startup.Catalina.process(Catalina.java:180) DEBUG | wrapper | 2005/04/01 14:30:23 | Pause reading child output to = share cycles. DEBUG | wrapperp | 2005/04/01 14:30:24 | send a packet PING : ping INFO | jvm 2 | 2005/04/01 14:30:24 | at = sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) INFO | jvm 2 | 2005/04/01 14:30:24 | at = sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java= :39) INFO | jvm 2 | 2005/04/01 14:30:24 | at = sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorI= mpl.java:25) INFO | jvm 2 | 2005/04/01 14:30:24 | at = java.lang.reflect.Method.invoke(Method.java:324) DEBUG | wrapper | 2005/04/01 14:30:24 | Pause reading child output to = share cycles. INFO | jvm 2 | 2005/04/01 14:30:24 | at = org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:203) INFO | jvm 2 | 2005/04/01 14:30:24 | at = sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) DEBUG | wrapper | 2005/04/01 14:30:24 | Pause reading child output to = share cycles. INFO | jvm 2 | 2005/04/01 14:30:24 | at = sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java= :39) INFO | jvm 2 | 2005/04/01 14:30:25 | at = sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorI= mpl.java:25) DEBUG | wrapper | 2005/04/01 14:30:25 | Pause reading child output to = share cycles. INFO | jvm 2 | 2005/04/01 14:30:25 | at = java.lang.reflect.Method.invoke(Method.java:324) INFO | jvm 2 | 2005/04/01 14:30:25 | at = org.tanukisoftware.wrapper.WrapperStartStopApp.run(WrapperStartStopApp.ja= va:126) INFO | jvm 2 | 2005/04/01 14:30:25 | at = java.lang.Thread.run(Thread.java:534) DEBUG | wrapper | 2005/04/01 14:30:25 | Pause reading child output to = share cycles. INFO | jvm 2 | 2005/04/01 14:30:25 | Catalina.stop: = LifecycleException: This server has not yet been started INFO | jvm 2 | 2005/04/01 14:30:25 | Received a packet PING : ping DEBUG | wrapper | 2005/04/01 14:30:26 | Pause reading child output to = share cycles. DEBUG | wrapperp | 2005/04/01 14:30:26 | read a packet PING : ok DEBUG | wrapper | 2005/04/01 14:30:26 | Got ping response from JVM DEBUG | wrapper | 2005/04/01 14:30:26 | Pause reading socket data to = share cycles. INFO | jvm 2 | 2005/04/01 14:30:26 | LifecycleException: This = server has not yet been started INFO | jvm 2 | 2005/04/01 14:30:26 | Send a packet PING : ok INFO | jvm 2 | 2005/04/01 14:30:26 | at = org.apache.catalina.core.StandardServer.stop(StandardServer.java:2213) DEBUG | wrapper | 2005/04/01 14:30:26 | Pause reading child output to = share cycles. INFO | jvm 2 | 2005/04/01 14:30:26 | at = org.apache.catalina.startup.Catalina.start(Catalina.java:543) INFO | jvm 2 | 2005/04/01 14:30:26 | at = org.apache.catalina.startup.Catalina.execute(Catalina.java:400) INFO | jvm 2 | 2005/04/01 14:30:27 | at = org.apache.catalina.startup.Catalina.process(Catalina.java:180) INFO | jvm 2 | 2005/04/01 14:30:27 | at = sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) INFO | jvm 2 | 2005/04/01 14:30:27 | at = sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java= :39) INFO | jvm 2 | 2005/04/01 14:30:27 | at = sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorI= mpl.java:25) DEBUG | wrapper | 2005/04/01 14:30:27 | Pause reading child output to = share cycles. INFO | jvm 2 | 2005/04/01 14:30:27 | at = java.lang.reflect.Method.invoke(Method.java:324) INFO | jvm 2 | 2005/04/01 14:30:27 | at = org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:203) INFO | jvm 2 | 2005/04/01 14:30:27 | at = sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) INFO | jvm 2 | 2005/04/01 14:30:27 | at = sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java= :39) DEBUG | wrapper | 2005/04/01 14:30:27 | Pause reading child output to = share cycles. INFO | jvm 2 | 2005/04/01 14:30:27 | at = sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorI= mpl.java:25) INFO | jvm 2 | 2005/04/01 14:30:27 | at = java.lang.reflect.Method.invoke(Method.java:324) INFO | jvm 2 | 2005/04/01 14:30:27 | at = org.tanukisoftware.wrapper.WrapperStartStopApp.run(WrapperStartStopApp.ja= va:126) INFO | jvm 2 | 2005/04/01 14:30:27 | at = java.lang.Thread.run(Thread.java:534) DEBUG | wrapper | 2005/04/01 14:30:27 | Pause reading child output to = share cycles. INFO | jvm 2 | 2005/04/01 14:30:28 | WrapperStartStopApp: start = main method completed DEBUG | wrapperp | 2005/04/01 14:30:30 | send a packet PING : ping INFO | jvm 2 | 2005/04/01 14:30:30 | Received a packet PING : ping INFO | jvm 2 | 2005/04/01 14:30:30 | Send a packet PING : ok INFO | jvm 2 | 2005/04/01 14:30:30 | All non-daemon threads have = stopped. Exiting. DEBUG | wrapper | 2005/04/01 14:30:30 | Pause reading child output to = share cycles. DEBUG | wrapperp | 2005/04/01 14:30:30 | read a packet PING : ok DEBUG | wrapper | 2005/04/01 14:30:30 | Got ping response from JVM DEBUG | wrapperp | 2005/04/01 14:30:31 | read a packet STOP : 0 DEBUG | wrapper | 2005/04/01 14:30:31 | JVM requested a shutdown. (0) DEBUG | wrapper | 2005/04/01 14:30:31 | wrapperStopProcess(0) called. DEBUG | wrapper | 2005/04/01 14:30:31 | Pause reading socket data to = share cycles. DEBUG | wrapper | 2005/04/01 14:30:31 | Sending stop signal to JVM DEBUG | wrapperp | 2005/04/01 14:30:31 | send a packet STOP : NULL INFO | jvm 2 | 2005/04/01 14:30:31 | Send a packet STOP : 0 INFO | jvm 2 | 2005/04/01 14:30:31 | Thread, Wrapper-Connection, = handling the shutdown process. INFO | jvm 2 | 2005/04/01 14:30:31 | calling listener.stop() DEBUG | wrapper | 2005/04/01 14:30:31 | Pause reading child output to = share cycles. INFO | jvm 2 | 2005/04/01 14:30:32 | WrapperStartStopApp: stop(0) INFO | jvm 2 | 2005/04/01 14:30:32 | WrapperStartStopApp: invoking = stop main method INFO | jvm 2 | 2005/04/01 14:30:32 | WrapperStartStopApp: stop main = method completed INFO | jvm 2 | 2005/04/01 14:30:32 | returned from listener.stop() DEBUG | wrapper | 2005/04/01 14:30:32 | Pause reading child output to = share cycles. DEBUG | wrapperp | 2005/04/01 14:30:33 | read a packet STOPPED : 0 DEBUG | wrapper | 2005/04/01 14:30:33 | JVM signalled that it was = stopped. DEBUG | wrapperp | 2005/04/01 14:30:33 | socket read no code (closed?). INFO | jvm 2 | 2005/04/01 14:30:33 | Send a packet STOPPED : 0 INFO | jvm 2 | 2005/04/01 14:30:33 | Closing socket. INFO | jvm 2 | 2005/04/01 14:30:33 | calling System.exit(0) DEBUG | wrapper | 2005/04/01 14:30:35 | JVM exited normally. STATUS | wrapper | 2005/04/01 14:30:35 | <-- Wrapper Stopped > -----Original Message----- > From: Marsh, Ralph =20 > Sent: Friday, March 11, 2005 8:04 AM > To: 'wra...@li...' > Subject: RE: Tomcat NT JVM hung >=20 > Any suggestions in beginning to diagnose our problem would be = appreciated. Thank you. >=20 > -----Original Message----- > From: Marsh, Ralph =20 > Sent: Thursday, March 03, 2005 4:18 PM > To: 'wra...@li...' > Subject: Tomcat NT JVM hung >=20 > We are running a Struts web app on Tomcat 4.1. We use the wrapper to = run Tomcat as a service. >=20 > Over the past 8 months, about once per month, the service has died. = Within the past month the frequency of these events has gone up to about = once per week.=20 >=20 > This leaves the web app dead in the water, the user receiving HTTP = 500 errors and us logging into the NT box and manually restarting the = service. We have the wrapper.conf file set to output STATUS level = messages to the log. In the log we see this: >=20 > ERROR | wrapper | 2005/03/03 17:58:43 | JVM appears hung: Timed out = waiting for signal from JVM. > ERROR | wrapper | 2005/03/03 17:58:43 | Java Virtual Machine did = not exit on request, terminated > STATUS | wrapper | 2005/03/03 17:58:49 | Launching a JVM...>=20 > STATUS | wrapper | 2005/03/03 17:59:03 | <-- Wrapper Stopped >=20 > I have four questions: > 1) what can cause a JVM backing Tomcat to hang? > 2) how should I configure the wrapper to get the most useful logging = information during these events? Running in DEBUG for a week/weeks will = produce copious logs. If necessary, I'll do it, but is it necessary? > 3) isn't the wrapper supposed to recognize these hangs, gracefully = kill the process then restart a new process? If so, what should I look = at to determine why this is not happening in our case > 4) in the log output above what is going on between the third and = forth entry? It appears a new JVM is launching then the wrapper stops = everything. Why? >=20 > Our complete wrapper.conf file is included below. Thank you. >=20 > Ralph Marsh >=20 > #******************************************************************** > # Wrapper Properties > #******************************************************************** > # Java Application > wrapper.java.command=3D%java_home%\bin\java >=20 > # Java Main class. This class must implement the WrapperListener = interface > # or guarantee that the WrapperManager class is initialized. Helper > # classes are provided to do this for you. See the Integration = section > # of the documentation for details. > = wrapper.java.mainclass=3Dorg.tanukisoftware.wrapper.WrapperStartStopApp >=20 > # Java Classpath (include wrapper.jar) Add class path elements as > # needed starting from 1 > wrapper.java.classpath.1=3D../common/lib/wrapper.jar > wrapper.java.classpath.2=3D%java_home%/lib/tools.jar > wrapper.java.classpath.3=3D../bin/bootstrap.jar >=20 > # Java Library Path (location of Wrapper.DLL or libwrapper.so) > wrapper.java.library.path.1=3D../common/lib >=20 > # Java Additional Parameters > wrapper.java.additional.1=3D-server > wrapper.java.additional.2=3D-XX:+UseParNewGC > wrapper.java.additional.3=3D-XX:MaxNewSize=3D24m > wrapper.java.additional.4=3D-XX:NewSize=3D24m > wrapper.java.additional.5=3D-XX:SurvivorRatio=3D128 > wrapper.java.additional.6=3D-XX:+UseConcMarkSweepGC > wrapper.java.additional.7=3D-XX:MaxTenuringThreshold=3D0 > wrapper.java.additional.8=3D-XX:CMSInitiatingOccupancyFraction=3D60 > = wrapper.java.additional.9=3D-Djava.endorsed.dirs=3D../bin;../common/endor= sed > wrapper.java.additional.10=3D-Dcatalina.base=3D.. > wrapper.java.additional.11=3D-Dcatalina.home=3D.. > wrapper.java.additional.12=3D-Djava.io.tmpdir=3D../temp > =20 > #wrapper.java.additional.13=3D-verbosegc > #wrapper.java.additional.14=3D-XX:+PrintGCTimeStamps > #wrapper.java.additional.15=3D-XX:+PrintGCDetails > #wrapper.java.additional.13=3D-XX:+PrintTenuringDistribution >=20 >=20 > #wrapper.java.additional.7=3D-verbosegc >=20 > # Initial Java Heap Size (in MB) > wrapper.java.initmemory=3D1200 >=20 > # Maximum Java Heap Size (in MB) > wrapper.java.maxmemory=3D1200 >=20 > # Application parameters. Add parameters as needed starting from 1 >=20 > # The first application parameter is the name of the class whose main > # method is to be called when the application is launched. The class > # name is followed by the number of parameters to be passed to its = main > # method. Then comes the actual parameters. > wrapper.app.parameter.1=3Dorg.apache.catalina.startup.Bootstrap > wrapper.app.parameter.2=3D1 > wrapper.app.parameter.3=3Dstart >=20 > # The start parameters are followed by the name of the class whose = main > # method is to be called to stop the application. The stop class = name > # is followed by a flag which controls whether or not the Wrapper = should > # wait for all non daemon threads to complete before exiting the JVM. > # The flag is followed by the number of parameters to be passed to = the > # stop class's main method. Finally comes the actual parameters. > wrapper.app.parameter.4=3Dorg.apache.catalina.startup.Bootstrap > wrapper.app.parameter.5=3Dtrue > wrapper.app.parameter.6=3D1 > wrapper.app.parameter.7=3Dstop >=20 > #******************************************************************** > # Wrapper Logging Properties > #******************************************************************** > # Format of output for the console. (See docs for formats) > wrapper.console.format=3DPM >=20 > # Log Level for console output. (See docs for log levels) > wrapper.console.loglevel=3DINFO >=20 > # Log file to use for wrapper output logging. > wrapper.logfile=3D../logs/wrapper.log >=20 > # Format of output for the log file. (See docs for formats) > wrapper.logfile.format=3DLPTM >=20 > # Log Level for log file output. (See docs for log levels) > wrapper.logfile.loglevel=3DSTATUS >=20 > # Maximum size that the log file will be allowed to grow to before > # the log is rolled. Size is specified in bytes. The default value > # of 0, disables log rolling. May abbreviate with the 'k' (kb) or > # 'm' (mb) suffix. For example: 10m =3D 10 megabytes. > wrapper.logfile.maxsize=3D500k >=20 > # Maximum number of rolled log files which will be allowed before old > # files are deleted. The default value of 0 implies no limit. > wrapper.logfile.maxfiles=3D0 >=20 > # Log Level for sys/event log output. (See docs for log levels) > wrapper.syslog.loglevel=3DNONE >=20 > #******************************************************************** > # Wrapper NT Service Properties > #******************************************************************** > # WARNING - Do not modify any of these properties when an application > # using this configuration file has been installed as a service. > # Please uninstall the service before modifying this section. The > # service can then be reinstalled. >=20 > # Name of the service > wrapper.ntservice.name=3Dtomcat-rights2a >=20 > # Display name of the service > wrapper.ntservice.displayname=3Dtomcat-rights2a >=20 > # Description of the service > wrapper.ntservice.description=3Dtomcat-rights2a >=20 > # Service dependencies. Add dependencies as needed starting from 1 > wrapper.ntservice.dependency.1=3D >=20 > # Mode in which the service is installed. AUTO_START or DEMAND_START > wrapper.ntservice.starttype=3DAUTO_START >=20 > # Allow the service to interact with the desktop. > wrapper.ntservice.interactive=3Dfalse >=20 ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_ide95&alloc_id=14396&op=3Dick _______________________________________________ Wrapper-user mailing list Wra...@li... https://lists.sourceforge.net/lists/listinfo/wrapper-user |