The process does respond to a kill -3.  The resulting threadump contains
the following entry for every thread from 13 - 67.  The data for each of
these threads is identical except for the thread number, 'tid', 'nid',
etc...:

"Thread-13" daemon prio=5 tid=0x6ee600 nid=0x1f waiting on monitor
[ef901000..ef9019c0]
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:426)
        at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:509)
        - locked <f329d5b0> (a
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable)
        at java.lang.Thread.run(Thread.java:536)



This is the rest of the dump:

"Thread-12" daemon prio=5 tid=0x594938 nid=0x1e runnable
[efb81000..efb819c0]
        at java.net.PlainSocketImpl.socketAccept(Native Method)
        at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:343)
        - locked <f2fe33b0> (a java.net.PlainSocketImpl)
        at java.net.ServerSocket.implAccept(ServerSocket.java:438)
        at java.net.ServerSocket.accept(ServerSocket.java:409)
        at
org.apache.axis.monitor.SOAPMonitorService$ServerSocketThread.run(SOAPMonitorService.java:224)
        at java.lang.Thread.run(Thread.java:536)

"MonitorRunnable" daemon prio=5 tid=0x6077c8 nid=0x1c waiting on monitor
[f0381000..f03819c0]
        at java.lang.Object.wait(Native Method)
        - waiting on <f2aab3b0> (a
org.apache.tomcat.util.threads.ThreadPool$MonitorRunnable)
        at
org.apache.tomcat.util.threads.ThreadPool$MonitorRunnable.run(ThreadPool.java:420)
        - locked <f2aab3b0> (a
org.apache.tomcat.util.threads.ThreadPool$MonitorRunnable)
        at java.lang.Thread.run(Thread.java:536)

"Thread-10" daemon prio=5 tid=0x609c48 nid=0x1b runnable
[f0481000..f04819c0]
        at java.net.PlainSocketImpl.socketAccept(Native Method)
        at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:343)
        - locked <f2aab420> (a java.net.PlainSocketImpl)
        at java.net.ServerSocket.implAccept(ServerSocket.java:438)
        at java.net.ServerSocket.accept(ServerSocket.java:409)
        at
org.apache.jk.common.ChannelSocket.accept(ChannelSocket.java:268)
        at
org.apache.jk.common.ChannelSocket.acceptConnections(ChannelSocket.java:559)
        at
org.apache.jk.common.SocketAcceptor.runIt(ChannelSocket.java:688)
        at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:530)
        at java.lang.Thread.run(Thread.java:536)

"Thread-9" daemon prio=5 tid=0x60e3b8 nid=0x1a waiting on monitor
[f0581000..f05819c0]
        at java.lang.Object.wait(Native Method)
        - waiting on <f2aab5d0> (a
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable)
        at java.lang.Object.wait(Object.java:426)
        at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:509)
        - locked <f2aab5d0> (a
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable)
        at java.lang.Thread.run(Thread.java:536)

"Thread-8" daemon prio=5 tid=0x60d3a0 nid=0x19 waiting on monitor
[f0681000..f06819c0]
        at java.lang.Object.wait(Native Method)
        - waiting on <f2aab638> (a
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable)
        at java.lang.Object.wait(Object.java:426)
        at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:509)
        - locked <f2aab638> (a
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable)
        at java.lang.Thread.run(Thread.java:536)

"Thread-7" daemon prio=5 tid=0x60db78 nid=0x18 waiting on monitor
[f0781000..f07819c0]
        at java.lang.Object.wait(Native Method)
        - waiting on <f2aab6a0> (a
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable)
        at java.lang.Object.wait(Object.java:426)
        at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:509)
        - locked <f2aab6a0> (a
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable)
        at java.lang.Thread.run(Thread.java:536)

"MonitorRunnable" daemon prio=5 tid=0x60a3b0 nid=0x17 waiting on monitor
[f0881000..f08819c0]
        at java.lang.Object.wait(Native Method)
        - waiting on <f2aab708> (a
org.apache.tomcat.util.threads.ThreadPool$MonitorRunnable)
        at
org.apache.tomcat.util.threads.ThreadPool$MonitorRunnable.run(ThreadPool.java:420)
        - locked <f2aab708> (a
org.apache.tomcat.util.threads.ThreadPool$MonitorRunnable)
        at java.lang.Thread.run(Thread.java:536)

"Thread-5" daemon prio=5 tid=0x604a90 nid=0x16 waiting on monitor
[f0981000..f09819c0]
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:426)
        at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:509)
        - locked <f2aab8a8> (a
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable)
        at java.lang.Thread.run(Thread.java:536)

"Thread-4" daemon prio=5 tid=0x6047f8 nid=0x15 waiting on monitor
[f0a81000..f0a819c0]
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:426)
        at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:509)
        - locked <f2aab928> (a
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable)
        at java.lang.Thread.run(Thread.java:536)

