You are here: Re: sql server causes No buffer space available (maximum connections reached?): recv failed « MsSQL Server « IT news, forums, messages
Re: sql server causes No buffer space available (maximum connections reached?): recv failed

Posted by Craig Kelly on 10/01/12 11:19

<daniel.shaya@tamesis.com> wrote:

> I'll try and keep this brief so in a nutshell:
>
> I have large distributed java system running on a Windows 2003 server
> (4cpu 8Gb memory).
>
> Periodically the following exceptions occurs in the servers:
>
> java.net.SocketException: No buffer space available (maximum
> connections reached?): recv failed
>
> I know for a fact we are not using too many TCPIP sockets or running
> too many socket servers.
>
> I have googled this error and found very little to help me.
>
> What buffer space is this?
> What does recv failed mean?
>
> (Is it at all relevant that sql server is running on the same box?)
>
> Any advice appreciated.
> Thanks in advance.
>
> Dan

Dan,

Erland's already explained what recv is. The buffer the error message is
talking about refers to the TCP/IP stack's buffers. The error you're seeing
can be caused by multiple things: too much data queued up for send via
TCP/IP or you're out of ephemeral sockets. The big problem is that the
number of available ephmeral sockets doesn't change just because you have a
massive amount of RAM. I'm not a Winsock expert, but running out of
ephemeral sockets is common problem on Windows. Well, not that common, but
it's a fairly well known occurrence amoung the networking guru's (I'm *not*
one of those).

> (Is it at all relevant that sql server is running on the same box?)

Maybe: it definitely won't help

> I know for a fact we are not using too many TCPIP sockets or running
> too many socket servers.

Are you sure? Because it's not just how many you have open simultaneously:
if you're rapidly opening and closing sockets you could cause the problem
you're seeing... there's a timeout period before the socket you closed is
returned to the available pool. Also, I haven't worked with Java's sockets
that much: if you don't explicitly close the socket, does it stick around
until a garbage collection cycle?

Download tcpview.exe from sysinternals.com: when the problem occurs, fire it
up and see what process has the greatest number of sockets out there. If
I'm correct, you'll probably see a bunch of sockets associated with one or a
few processes (and they'll probably be in the TIME_WAIT state...)


Here's some links that may help

A discussion of ephemeral ports

http://www.tcpipguide.com/free/t_TCPIPClientEphemeralPortsandClientServerApplicatio.htm

See this for some help on the Windows side (but be careful!)

http://support.microsoft.com/default.aspx?scid=kb;EN-US;196271

See this for someone with a similar problem...

http://forum.java.sun.com/thread.jspa?threadID=482535&messageID=3177261


Craig

 

Navigation:

[Reply to this message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация