TCP:地址已在使用异常 - 客户端端口的可能原因?无端口耗尽

TCP:地址已在使用异常 - 客户端端口的可能原因?无端口耗尽

愚蠢的问题。我从连接到服务器的客户端获得这些问题。遗憾的是,设置很复杂,调试也变得复杂——而且我们别无选择。

环境:*客户端/服务器系统,都在同一台机器上运行。客户端实际上是在特定时间执行某些数据库操作的服务。* cnonection 来自 C#,通过 OleDb 到 EasySoft JDBC 驱动程序到自定义编写的 JDBC 服务器,然后在 C++ 中托管逻辑。是的,compelx - 但第三方供应商决定通过 JDBC 接口公开其服务器的扩展机制。这里能做的不多 ;)

症状:我们会不定期地收到 JDBC 驱动程序发出的“地址已在使用中:连接”提示。它们似乎来自我们运行的某项特定服务。

现在,我确实读了有关端口耗尽的所有内容。这就是为什么我们现在运行一个小工具,每分钟计算端口及其状态。上次发生这种情况时,我们惊人地使用了 370 个端口,错误发生后,端口数量上升到大约 900 个。我们已经修补了注册表(它是一台 Windows 机器),以允许超过 5000 个客户端端口标准,但即便如此,我们也远远没有达到这个限制。

这就是我在这里问的原因。有人知道还有什么原因可能导致这种情况吗?

这是一台 64 位 Windows 2003 Server 计算机。我能看到的唯一可能导致此问题的其他原因(但据称此功能已被禁用)是安装在服务器上的 Symantec Endpoint Protection - 并且能够充当防火墙,因此可能会拦截网络流量。我不想过早地将问题归咎于 Symantec(如果将问题归咎于 Symantec 会被视为这样的话),从而引发一系列问题。那么,有人知道还有什么原因吗?

谢谢

答案1

有三件事很突出:

自定义编写的 JDBC 服务器

赛门铁克端点保护

客户端/服务器系统,都在同一台机器上运行

问题 1:服务器如何选择端口?客户端和服务器(位于同一台机器上)是否会以某种不定期的间隔同步并选择相同的端口?

问题2:您是否尝试过关闭 SEP?如果没有,请将其关闭并查看会发生什么。您需要消除它干扰的可能性。

问题 3:netstat发生错误时说什么?

相关内容