愚蠢的问题。 我从客户端连接到服务器。 不幸的是,这个设置很复杂,使得debugging变得复杂 – 而且我们没有足够的选项。
环境:*客户机/服务器系统,都运行在同一台机器上。 客户端实际上是一个在特定时间执行一些数据库操作的服务。 * cnonection来自C#通过OleDb到一个EasySoft JDBC驱动程序到一个自定义的书面JDBC服务器,然后承载C ++的逻辑。 是的,但是第三方供应商决定通过JDBC接口为他们的服务器提供扩展机制。 这里可以做的不多;)
症状:在(ir)的定期间隔,我们得到一个JDBC驱动程序告诉的“Address already in use:connect”。 他们似乎来自我们运行的一个特定的服务。
现在,我读了所有关于端口耗尽的东西。 这就是为什么我们现在运行一个小工具,每分钟计算一次端口和状态。 上次发生这种情况的时候,我们有370个端口正在使用,在错误发生之后,端口数量上升到大约900个。 我们已经修改了registry(这是一个Windows机器),以允许超过5000个客户端端口标准,但即使如此,我们还远远没有开始的限制。
这就是为什么我在这里问。 Ayneone和ELSE可能导致这种情况?
它是一个Windows 2003 Server机器,64位。 我唯一能看到的其他东西可能会导致它(但是这种function被认为是禁用的)是安装在服务器上的Symantec Endpoint Protection,并且能够充当防火墙,它可能会拦截networkingstream量。 我不想通过过早地指向赛门铁克来打开一堆蠕虫(如果指向赛门铁克可以被看作是这样的话)。 那么,任何人的想法还有什么可能是原因?
谢谢
三件事情脱颖而出:
到一个定制的书面JDBC服务器
和
Symantec Endpoint Protection
和
客户机/服务器系统,都运行在同一台机器上
问题1:服务器如何select端口? 客户端和服务器(它们在同一台机器上)是不是可以在不同的时间间隔同步并select相同的端口?
问题2:您是否试过closuresSEP? 如果不把它关掉,看看会发生什么。 你需要消除它干扰的可能性。
问题3:在错误发生的时候, netstat说些什么?