"Thread-3" daemon prio=5 tid=0x603980 nid=0x14 waiting on monitor
[f0b81000..f0b819c0]
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:426)
        at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:509)
        - locked <f2aab990> (a
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable)
        at java.lang.Thread.run(Thread.java:536)

"Thread-2" daemon prio=5 tid=0x607bd0 nid=0x13 waiting on monitor
[f0c81000..f0c819c0]
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:426)
        at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:509)

"HostConfig[localhost]" daemon prio=5 tid=0x603cb8 nid=0x12 waiting on
monitor [f0d81000..f0d819c0]
        at java.lang.Thread.sleep(Native Method)
        at
org.apache.catalina.startup.HostConfig.threadSleep(HostConfig.java:985)
        at org.apache.catalina.startup.HostConfig.run(HostConfig.java:1009)
        at java.lang.Thread.run(Thread.java:536)

"StandardManager[/webdav]" daemon prio=5 tid=0x6a3250 nid=0x11 waiting on
monitor [f0e81000..f0e819c0]
        at java.lang.Thread.sleep(Native Method)
        at
org.apache.catalina.session.StandardManager.threadSleep(StandardManager.java:780)
        at
org.apache.catalina.session.StandardManager.run(StandardManager.java:839)
        at java.lang.Thread.run(Thread.java:536)

"StandardManager[]" daemon prio=5 tid=0x5006d8 nid=0x10 waiting on monitor
[f0f81000..f0f819c0]
        at java.lang.Thread.sleep(Native Method)
        at
org.apache.catalina.session.StandardManager.threadSleep(StandardManager.java:780)
        at
org.apache.catalina.session.StandardManager.run(StandardManager.java:839)
        at java.lang.Thread.run(Thread.java:536)

"StandardManager[/tomcat-docs]" daemon prio=5 tid=0x3adc70 nid=0xf waiting
on monitor [f1081000..f10819c0]
        at java.lang.Thread.sleep(Native Method)
        at
org.apache.catalina.session.StandardManager.threadSleep(StandardManager.java:780)
        at
org.apache.catalina.session.StandardManager.run(StandardManager.java:839)
        at java.lang.Thread.run(Thread.java:536)

"StandardManager[/admin]" daemon prio=5 tid=0xa4a28 nid=0xe waiting on
monitor [f1181000..f11819c0]
        at java.lang.Thread.sleep(Native Method)
        at
org.apache.catalina.session.StandardManager.threadSleep(StandardManager.java:780)
        at
org.apache.catalina.session.StandardManager.run(StandardManager.java:839)
        at java.lang.Thread.run(Thread.java:536)

"StandardManager[/manager]" daemon prio=5 tid=0x38b7a0 nid=0xd waiting on
monitor [f1281000..f12819c0]
        at java.lang.Thread.sleep(Native Method)
        at
org.apache.catalina.session.StandardManager.threadSleep(StandardManager.java:780)
        at
org.apache.catalina.session.StandardManager.run(StandardManager.java:839)
        at java.lang.Thread.run(Thread.java:536)

"StandardManager[/examples]" daemon prio=5 tid=0x767268 nid=0xc waiting on
monitor [f1381000..f13819c0]
        at java.lang.Thread.sleep(Native Method)
        at
org.apache.catalina.session.StandardManager.threadSleep(StandardManager.java:780)
        at
org.apache.catalina.session.StandardManager.run(StandardManager.java:839)
        at java.lang.Thread.run(Thread.java:536)

"WebappLoader[/examples]" daemon prio=5 tid=0x7508c0 nid=0xb waiting on
monitor [f1981000..f19819c0]
        at java.lang.Thread.sleep(Native Method)
        at
org.apache.catalina.loader.WebappLoader.threadSleep(WebappLoader.java:1221)
        at
org.apache.catalina.loader.WebappLoader.run(WebappLoader.java:1341)
        at java.lang.Thread.run(Thread.java:536)

"Signal Dispatcher" daemon prio=10 tid=0xae370 nid=0x9 waiting on monitor
[0..0]

"Finalizer" daemon prio=8 tid=0xa9b98 nid=0x6 waiting on monitor
[fa281000..fa2819c0]
        at java.lang.Object.wait(Native Method)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
        - locked <f27580c0> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
        at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)

"Reference Handler" daemon prio=10 tid=0xa8248 nid=0x5 waiting on monitor
[fa381000..fa3819c0]
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:426)
        at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:113)
        - locked <f2758128> (a java.lang.ref.Reference$Lock)

