[omniORB] sockets in CLOSE_WAIT for 2 min

amos at amos.mailshell.com amos at amos.mailshell.com
Mon Aug 22 11:11:16 BST 2005


On Fri, 2005-08-19 at 08:55 -0500, Slawomir Lisznianski wrote:
> Hello,
> 
> I noticed that after a graceful shutdown from a client (after issuing
> ORB destroy() and all that), the server sockets are in CLOSE_WAIT state

That's the TCP requirement, in case a lost packet finally arrives -
if the kernel doesn't know that it is part of an old connection on
that particular port/ip-address quadruplet then this old packet may
be taken to be part of another connection. Leaving the socket on
TIME_WAIT for two minutes will prevent another connection from using
that exact port/ip for that while. It shouldn't practically bother
creation of other connections.

Also, these sockets in TIME_WAIT state do not take up the server's
file descriptors, only some kernel data structures.

> for about 2 minutes. Shouldn't these sockets be closed right away? Our
> servers are hit by a lot of short-lived clients and the concern is that
> we may run out of available file descriptors. Using
> oneCallPerConnection=0, to conserve resources, doesn't really work
> because of the occasional assertion in the iiopRoap.cc file (line 374,
> omniORB 4.0.6) while in this mode (refer to previous post for details).

This is unrelated to the above question - try to increase the number
of maximum file descriptors per process. The way to do this depends
on your particular environment.

> 
> Any advice?

Hope this helps.

Cheers,

--Amos




More information about the omniORB-list mailing list