[SunHELP] Socket connection watching

Nicholas Dronen sunhelp at sunhelp.org
Mon Dec 31 15:52:31 CST 2001


On Mon, Dec 24, 2001 at 10:09:57AM -0800, Michael Nahhas wrote:
> Our company supports a software that pushes serial/modem information through
> socket connection to port 5200/TCP occasionally this port just stops
> accepting information and the server has to be rebooted. Is there anyway I
> can track the buffering or caching of this connection through the OS
> (Solaris 2.6 on an E3000). Also do you happen to know if I can change the
> buffer size for TCP/IP ports. Any help at all would be great.

If the server process stops reading data from the network, it may
simply be hung (in the kernel) or blocking due to some synchronization
problem between the client and server.  The simplest way to find
out what the process is doing at a time like this is to run truss
against it.  E.g.:

$ truss -rall -wall -fall -vall -p [ pid of server process ]

I don't understand why you think you have to reboot the server
in order to get things working again.  By server do you mean
the server process or the computer itself?  If you mean the
computer itself, then why?  Do you get an error when you
start the server process again?  If so, what error?  If
you get an error such as 'bind(): Address already in use',
then the server program should be rewritten to use the
SO_REUSEADDR socket option.  You might have to explain
why you have to reboot the server to get more help.

As for questions of socket buffer sizes, I don't have
the information hand but you might want to look at
the ndd man page.  That being said, I myself wouldn't
infer from the behavior you describe that there's
a buffering problem.  Rather, I'd spend time to find
out why the server process is doing this, then look
for solutions.

Regards,

Nicholas Dronen



More information about the SunHELP mailing list