webservice并发问题,求助

微笑生活LG 2013-11-29 03:21:26
WS服务发布在AIX上,在LR中性能测试过程中会出现几笔业务连接不上服务,异常如下:其中服务端CPU idle差不多还有20-30左右,同时有些业务响应时间达到20秒左右,服务端处理的业务逻辑比较简单。请问谁知道什么原因吗?万分感谢
javax.xml.ws.WebServiceException: Failed to access the WSDL at: http://172.16.9.18:8991/service/SOAPServer?wsdl. It failed with:
远程主机在超时周期内没有响应。.
at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.tryWithMex(RuntimeWSDLParser.java:163)
at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.parse(RuntimeWSDLParser.java:145)
at com.sun.xml.internal.ws.client.WSServiceDelegate.parseWSDL(WSServiceDelegate.java:247)
at com.sun.xml.internal.ws.client.WSServiceDelegate.<init>(WSServiceDelegate.java:210)
at com.sun.xml.internal.ws.client.WSServiceDelegate.<init>(WSServiceDelegate.java:158)
at com.sun.xml.internal.ws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:93)
at javax.xml.ws.Service.<init>(Service.java:67)
Caused by:
java.net.ConnectException: 远程主机在超时周期内没有响应。
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:412)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:271)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:258)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:376)
at java.net.Socket.connect(Socket.java:546)
at java.net.Socket.connect(Socket.java:495)
...全文
369 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
MiceRice 2013-11-29
  • 打赏
  • 举报
回复
引用 3 楼 lingang0607 的回复:
我是用jdk6发布服务的,WS服务不是一个请求就开启一个独立的线程吗,你说的线程池配置是在要到哪配置
对于直接发布服务的不熟悉,刚才查了下,大致说法是: 直接使用Endpoint.publish()方法发布的Web服务同一时刻只能处理一个请求(单线程)。 如果想要使用多线程机制发布服务,可使用Endpoint实例中的 void setExecutor(Executor executor) 方法设置一个线程池对象。
MiceRice 2013-11-29
  • 打赏
  • 举报
回复
引用 2 楼 lingang0607 的回复:
谢谢回答,WS服务不是一个请求就开启一个独立的线程吗 你说的线程池配置是在要到哪配置
是也不是。。。 创建线程需要时间的,所以中间件为了能更好的服务并发请求,会准备一个线程池,比如先圈养50个空闲线程发呆,那么如果来了50个请求,瞬间就可以完成了,而不用浪费不断创建线程的时间。如果超过50个请求同时来,则线程池可以根据配置不断增加工作线程进去。 当然,物极必反,如果来1W个请求,不能创建1W个线程吧?所以要给线程池配置最大容量。 具体去Google吧,打字也很慢的说。。。
微笑生活LG 2013-11-29
  • 打赏
  • 举报
回复
引用 1 楼 ldh911 的回复:
信息量太少,只能给出点大概建议: 1、检查线程池配置,是不是太少了; 2、输出线程堆栈,看是否大量线程集中在某些等待位置; 3、用JProfiler之类的分析工具,实时监控和分析每个类执行的时间开销,找出瓶颈点。
我是用jdk6发布服务的,WS服务不是一个请求就开启一个独立的线程吗,你说的线程池配置是在要到哪配置
微笑生活LG 2013-11-29
  • 打赏
  • 举报
回复
谢谢回答,WS服务不是一个请求就开启一个独立的线程吗 你说的线程池配置是在要到哪配置
MiceRice 2013-11-29
  • 打赏
  • 举报
回复
信息量太少,只能给出点大概建议: 1、检查线程池配置,是不是太少了; 2、输出线程堆栈,看是否大量线程集中在某些等待位置; 3、用JProfiler之类的分析工具,实时监控和分析每个类执行的时间开销,找出瓶颈点。

25,985

社区成员

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

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