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


現象描述:

  系統支持多文件分片上傳,而且支持進度條實時更新。月底當用戶集中大批量做文件上傳時,文件經常上傳到100%就會卡主。按F12打開管理控制台,報錯:“XMLHttpRequest:網絡錯誤 0x2eff”;后台日志發現大量異常信息。

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 unexpectedly

解決思路:

  我們使用的上傳組件是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秒

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

maxProcessors:最大連接線程數

acceptCount:指定當所有可以使用的處理請求的線程數都被使用時,可以放到處理隊列中的請求數,就是被排隊的請求數,超過這個數的請求將拒絕連接。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM