技术文章 - CS378234

随机无法从 Windchill PDMLink 下载大文件

已修改: 29-Mar-2024   


注意:本文已使用机器翻译软件翻译,以方便非英语客户阅读。但翻译内容可能包含语法错误或不准确之处。请注意, PTC对本文所含信息的翻译准确性及使用后果不承担任何责任。请在 此处 查看本文的英文原始版本以便参考。有关机器翻译的更多详情,请单击 此处
感谢您告诉我们。我们将尽快审阅此译文。

适用于

  • Windchill PDMLink 11.1 to 12.1
  • PTC Cloud Installations deployed using the Amazon CLB (deployed Spring/Summer 2023 or earlier)

说明

  • 无法下载较大的文件(通常大于 350MB)
  • 无法下载大于 600MB 的文件
  • 大文件内容下载随机失败
  • 在内容下载期间,Amazon Classic Load Balancer (CLB) 可能会重置与 Windchill 服务器的网络连接
  • Apache 访问日志仅显示正在下载的大文件的一部分(通常约为 350-600MB)以及再次请求该文件但失败并返回 500 响应:
<IP date time> "GET /Windchill/servlet/WindchillGW/wt.fv.master.StandardMasterService/doDirectDownload/<filename>?folderId=####&ft=FF&userid=####&adId=####&fileName=####&refsize= <large file size in bytes> &mime=application/zip&mk=wt.fv.master.StandardMasterService&ofn=<filename>&c=8&riid=-1&sT=####& sign=#### %3D&site=https%3A%2F%2F<site>%2FWindchill%2Fservlet%2FWindchillGW&AUTH_CODE=HmacSHA256&isProxy=true HTTP/1.1" 200 <smaller file size around 350-600MB> 3239687

<IP date time> "GET /Windchill/servlet/WindchillGW/wt.fv.master.StandardMasterService/doDirectDownload/<filename>?folderId=####&ft=FF&userid=####&adId=####&fileName=####&refsize=<large file size in bytes>&mime=application/zip&mk=wt.fv.master.StandardMasterService&ofn=<filename>&c=8&riid=-1&sT=####&sign= <same signature #### > %3D&site=https%3A%2F%2F<site>%2FWindchill%2Fservlet%2FWindchillGW&AUTH_CODE=HmacSHA256&isProxy=true HTTP/1.1" 500 999 5384
  • Methodserver日志报告下载错误:
ERROR [ajp-nio-127.0.0.1-8010-exec-3] wt.fv.master  - Error in doDirectDownload
org.apache.catalina.connector.ClientAbortException: java.io.IOException: Broken pipe
	at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:371)
	at org.apache.catalina.connector.OutputBuffer.flushByteBuffer(OutputBuffer.java:845)
	at org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:750)
	at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:406)
	at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:384)
	at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:96)
	at wt.servlet.ServletRequestMonitor$CountingOutputStream.write(ServletRequestMonitor.java:2388)
	at wt.servlet.CompressionFilter$GzippingResponse$GzipAsAppropStream.write(CompressionFilter.java:687)
	at wt.fv.master.StandardMasterService.doDirectDownload(StandardMasterService.java:3400)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at wt.httpgw.HTTPServletResponse.invoke(HTTPServletResponse.java:264)
	at wt.httpgw.MethodRequestHandler.handleRequest(MethodRequestHandler.java:92)
	at wt.httpgw.HTTPGatewayServlet.serviceWithoutFilters(HTTPGatewayServlet.java:336)
	at wt.httpgw.FilterChainImpl.doFilter(FilterChainImpl.java:94)
	at wt.session.SessionContextDestroyer.doFilterInternal(SessionContextDestroyer.java:136)
	at wt.session.SessionContextDestroyer.doFilter(SessionContextDestroyer.java:184)
	at wt.httpgw.FilterChainImpl.doFilter(FilterChainImpl.java:81)
	at wt.httpgw.HTTPGatewayServlet.service(HTTPGatewayServlet.java:235)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at wt.licenseusage.licensing.LicenseFilter.doFilter(LicenseFilter.java:47)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at com.ptc.jws.servlet.filter.WsdlServletFilter.doFilter(WsdlServletFilter.java:80)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at com.ptc.core.ui.validation.URLValidationFilter.doFilter(URLValidationFilter.java:85)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at wt.httpgw.filter.WTContextBeanFilter.doWithWtContextBeanHandler(WTContextBeanFilter.java:104)
	at wt.httpgw.filter.WTContextBeanFilter.doFilter(WTContextBeanFilter.java:58)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at wt.servlet.CompressionFilter.doFilter(CompressionFilter.java:301)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at wt.servlet.RequestInterrupter.doFilter(RequestInterrupter.java:335)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at wt.servlet.ServletRequestMonitor.doFilter(ServletRequestMonitor.java:1660)
	at wt.servlet.ServletRequestMonitorFilter.doFilter(ServletRequestMonitorFilter.java:56)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.filters.HttpHeaderSecurityFilter.doFilter(HttpHeaderSecurityFilter.java:126)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.filters.CorsFilter.handleNonCORS(CorsFilter.java:368)
	at org.apache.catalina.filters.CorsFilter.doFilter(CorsFilter.java:174)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:543)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:367)
	at org.apache.coyote.ajp.AjpProcessor.service(AjpProcessor.java:526)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:882)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1657)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
	at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:748)
