簡體   English   中英

幫助java.net.URLConnection超時?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM