解決Tomcat文件上傳超時問題.

現象描述:web

  系統支持多文件分片上傳,並且支持進度條實時更新。月底當用戶集中大批量作文件上傳時,文件常常上傳到100%就會卡主。按F12打開管理控制檯,報錯:「XMLHttpRequest:網絡錯誤 0x2eff」;後臺日誌發現大量異常信息。spring

org.springframework.web.multipart.MultipartException: Could not parse multipart servlet request; nested exception is org.apache.commons.fileupload.FileUploadBase$IOFileUploadException: Processing of multipart/form-data request failed. Stream ended unexpectedlyapache

解決思路:tomcat

  咱們使用的上傳組件是WebUploader,分片大小是1M,上傳最大線程數:4,而且上傳過程當中還要不斷計算分片的MD5值,因此懷疑當月末上傳併發量很大的狀況下,會對服務器處理和帶寬形成不小的壓力,單個分片上傳的時間可能會超時。因此考慮調整tomcat的配置。服務器

解決方案:網絡

在tomcat的server.xml中加入以下配置併發

   <Connector port="9060" protocol="HTTP/1.1"
               connectionTimeout="300000" disableUploadTimeout="true"
               minProcessors="50" maxProcessors="375" acceptCount="500"
               redirectPort="5443" URIEncoding="UTF-8"/>線程

其中:日誌

connectionTimeout:設置鏈接的超時值,以毫秒爲單位。默認值爲60000=60秒orm

disableUploadTimeout:容許Servlet容器,正在執行使用一個較長的鏈接超時值,以使Servlet有較長的時間來完成它的執行,默認值爲false

maxProcessors:最大鏈接線程數

acceptCount:指定當全部能夠使用的處理請求的線程數都被使用時,能夠放處處理隊列中的請求數,就是被排隊的請求數,超過這個數的請求將拒絕鏈接。

相關文章
相關標籤/搜索