java webservice偶尔会无响应,急~~~

PowPro 2013-04-30 08:22:12
我用jax-ws开发了一个java webservice。无论是部署在jboss还是tomcat上面,都出现同样的问题,每天都平均会有10次左右的无法响应的错误。由于生产环境的要求,程序是部署在windows2008上,数据库采用了sqlserver2008。各位看一下大概是什么原因。这个webservice的访问量比较高,一天有9000多单的访问次数。每次访问大致会涉及到写数据库、备份本地客户提交的文件、调用另一个webservice以获取回应数据。
00:20:38,531 SEVERE [javax.enterprise.resource.webservices.jaxws.servlet.http] (http--10.124.80.11-8088-4) caught throwable: javax.xml.ws.WebServiceException: javax.xml.stream.XMLStreamException: ClientAbortException: java.net.SocketException: Software caused connection abort: socket write error
at com.sun.xml.ws.encoding.StreamSOAPCodec.encode(StreamSOAPCodec.java:111) [webservices-rt.jar:1.0]
at com.sun.xml.ws.encoding.SOAPBindingCodec.encode(SOAPBindingCodec.java:258) [webservices-rt.jar:1.0]
at com.sun.xml.ws.transport.http.HttpAdapter.encodePacket(HttpAdapter.java:320) [webservices-rt.jar:1.0]
at com.sun.xml.ws.transport.http.HttpAdapter.access$100(HttpAdapter.java:93) [webservices-rt.jar:1.0]
at com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:454) [webservices-rt.jar:1.0]
at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:244) [webservices-rt.jar:1.0]
at com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:135) [webservices-rt.jar:1.0]
at com.sun.xml.ws.transport.http.servlet.WSServletDelegate.doGet(WSServletDelegate.java:129) [webservices-rt.jar:1.0]
at com.sun.xml.ws.transport.http.servlet.WSServletDelegate.doPost(WSServletDelegate.java:160) [webservices-rt.jar:1.0]
at com.sun.xml.ws.transport.http.servlet.WSServlet.doPost(WSServlet.java:75) [webservices-rt.jar:1.0]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:754) [jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161) [jbossweb-7.0.13.Final.jar:]
at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:153) [jboss-as-web-7.1.1.Final.jar:7.1.1.Final]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368) [jbossweb-7.0.13.Final.jar:]
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) [jbossweb-7.0.13.Final.jar:]
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:671) [jbossweb-7.0.13.Final.jar:]
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:930) [jbossweb-7.0.13.Final.jar:]
at java.lang.Thread.run(Unknown Source) [rt.jar:1.7.0_17]
Caused by: javax.xml.stream.XMLStreamException: ClientAbortException: java.net.SocketException: Software caused connection abort: socket write error
at com.sun.xml.stream.writers.XMLStreamWriterImpl.flush(XMLStreamWriterImpl.java:402) [webservices-rt.jar:1.0]
at com.sun.xml.ws.encoding.StreamSOAPCodec.encode(StreamSOAPCodec.java:109) [webservices-rt.jar:1.0]
... 24 more
Caused by: ClientAbortException: java.net.SocketException: Software caused connection abort: socket write error
at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:352) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:316) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.connector.CoyoteOutputStream.flush(CoyoteOutputStream.java:98) [jbossweb-7.0.13.Final.jar:]
at com.sun.xml.stream.writers.UTF8OutputStreamWriter.flush(UTF8OutputStreamWriter.java:141) [webservices-rt.jar:1.0]
at com.sun.xml.stream.writers.XMLStreamWriterImpl.flush(XMLStreamWriterImpl.java:400) [webservices-rt.jar:1.0]
... 25 more
Caused by: java.net.SocketException: Software caused connection abort: socket write error
at java.net.SocketOutputStream.socketWrite0(Native Method) [rt.jar:1.7.0_17]
at java.net.SocketOutputStream.socketWrite(Unknown Source) [rt.jar:1.7.0_17]
at java.net.SocketOutputStream.write(Unknown Source) [rt.jar:1.7.0_17]
at org.apache.coyote.http11.InternalOutputBuffer.realWriteBytes(InternalOutputBuffer.java:724) [jbossweb-7.0.13.Final.jar:]
at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:449) [jbossweb-7.0.13.Final.jar:]
at org.apache.coyote.http11.InternalOutputBuffer.flush(InternalOutputBuffer.java:299) [jbossweb-7.0.13.Final.jar:]
at org.apache.coyote.http11.Http11Processor.action(Http11Processor.java:1027) [jbossweb-7.0.13.Final.jar:]
at org.apache.coyote.Response.action(Response.java:190) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:347) [jbossweb-7.0.13.Final.jar:]
... 29 more

程序无响应后,过几秒种再次访问仍然可以响应。只是偶尔访问一次失败,几分钟后日志报了这样的错误。而且特别奇怪的事,出错并不是在高峰的时候,将近一半的出错是在凌晨半夜没什么数据的情况下
...全文
373 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
xianwangkai 2013-05-01
  • 打赏
  • 举报
回复
Caused by: java.net.SocketException: Software caused connection abort: socket write error。 9000次的访问应该不是很大,会出现连接问题一般这么几个情况分析: 1、客户端请求的超时时间小于服务端的处理并且返回响应时间。 2、web服务端操作排队过多,把排队的、并发处理以外的请求拒绝掉了。 3、IO过大,引起负载过高,响应时间加长。 4、要么就是针对特殊客户端有特殊处理引起的。 5、最后无处分析:那可能出现网络的问题。 针对你的问题,我怀疑是第一种情况,因为你的一次请求业务好像比较多,容易引起业务处理时间比较长,你可以试一试?或者第四种情况。
微观技术 2013-04-30
  • 打赏
  • 举报
回复
好象是客户端与服务端的连接有问题,你可以将有问题的客户端ip收集,看下有没有规律

25,985

社区成员

发帖
与我相关
我的任务
社区描述
高性能WEB开发
社区管理员
  • 高性能WEB开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