在我的一個應用程序中,我們使用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