That what I guessed but I don't understand everything. The code you are referencing is related to NTPipes and not sockets. So I'm not familiar with Tomcat Native implementation, but do you know the global architecture ? What I guessed is that the Tomcat native stuff created with the inherit flag, but even if it does, I don't see why it should not work if the socket is closed after a timeout.
Regards Jeff On Fri, Jun 29, 2012 at 11:22 AM, Laurent Petit <lpe...@yseop.com> wrote: > Hello Jeff, Konstantin & all, > > On Mon, 2012-06-25 at 20:52 +0200, verlag.preis...@t-online.de wrote: > > Hello Jeff & all, > > > > > Von: Jeff MAURY <jeffma...@jeffmaury.com> > > > Datum: Mon, 25 Jun 2012 18:46:02 +0200 > > > > > Konstantin, > > > > > > your explanations are very interesting but unclear to me: what do you > > > call the inactivity timer ? When it is started ? After the request has > > > been processed by the servlet ? In that case, I see no difference > > > between a servlet that launch a process and another one. > > > It seems to me that a process that is launched does not inhererits > > > handles from its parent process but it's possible that under Windows, > > > it's an option so it would be interesting to watch. > > > > > > Jeff > > > > > > > Sorry, I'm just a normal Tomcat user, and I don't know how exactly the > APR connector and its Timeout works, so I am unable to answer that. > > > > > > Howewer, I did some further observations: > > > > -When I perform a request to the servlet that opens wordpad.exe, the TCP > connection from Tomcat does not close after the timeout - even when I kill > the Tomcat process (java.exe), the TCP connection is still open. If I kill > wordpad.exe, then finally the connection is closed/aborted. > > -When I have 1 TCP connection open to Tomcat and the servlet starts the > little C program, Task manager shows that it has 11 handles. > > However, when I have 5 TCP connections open to Tomcat, and do the > request on one of them, Task maanger shows that the C program has 15 > handles - so four more handles when there are four more connections to > Tomcat. All of that 5 TCP connections don't close until I kill that process. > > > > That seems to me to be an indication that socket handles could be > inherited by the child processes that are startet by ProcessBuilder from > tomcat. > > > > A msdn article mentions how to create a new process using > CreateProcess(); it also mentions that socket handles can be inherited: > http://msdn.microsoft.com/en-us/library/windows/desktop/ms724466.aspx > > > > However, as I don't have much knowledge about programming with WinAPIs, > I don't know why those handles are inherited (the MSDN article mentions > that a handle must be specified as inheritable when created, to allow a > child process to inherit it). Maybe someone with more WinAPI/Tomcat Native > knowledge can help here. > > > I also had the vague intuition that this related to handles inheritence. > Your recent tests & research tend to make this hypothesis even more > appealing. > > I know nothing about tomcat-native implementation, but I was able to see > that the bInheritHandle member is set to true here in tomcat native's C > code: > > lpetit:~/tmp/tomcat-native $ grep "bInheritHandle" -R * > native/os/win32/ntpipe.c: con->sa.bInheritHandle = TRUE; > > ( > > http://svn.apache.org/repos/asf/tomcat/native/branches/1.1.x/native/os/win32/ntpipe.c) > > > Jeff, > > What else could we do to help investigate / fix this issue ? > > > Cheers, > > -- > Laurent > > > > > > Regards, > > Konstantin Preißer > > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > > For additional commands, e-mail: users-h...@tomcat.apache.org > > > > -- > Laurent Petit > > Agence +33 (0)4 78 47 07 49 > > Email lpe...@yseop.com > > > > > > > > Yseop apporte une réponse intelligente et individualisée à chacun de vos > clients > > > > www.yseop.com > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org > > -- Jeff MAURY "Legacy code" often differs from its suggested alternative by actually working and scaling. - Bjarne Stroustrup http://www.jeffmaury.com http://riadiscuss.jeffmaury.com http://www.twitter.com/jeffmaury