I have run into TCP socket limitations with two different E-mail servers
that run on Windows. Both were the result of using too many TCP sockets.
Windows by default will only allow around 1,800 sockets to be used, and
when you start getting to that point, unexpected things can happen.
Sockets are used for SMTP connections, POP3 connections, IMAP
connections, DNS lookups, and all sorts of .NET stuff too. Things like
greylisting will keep sockets open for long periods of time, and systems
that do spam blocking with DNS lookups to blacklists tend to push out
more than is typical. A good program designed to handle such load will
pool the sockets in order to avoid hitting these limits. Both products
that I had issues with introduced pooling in order to resolve these issues.
As a work around, or for tuning a Windows server that does such things,
I recommend changing or adding the following registry parameters:
HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\MaxHashTableSize
= 65536 (DWORD)
HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\TcpTimedWaitDelay
= 30 (DWORD)
HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\MaxUserPort
= 65534 (DWORD)
HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\TcpNumConnections,
16777214 (DWORD)
You can google each key name for a description of what they do. This
can definitely help if there are issues with the TCP sockets, but it's
not a permanant solution. The permanent solution is to have the
application pool if it isn't already.
If this helps, it would definitely be good to share that with this list
and/or Ipswitch in the event that they are still looking for the problem.
Matt