嗨,我有一个非常丑陋的问题:java.net.SocketException:没有可用的缓冲区空间(达到最大连接数?)它是客户端-服务器应用程序。客户端是 Windows XP SP2 32b,带有两个网卡核心双核。Java 1.6。u7。应用程序为本地通信打开了几个服务器套接字,并为 rmi 到 jboss 服务器打开了几个客户端套接字。
几个小时/几天后!我无法打开任何新的客户端套接字来与服务器进行通信。服务器套接字仍然有效。
Windows netstat 显示从 130 到 150 的连接。手动尝试时,我在 ~3500 个连接后耗尽了缓冲区!
我试过了:
重新启动 java 后,我就可以打开新连接。
整个例外:
原因:javax.naming.CommunicationException:无法连接到服务器 IP:1099 [根异常是 javax.naming.ServiceUnavailableException:无法连接到服务器 IP:1099 [Roo t 异常是 java.net.SocketException: No buffer space available (maximum connections reached?): JVM_Bind]] 2009-08-03 09:13:18,968 调试 [Thread-9] - 堆栈跟踪: 2009-08-03 09:13:18,968 调试 [Thread-9] - org.jnp.interfaces.NamingContext.checkRef(NamingContext.java:1562) 2009-08-03 09:13:18,968 调试 [Thread-9] - org.jnp.interfaces.NamingContext.lookup(NamingContext.java:634) 2009-08-03 09:13:18,968 调试 [Thread-9] - org.jnp.interfaces.NamingContext.lookup(NamingContext.java:627) 2009-08-03 09:13:18,968 调试 [Thread-9] - javax.naming.InitialContext.lookup(未知来源)
--edited
我们终于解决了 snmp 服务器故障的问题。我在下面的评论中写下了我的笔记。感谢帮助。