kartwall,您好!

        Sorry, I made a big mistake. These threads were released successfully.

    I think the "defunct" showed in Optimizeit must be the same as the Linux's 
Thread while actually these threads were freed by gc. Sorry again.

======= 2005-12-19 15:36:00 您在来信中写道:=======

>Hello, Martin Gainty
>
>       Now i got some progress.
>    I used Borland Optimizeit 6.0's Thread Debugger and found that in my web 
> application, lots of threads are "defunct".
>    As I said before, my web application is based on struts framework and I 
> wrote a plug-in in my app. This plug-in named "AppInfoCachePlugIn" will be 
> loaded and executed when tomcat starts up. In this plugin, I wrote a class 
> which extends from Thread and start it. Code like this:
>
>////////////////////////////////////////////////////////////////////////////////////////////
>        tfn_handle = new ServerNotify();      // ServerNotify is extended from 
> Thread
>        tfn_handle.setName("ServerNotifyThread");
>        ......
>        // start the thread
>        tfn_handle.start();
>////////////////////////////////////////////////////////////////////////////////////////////
>
>    In "ServerNotify" class, I create a UDP ServerSocket and listen at 10010 
> port. When a request comes in, ServerNotify will create a new Thread named 
> "SendMailThread" and do something. Code like this:
>
>////////////////////////////////////////////////////////////////////////////////////////////
>        // construct the sendmail thread
>        SendMailThread sml = new SendMailThread();
>        sml.setName("SendMailThread");
>        ......
>        sml.start();
>////////////////////////////////////////////////////////////////////////////////////////////
>
>    Now I found that all "SendMailThread" cannot be released by gc. The 
> thread's status is "defunct" -- the run function of SendMailThread has been 
> executed. That means the instances of "SendMailThread" were referenced by 
> someone -- Tomcat?
>
>    So, the problem is:
>    1. Can I create threads in a web application?
>    2. How to create threads that can be released gracefully in a web app?
>
>
>
>======= 2005-12-17 11:40:00 Martin Wroted:=======
>
>>I Agree with David-
>>Send us your most recent log from $CATALINA_HOME/logs
>>regards,
>>Martin-
>>----- Original Message -----
>>From: "David Smith" <[EMAIL PROTECTED]>
>>To: "Tomcat Users List" <users@tomcat.apache.org>
>>Sent: Saturday, December 17, 2005 11:03 AM
>>Subject: Re: Help, Tomcat 4.1.31 no response
>>
>>
>>> Have you taken a look at your log files? It could be a memory leak in
>>> your app as well.
>>>
>>> -- David
>>>
>>> zhang chao wrote:
>>>
>>>> My Operating System: RedHat 9
>>>> JVM version: j2sdk 1.4.2_09
>>>> Tomcat: tomcat 4.1.31
>>>> Hardware configuration: Dual PIII 1G, 512MB memory
>>>> users: about 30
>>>>
>>>> I have a web application and have deployed to my tomcat 4.1.31. The
>>>> problem is: tomcat will no response after running about 1 week. When i
>>>> enter the URL in IE and press enter, there is nothing happen except
>>>> the progress-bar of IE is increasing, after about 2 minutes, IE
>>>> displayed "Cannot display this page". The tomcat's process in
>>>> server(process named "java") has no any exception, the memory usage
>>>> and cpu usage is normal.
>>>>
>>>> I think that maybe tomcat had no idle thread in thread pool to serve
>>>> for requests so, it kept waiting for an thread available. If this is
>>>> true, my web application must have bugs which exhausted the thread and
>>>> resources. But i don't know, in what situation, these threads cannot
>>>> be callback by tomcat. My database resultsets, statements and
>>>> connections are released(MySQL database, version 3.23.58, used
>>>> tomcat's dbcp connection pool), my network sockets instance are closed
>>>> and any no-use class instances have been set to null.
>>>>
>>>> There is another important issue: when tomcat had no response, the
>>>> only thing I can do is to restart the tomcat server but, when i
>>>> invoked the tomcat's "shutdown.sh" script, I found that the 8080 port
>>>> was not listening but the "java" process was still alive. I must use
>>>> "kill -9 <the java process's pid>" to kill the process.
>>>> my web application is based on struts framework. When a request
>>>> arrives, a Action Servlet is invoked then, servlet will invoke my
>>>> singleton mode logic class, logical classes will fill lots of entity
>>>> classes and return them back to the client. Did these singleton-mode
>>>> logical class cause the problem?
>>>>
>>>> My English is poor and I hope everybody can read me. Any help and
>>>> suggestion will be appreciated. Thanks.
>>>>
>>>> _________________________________________________________________
>>>> 享用世界上最大的电子邮件系统― MSN Hotmail。 http://www.hotmail.com
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>>> For additional commands, e-mail: [EMAIL PROTECTED]
>>>>
>>>
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>> For additional commands, e-mail: [EMAIL PROTECTED]
>>>
>>>
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: [EMAIL PROTECTED]
>>For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>.
>
>= = = = = = = = = = = = = = = = = = = =
>                       
>
>        致
>礼!
>
>                               
>        kartwall
>[EMAIL PROTECTED]
>          2005-12-19
>
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: [EMAIL PROTECTED]
>For additional commands, e-mail: [EMAIL PROTECTED]
>
>.

= = = = = = = = = = = = = = = = = = = =
                        

        致
礼!

                                
        kartwall
[EMAIL PROTECTED]
          2005-12-19



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to