Caused by: java.io.IOException: Broken pipe
	at sun.nio.ch.FileDispatcherImpl.write0(Native Method)
	at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47)
	at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)
	at sun.nio.ch.IOUtil.write(IOUtil.java:65)
	at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:471)
	at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:135)
	at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1294)
	at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:773)
	at org.apache.tomcat.util.net.SocketWrapperBase.flushBlocking(SocketWrapperBase.java:726)
	at org.apache.tomcat.util.net.SocketWrapperBase.flush(SocketWrapperBase.java:716)
	at org.apache.coyote.ajp.AjpProcessor.writeData(AjpProcessor.java:1395)
	at org.apache.coyote.ajp.AjpProcessor.access$900(AjpProcessor.java:60)
	at org.apache.coyote.ajp.AjpProcessor$SocketOutputBuffer.doWrite(AjpProcessor.java:1521)
	at org.apache.coyote.Response.doWrite(Response.java:614)
	at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:358)
	... 69 more
ERROR [ajp-nio-127.0.0.1-8010-exec-3] wt.method.server.httpgw  - Exception when attempting to set response status of 500 [java.io.IOException: Broken pipe]
java.lang.IllegalStateException: Cannot call sendError() after the response has been committed
	at org.apache.catalina.connector.ResponseFacade.sendError(ResponseFacade.java:454)
	at wt.servlet.ServletRequestMonitor$BaseHttpResponseWrapper.sendError(ServletRequestMonitor.java:2679)
	at wt.servlet.HttpServletResponseWrapper.sendError(HttpServletResponseWrapper.java:102)
	at wt.servlet.HttpServletResponseWrapper.sendError(HttpServletResponseWrapper.java:102)
	at wt.servlet.CompressionFilter$GzippingResponse.sendError(CompressionFilter.java:577)
	at wt.httpgw.HTTPServletResponse.setStatus(HTTPServletResponse.java:233)
	at wt.fv.master.StandardMasterService.doDirectDownload(StandardMasterService.java:3459)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at wt.httpgw.HTTPServletResponse.invoke(HTTPServletResponse.java:264)
	at wt.httpgw.MethodRequestHandler.handleRequest(MethodRequestHandler.java:92)
	at wt.httpgw.HTTPGatewayServlet.serviceWithoutFilters(HTTPGatewayServlet.java:336)
	at wt.httpgw.FilterChainImpl.doFilter(FilterChainImpl.java:94)
	at wt.session.SessionContextDestroyer.doFilterInternal(SessionContextDestroyer.java:136)
	at wt.session.SessionContextDestroyer.doFilter(SessionContextDestroyer.java:184)
	at wt.httpgw.FilterChainImpl.doFilter(FilterChainImpl.java:81)
	at wt.httpgw.HTTPGatewayServlet.service(HTTPGatewayServlet.java:235)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at wt.licenseusage.licensing.LicenseFilter.doFilter(LicenseFilter.java:47)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at com.ptc.jws.servlet.filter.WsdlServletFilter.doFilter(WsdlServletFilter.java:80)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at com.ptc.core.ui.validation.URLValidationFilter.doFilter(URLValidationFilter.java:85)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at wt.httpgw.filter.WTContextBeanFilter.doWithWtContextBeanHandler(WTContextBeanFilter.java:104)
	at wt.httpgw.filter.WTContextBeanFilter.doFilter(WTContextBeanFilter.java:58)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at wt.servlet.CompressionFilter.doFilter(CompressionFilter.java:301)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at wt.servlet.RequestInterrupter.doFilter(RequestInterrupter.java:335)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at wt.servlet.ServletRequestMonitor.doFilter(ServletRequestMonitor.java:1660)
	at wt.servlet.ServletRequestMonitorFilter.doFilter(ServletRequestMonitorFilter.java:56)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.filters.HttpHeaderSecurityFilter.doFilter(HttpHeaderSecurityFilter.java:126)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.filters.CorsFilter.handleNonCORS(CorsFilter.java:368)
	at org.apache.catalina.filters.CorsFilter.doFilter(CorsFilter.java:174)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:543)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:367)
	at org.apache.coyote.ajp.AjpProcessor.service(AjpProcessor.java:526)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:882)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1657)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
	at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:748)
这是文章 378234 的 PDF 版本,可能已过期。最新版本 CS378234