私のサーバーは XFire を使用して Web サービス要求を処理しています
しかし、その CPU は 100% または時には 1000% まで使用されていました
サーバーを再起動し、いくつかのリクエストの後、この奇妙な問題が再び現れました
スレッド ダンプをスキャンすると、CPU を占有するスレッドは次のようになります。
httpWorkerThread-18028-39" daemon prio=10 tid=0xa0832800 nid=0x1d89 runnable [0x99e69000]
java.lang.Thread.State: RUNNABLE
at com.sun.xml.stream.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:892)
at com.sun.xml.stream.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:362)
at com.sun.xml.stream.XMLReaderImpl.next(XMLReaderImpl.java:568)
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)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:753)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:846)
XFire が XML ファイルを解析しているように見えますが、時間が経つにつれて、スレッド ダンプはまったく変わらず、スレッドは無限ループのようになりました。
しかし、私は XFire の経験が十分でなく、問題の原因がわかりません。
私はよくグーグルして、現象が私のものと同じであるこのトピックを見つけます
ただし、このトピックは、JVM のバグであり、JDK6 の代わりに JDK5 を使用している可能性があることを示唆しています。
誰もそのような問題に遭遇しましたか? この問題の原因とその修正方法を教えてください。
ありがとう。