问题描述
系统是用2台服务器做的was集群,其中有一台服务器上的应用会不间断的会出现上传图片失败,写文件不行。但是系统可以读取查看图片。这个现象出现大概持续10分钟左右,自动恢复,又可以上传图片了。服务器配置也没改过,以前也没出现过这样的问题,最近一直出现这样的问题。请高手帮忙分析下原因,或者遇到过类似情况的朋友提供下解决方案,不胜感激。出现错误日志如下:com.ibm.wsspi.webcontainer.ClosedConnectionException:OutputStreamencounterederrorduringwriteatcom.ibm.ws.webcontainer.channel.WCCByteBufferOutputStream.write(WCCByteBufferOutputStream.java:80)atcom.ibm.ws.webcontainer.srt.SRTOutputStream.write(SRTOutputStream.java:96)atcom.ibm.wsspi.webcontainer.util.BufferedServletOutputStream.writeOut(BufferedServletOutputStream.java:438)atcom.ibm.wsspi.webcontainer.util.BufferedServletOutputStream.write(BufferedServletOutputStream.java:298)atcom.infoservice.fileserver.FileServerUtil.readFileToOutputStream(FileServerUtil.java:80)atcom.infoservice.fileserver.FileServerImpl.readFile(FileServerImpl.java:201)atcom.infoservice.fileserver.FileServerService.readFile(FileServerService.java:83)atcom.infoservice.fileserver.Download.<init>(Download.java:104)atcom.infoservice.framework.channels.http.HttpChannelServlet.service(HttpChannelServlet.java:49)atjavax.servlet.http.HttpServlet.service(HttpServlet.java:856)atcom.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:966)atcom.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:478)atcom.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:463)atcom.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:92)atcom.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:744)atcom.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1425)atcom.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:92)atcom.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:465)atcom.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:394)atcom.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:274)atcom.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)atcom.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)atcom.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:152)atcom.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:213)atcom.ibm.io.async.AbstractAsyncFuture.fireCompletionActions(AbstractAsyncFuture.java:195)atcom.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:136)atcom.ibm.io.async.ResultHandler.complete(ResultHandler.java:193)atcom.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:725)atcom.ibm.io.async.ResultHandler$2.run(ResultHandler.java:847)atcom.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1498)Causedby:java.io.IOException:AsyncIOoperationfailed,reason:RC:10053您的主机中的软件放弃了一个已建立的连接。atcom.ibm.io.async.AbstractAsyncChannel.multiIO(AbstractAsyncChannel.java:443)atcom.ibm.io.async.AsyncSocketChannelHelper.write(AsyncSocketChannelHelper.java:455)atcom.ibm.io.async.AsyncSocketChannelHelper.write(AsyncSocketChannelHelper.java:373)atcom.ibm.ws.tcp.channel.impl.AioSocketIOChannel.writeAIO(AioSocketIOChannel.java:281)atcom.ibm.ws.tcp.channel.impl.AioTCPWriteRequestContextImpl.processAsyncWriteRequest(AioTCPWriteRequestContextImpl.java:49)atcom.ibm.ws.tcp.channel.impl.TCPWriteRequestContextImpl.writeInternal(TCPWriteRequestContextImpl.java:166)atcom.ibm.ws.tcp.channel.impl.TCPWriteRequestContextImpl.write(TCPWriteRequestContextImpl.java:137)atcom.ibm.ws.http.channel.impl.HttpServiceContextImpl.asynchWrite(HttpServiceContextImpl.java:2363)atcom.ibm.ws.http.channel.impl.HttpServiceContextImpl.sendOutgoing(HttpServiceContextImpl.java:2152)atcom.ibm.ws.http.channel.inbound.impl.HttpInboundServiceContextImpl.sendResponseBody(HttpInboundServiceContextImpl.java:821)atcom.ibm.ws.webcontainer.channel.WCChannelLink.writeBufferAsynch(WCChannelLink.java:216)atcom.ibm.ws.webcontainer.channel.WCChannelLink.writeBuffer(WCChannelLink.java:174)atcom.ibm.ws.webcontainer.channel.WCCByteBufferOutputStream.flushWriteBuffer(WCCByteBufferOutputStream.java:292)atcom.ibm.ws.webcontainer.channel.WCCByteBufferOutputStream.checkWriteArray(WCCByteBufferOutputStream.java:277)atcom.ibm.ws.webcontainer.channel.WCCByteBufferOutputStream.write(WCCByteBufferOutputStream.java:84)...29more
解决方案
解决方案二:
类似情况有遇到。。我们的解决方法是多点+重试。。。
解决方案三:
引用1楼attilax的回复:
类似情况有遇到。。我们的解决方法是多点+重试。。。
能说的详细点嘛?