[英]Help with java.net.URLConnection timeout?
Connection正在超時,而開發人員則在其想法列表的底部。
日志友好:
[6/24/10 6:32:34:032 EDT] 0000000d ThreadMonitor W WSVR0605W: Thread "WebContainer : 136" (0000c53e) has been active for 719542 milliseconds and may be hung. There is/are 45 thread(s) in total in the server that may be hung.
代碼如下:
try {
final URLConnection connection = url.openConnection();
connection.setConnectTimeout(CONNECT_TIME_SECONDS * 1000);
connection.setReadTimeout(READ_TIME_SECONDS * 1000);
is = connection.getInputStream();
document = builder.parse(is);
} catch (SAXException e) {
log.error(e);
throw new PageContentException(e);
} finally {
if (is != null) {
is.close();
}
}
我最好的猜測是url.openConnection()試圖在將連接超時降低到合理水平之前嘗試打開連接,但是API中沒有任何內容顯示出我將如何做不同的事情。
關於嘗試什么的建議?
我會得到線程轉儲,看看它確切地卡在了哪里。 不要假設 然后,您可以了解為什么它被卡在那里。 如果您已經有線程轉儲,請發布堆棧跟蹤。
我最好的猜測是url.openConnection()試圖在將連接超時降低到合理水平之前嘗試打開連接,但是API中沒有任何內容顯示出我將如何做不同的事情。
我認為這是可能的情況。 IMO,嘗試開始連接后設置連接超時不太可能起作用。
關於嘗試什么的建議?
您是否嘗試過在系統屬性中設置“ sun.net.client.defaultConnectTimeout”屬性? 它記錄在這里 。
我最好的猜測是url.openConnection()在嘗試將連接超時降低到合理水平之前嘗試打開連接。
否。如果是這種情況,URLConnection.setConnectionTimeout()將完全沒有意義,因為沒有比您更早調用它的方法。
可能是因為“最終”。 我不確定您為什么要加入其中,但我認為刪除final應該會有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.