解决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:指定当全部能够使用的处理请求的线程数都被使用时,能够放处处理队列中的请求数,就是被排队的请求数,超过这个数的请求将拒绝链接。

相关文章
相关标签/搜索