日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

那些年我们踩到过的坑(二):3.1 版 MultiThreadedHttpConnectionManager 未releaseConnection导致应用服务器宕机...

發布時間:2025/5/22 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 那些年我们踩到过的坑(二):3.1 版 MultiThreadedHttpConnectionManager 未releaseConnection导致应用服务器宕机... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

昨天短信服務又宕機了,jstack打出線程信息發現 所有線程池的線程都在wait,棧信息如下:

at java.lang.Object.wait(Native Method)
- waiting on [0x000000070754fb60] (a org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$ConnectionPool)
at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager.doGetConnection(MultiThreadedHttpConnectionManager.java:518)
- locked [0x000000070754fb60] (a org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$ConnectionPool)
at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager.getConnectionWithTimeout(MultiThreadedHttpConnectionManager.java:416)
at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:153)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)
at com.dhf.sms.util.HttpUtil.getHtml(HttpUtil.java:75)
at com.dhf.sms.core.impl.MDSmsserviceImpl.send(MDSmsserviceImpl.java:165)
at com.dhf.sms.core.SmsTask.run(SmsTask.java:156)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at com.kuaidadi.framework.thread.bean.TaxiFutureTask.run(TaxiFutureTask.java:48)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)

?

發現所有線程都卡在MultiThreadedHttpConnectionManager 的doGetConnection方法:

? hostPool.waitingThreads.addLast(waitingThread);connectionPool.waitingThreads.addLast(waitingThread);connectionPool.wait(timeToWait);//卡在這

查看代碼和google,發現應該是connection連接未釋放的問題的。如果不調用getMethod.getResponseBodyAsString(),就不會釋放connection。并且我們沒有指定maxConnectionsPerHost,默認為2,所以當以下代碼在第16行拋出exception后連接不會被釋放掉,一旦發生兩次,那么僅有的2個connection都被占用,新進來的線程就卡住了。

1 public static String getHtml(String url,String charSet,Integer channelId) throws IOException, SmsHttpStatusException { 2 StaticLogInfo staticLogInfo = new StaticLogInfo(); 3 staticLogInfo.setCmd("Channel "+channelId+"("+getHost(url)+")"); 4 GetMethod getMethod = null; 5 try { 6 if (StringUtils.isBlank(charSet)) { 7 charSet = SmsConstant.DEFAULT_CHARSET; 8 } 9 10 getMethod = new GetMethod(url); 11 int statusCode = httpClient.executeMethod(getMethod); 12 if (statusCode != HttpStatus.SC_OK 13 && statusCode != HttpStatus.SC_MOVED_PERMANENTLY 14 && statusCode != HttpStatus.SC_MOVED_TEMPORARILY) { 15 log.error("statusCode:" + statusCode + " url請求失敗========>" + url); 16 throw new SmsHttpStatusException("請求失敗"); 17 } 18 19 String responseBody = new String(getMethod.getResponseBodyAsString().getBytes(charSet),SmsConstant.DEFAULT_CHARSET); 20 return responseBody; 21 } catch (IOException e) { 22 staticLogInfo.setResultCode("1"); 23 throw e; 24 } catch (SmsHttpStatusException e) { 25 staticLogInfo.setResultCode("1"); 26 throw e; 27 } finally { 28 29 reqLogger.info(staticLogInfo); 30 } 31 } 32

?

?

解決辦法是在finally里釋放connection:

finally {if(getMethod!=null){getMethod.releaseConnection();}reqLogger.info(staticLogInfo);}

并且增加最大連接數:

httpConnectionManagerParams.setMaxTotalConnections(100);httpConnectionManagerParams.setDefaultMaxConnectionsPerHost(20);

?

參考:http://blog.csdn.net/xiaojianpitt/article/details/7818971

轉載于:https://www.cnblogs.com/longzhaoyu/p/4563513.html

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的那些年我们踩到过的坑(二):3.1 版 MultiThreadedHttpConnectionManager 未releaseConnection导致应用服务器宕机...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 免费成人av | 91视频首页 | 综合色导航 | 好吊色这里只有精品 | 一本色道久久综合亚洲精品图片 | 双性人bbww欧美双性 | 欧美激情国产精品 | 女人下边被添全过视频 | 大奶子网站 | 日韩在线观看视频免费 | 在线观看视频毛片 | 特黄一区二区三区 | 伊人伊人伊人 | 玖草视频在线观看 | 久久久一区二区三区 | 一级性生活大片 | 色干综合| 美女调教视频 | 成人区一区二区 | 国产调教在线观看 | 日本亚洲欧美在线 | 91小宝寻花一区二区三区 | 91吃瓜今日吃瓜入口 | 成人香蕉视频在线观看 | 欧美在线视频精品 | 国产激情久久久 | 久久久久99精品成人片 | 涩漫天堂 | 亚洲69| 精品资源在线 | 亚洲精品视频在线看 | 成人免费在线播放视频 | 国产中文字幕在线免费观看 | 精品一区二区三区三区 | 中文字幕资源网 | 中文字幕免费在线 | 好男人在线观看 | 成人动漫一区二区 | 天天干天天操天天碰 | 久草影视网 | 亚洲国产精品激情在线观看 | 国产一久久 | 日韩三级免费观看 | 免费的黄色的视频 | 欧美成年人在线视频 | 日韩淫 | 小h片在线观看 | 欧美日韩成人精品 | 涩涩网址| www.在线观看av | 小香蕉av| 夜夜天天拍拍 | 丰满尤物白嫩啪啪少妇 | 性视频免费| 欧美激情免费 | 九色精品在线 | 很黄的性视频 | 亚洲成熟丰满熟妇高潮xxxxx | 国产精品久久久久毛片大屁完整版 | 五月天国产视频 | 日韩综合在线 | 免费无码毛片一区二区app | 伊人久久精品一区二区三区 | 日韩av一二三区 | 老熟妇毛片 | 韩国三级hd中文字幕有哪些 | 中文字幕丰满人伦在线 | 国产av天堂无码一区二区三区 | 蜜桃传媒一区二区亚洲av | 蜜芽一区二区 | 亚洲日本欧美在线 | 色哟哟视频在线观看 | 动漫一区二区三区 | japanese中文字幕 | 午夜网站免费 | 樱花草涩涩www在线播放 | av中文字 | 狠狠操2019 | 国产精品亚洲第一 | 国产一区麻豆 | 毛片免费全部无码播放 | 亚洲综合另类小说 | 天天透天天操 | 国产成人麻豆精品午夜在线 | 天天黄色片| 少妇一区二区三区 | 精品国产视频在线 | 激情欧美亚洲 | 五月丁香综合激情六月久久 | 朋友人妻少妇精品系列 | 无码人妻丰满熟妇奶水区码 | 日本中文在线 | 天美麻花果冻视频大全英文版 | 91丨porny丨对白 | 国产又粗又猛又爽69xx | aaa日韩 | 国产黄色小说 | 88国产精品 | 67194国产|