您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關如何理解jdbc斷開的管道,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
18:34:50.032 [pool-11-thread-10] INFO o.a.http.impl.execchain.RetryExec - I/O exception (java.net.SocketException) caught when processing request to {}->http://35.26.59.191:8123: >斷開的管道 18:34:50.033 [pool-11-thread-10] INFO o.a.http.impl.execchain.RetryExec - Retrying request to {}->http://35.26.59.191:8123
如果我們把socketTimeout設置如下:
socketTimeout=60000; 這意味著60秒以內服務器必須開始給客戶端吐數據,以保持socket的活性。配置成60秒,一般查詢都不會遇到問題。即使是全表掃描這樣的大查詢,數據也會流式地源源不斷吐給客戶端,不會達到60秒的限制。
但對于帶有ORDER BY、DISTINCT、COUNT、SUM等方法的大查詢,他們很可能60秒內還沒有計算出結果,這時候客戶端會檢測到socket超時并自動斷開,導致服務器會收到QUERY_KILL,中止本次執行。
結論:對于帶有排序、聚集函數的大查詢,socketTimeout 應該設置很大的值。例如:
socketTimeout=6000000;
上述就是小編為大家分享的如何理解jdbc斷開的管道了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。