"main" prio=5 tid=0x2baf0 nid=0x1 runnable [ffbee000..ffbef038]
        at java.net.PlainSocketImpl.socketAccept(Native Method)
        at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:343)
        - locked <f2aabab8> (a java.net.PlainSocketImpl)
        at java.net.ServerSocket.implAccept(ServerSocket.java:438)
        at java.net.ServerSocket.accept(ServerSocket.java:409)
        at
org.apache.catalina.core.StandardServer.await(StandardServer.java:526)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:521)
        at org.apache.catalina.startup.Catalina.execute(Catalina.java:400)
        at org.apache.catalina.startup.Catalina.process(Catalina.java:180)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:203)

"VM Thread" prio=5 tid=0xa7498 nid=0x4 runnable

"VM Periodic Task Thread" prio=10 tid=0xad0a0 nid=0x7 waiting on monitor
"Suspend Checker Thread" prio=10 tid=0xada08 nid=0x8 runnable


Let me if anyone wants to see the entire threaddump.

I don't really know how to tell if axis is hanging from this information,
so any help would be appreciated.

Thanks,
Brook M. Lovatt
-----+-----
Software Engineer - AMWeb Development
IBM Software Group - Security
Santa Cruz, CA 95060
Tel: (831)466-5102
T/L: 587-5102
[EMAIL PROTECTED]



|---------+---------------------------->
|         |           Gene Chuang      |
|         |           <genechuang@yahoo|
|         |           .com>            |
|         |                            |
|         |           01/04/2003 01:58 |
|         |           AM               |
|         |           Please respond to|
|         |           axis-user        |
|         |                            |
|---------+---------------------------->
  
>------------------------------------------------------------------------------------------------------------------------|
  |                                                                                    
                                    |
  |       To:       [EMAIL PROTECTED]                                           
                                    |
  |       cc:                                                                          
                                    |
  |       Subject:  Re: Axis hannging under load?????                                  
                                    |
  |                                                                                    
                                    |
  |                                                                                    
                                    |
  
>------------------------------------------------------------------------------------------------------------------------|



Will the hung process respond to a kill -3?  Getting a threaddump will
confirm or deny your suspicions.


 Brook M Lovatt <[EMAIL PROTECTED]> wrote:
 To help debug a more complex issue, I have written a very simple Web
 Service that looks like this:

 public class helloService{
 public String echoName(String name){
 return name;
 }
 }

 I deployed this service on a Tomcat 4.1.18 App Server using the Axis
 servlet. I did so by naming the file above helloService.jws and placing it
 in the ${CATALINA_HOME}/webapps/axis directory.

 A request like this:
 ********************************************************
 POST /axis/helloService.jws HTTP/1.0
 Content-Type: text/xml; charset=utf-8
 Accept: application/soap+xml, application/dime, multipart/related, text/*
 User-Agent: Axis/1.0
 Host: gonzo.cruz.ibm.com
 Cache-Control: no-cache
 Pragma: no-cache
 SOAPAction: ""
 Content-Length: 403
 <?xml version="1.0" encoding="UTF-8"?>
 <?xml:namespace prefix = soapenv />xmlns:xsd="
 http://www.w3.org/2001/XMLSchema";
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>

 soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";>
 DATA



 **********************************************************

 Yields a response like this:
 **********************************************************
 HTTP/1.1 200 OK
 Content-Type: text/xml; charset=utf-8
 Date: Fri, 03 Jan 2003 23:19:28 GMT
 Server: Apache Tomcat/4.0.6 (HTTP/1.1 Connector)
 Connection: close
 Set-Cookie: JSESSIONID=92707C09552F5CC3A0D4EB82B2B58353;Path=/axis
 <?xml version="1.0" encoding="UTF-8"?>
 xmlns:xsd="http://www.w3.org/2001/XMLSchema";
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance! ">

 soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";>
 DATA



 ***********************************************************

 However, when I put the Service under load (100 threads making
 simultaneous
 requests for ~10 minutes) the hits/second rate starts fast (500 hits/sec)
 then slows, and eventually just stops.

 When the service is hung, there is no way of connecting to Tomcat. Also, a
 ">netstat -a | grep 8080" yields a list of connections that are in
 "CLOSE_WAIT" state, that will not close until you restart Tomcat.

 I have tested this on AIX, SOLARIS, and Windows... using IBM and Sun
 JREs...with WebSphere and Tomcat, and It ALWAYS eventually hangs. I
 believe that this problem is with the Axis servlet, and is the root cause
 of the problem I originally! set out to fix.

 Has anyone seen this before??? Any help would be appreciated!!!

 Thanks,
 Brook M. Lovatt
 -----+-----
 Software Engineer - AMWeb Development
 IBM Software Group - Security
 Santa Cruz, CA 95060
 Tel: (831)466-5102
 T/L: 587-5102
 [EMAIL PROTECTED]




Reply via email to