xfire web service导致cpu100%问题分析
来源:互联网 发布:如何雇佣网络水军 编辑:程序博客网 时间:2024/04/19 23:49
最近遇到一个遗留系统出现CPU经常出现100%的情况,且必须重启应用服务器才能解决,
线程的dump为:
"http-9099-Processor167" daemon prio=10 tid=0x00007f7fbc07e000 nid=0x9506 runnable [0x00007f7f248c1000]
java.lang.Thread.State: RUNNABLE
at com.sun.xml.stream.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:876)
at com.sun.xml.stream.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:353)
at com.sun.xml.stream.XMLReaderImpl.next(XMLReaderImpl.java:557)
at org.codehaus.xfire.soap.handler.ReadHeadersHandler.invoke(ReadHeadersHandler.java:44)
at org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)
at org.codehaus.xfire.transport.DefaultEndpoint.onReceive(DefaultEndpoint.java:64)
at org.codehaus.xfire.transport.AbstractChannel.receive(AbstractChannel.java:38)
at org.codehaus.xfire.transport.http.XFireServletController.invoke(XFireServletController.java:304)
at org.codehaus.xfire.transport.http.XFireServletController.doService(XFireServletController.java:129)
at org.codehaus.xfire.transport.http.XFireServlet.doPost(XFireServlet.java:116)
报错来自由xfire编写的web service,具体为对XML的解析,com.sun.xml.stream这个包是由sun的sjsxp包提供的具体实现,网上有类似的BUG报出,于是组了一段soap请求串,并将xml串故意写错,用jmeter压了一下,cpu很快上升到100%,并无法释放,看来原因是此包产生,换用其它实现,如:wstx,问题解决了。
初步结论为在网络传输中如果soap请求如果不完整,或者其它解析xml过程中抛了异常,sjsxp会导致cpu100%,并不释放。
看来sun出品的也不一定靠谱,注:sjsxp是很久以前编写的
特此记录
- xfire web service导致cpu100%问题分析
- jvm cpu100% 问题分析
- xfire-web service -client
- xfire建立 Web Service
- Web Service之XFire
- XFire Web Service验证方案
- Spring+XFire开发[web service]
- XFire开发Web Service 实例
- 莫名其妙 错误 xfire web service
- XFire+Spring发布Web Service
- XFire Web Service验证方案
- MyEclipse XFire开发web service
- XFire Web Service的HelloWorld
- MyEclipse XFire开发web service
- 并发场景下HashMap死循环导致CPU100%的问题
- svchost.exe 导致 CPU100%
- XFire初识-使用Eclipse开发Web Service
- xfire--开发WEB SERVICE的又一利器
- 15.UIDynamic 物理引擎
- 学习google编程风格
- 使用include标签引入布局
- 精华阅读第 9 期 |滴滴出行 iOS 客户端架构演进之路
- Android startActivity源码详解
- xfire web service导致cpu100%问题分析
- LintCode 删除链表中等于给定值val的所有节点
- Android 截屏并保存
- css 长单词不换行溢出容器的解决方法 word-wrap与word-break
- centos配置mutt跟msmtp发送邮件
- phpredis中文手册——《redis中文手册》 php版
- 16其他UI内容
- FragmentTabhost学习笔记
- Genymotion出现”Unable to load VirtualBox engine“的问题解决