在我的一个应用程序中,我们使用HttpURLConnection命中另一个服务器 - 该应用程序在几个月内工作良好,现在突然所有命中都面临连接超时。间歇地,几个呼叫(500中的1个)成功,而所有其他呼叫失败。该应用程序部署在使用Tomcat 5.5的Java 5上运行的Linux上。我试过curl和wget从命令行工作正常。Java中的HttpURLConnection中的荒诞连接超时
使用完全相同的代码库的另一个Java进程能够从命令行进行连接。我们已经重新启动了tomcat服务器以及机器,但无济于事。我们已经彻底检查了机器,并且没有任何拦截进程/防火墙阻碍(显然其他Java进程能够建立连接)。
在间歇性爆发(例如每天一次)中,应用程序能够建立几个连接,然后返回到中断状态。堆栈跟踪中也没有多少明显的迹象。
任何可能出错的建议?
如果服务器DNS在应用程序运行时发生更改,Java将不会选择此项,并且连接将从旧IP(考虑IP关闭)超时。因此,在CDN的情况下,如果一个节点出现故障并被替换为另一个IP,则可能会出现问题。
您连接到自己的服务的服务?一些服务(特别是主要的RSS服务)将故意阻止频繁访问它们的用户。 – Quotidian 2010-06-08 16:34:18
是的,我打的服务是我们自己的,并且没有这样的负载规则:( – sangupta 2010-06-08 17:04:31