ColdFusion 9 (JRun 4) と ColdFusion 10 (Tomcat 7) を搭載した Windows 2003 を実行している 3 台のサーバーがあります。
週に数回、サーバーの 1 つでソケット エラーが発生します。
javax.mail.MessagingException: Could not connect to SMTP host: 192.168.1.3, port: 25; nested exception is: java.net.SocketException: No buffer space available (maximum connections reached?): connect
と
SQLException while attempting to connect: java.sql.SQLNonTransientConnectionException: [Macromedia][SQLServer JDBC Driver]Error establishing socket to host and port: 192.168.1.11:1433. Reason: No buffer space available (maximum connections reached?): connect.
と
java.io.IOException: Socket read failed at org.apache.coyote.ajp.AjpProcessor.read(AjpProcessor.java:323)
もちろん、私はこのエラーについて Google と Stack Overflow を検索しており、多くの可能な修正を試みました。MaxPorts レジストリ値など。私が抱えている問題は、これらのサーバーのポートが不足していないことです。彼らはたくさん持っています。状況を分析するために、TCPview と netstat (すべての TCP と UDP の変更をファイルに記録する CurrPorts でさえも) を使用しています。でもどれも元気そうです。インバウンドおよびアウトバウンドの接続が数百を超えることはありません。
また、サーバーからのすべての発信要求がソケット例外をスローするわけではありません。これらのマシンで実行されている Web サイトにはアクセスできますが、訪問者が前述のソケット エラーを受け取ることがあります (ランダムに思われます)。
RDP を使用してこれらのマシンに接続することは問題ではなく、これらのサーバーから別の場所に ping または telnet 呼び出しを行うことはまったく問題ありません。
では、十分な数のポートがあるのに、どうすればポートが不足するのでしょうか?