1 Reply Latest reply on Nov 17, 2009 9:30 AM by jmvivo

    The CXF service does not respond in a high-load test

    jmvivo

      Hi

       

      I found a problem when i was doing a high-load test to a cxf-bc Soap service.

      This is the test environment:

       

      Service:

      • Fuse ESB 3.4.0.4 with out-of-the-box configuration.

      • Added cxf-wsdl-first example deployed.

       

      Test (JMeter in other machine):

      • Thread Group:

      • Threads: 10

      • Loop: 500

      • "WebService(SOAP) Request" (The same request that do "examples/cxf-wsdl-first/client.html")This works fine to me but if I increment the Thread count to 20 something strange happens: after 100 request (or less) , the service accept the request but no response is send.

       

      There is not log message on console or log files. The JVM appears is in correct state (I can connect with JConsole but there is no CPU consume and no Heap problems).

       

      There is no way to restore the service activity until the FUSE ESB restarts.

       

      Does anyone have found the same problem? Why there is no exception and service doesn't respond?

       

      Thanks in advance.

       

      Cheers

      Chema.

       

      Edited by: jmvivo on Nov 17, 2009 11:30 AM

        • 1. Re: The CXF service does not respond in a high-load test
          jmvivo

          A little bit more information:

           

          When the service stops appears this trace in the log file (many times):

           

          15:03:15,571 | WARN  | 4359219@qtp0-155 | PhaseInterceptorChain    | he.cxf.common.logging.LogUtils  345 | Interceptor has thrown exception, unwinding now

          org.apache.cxf.interceptor.Fault: java.lang.InterruptedException

                  at org.apache.servicemix.cxfbc.CxfBcConsumer$JbiInvokerInterceptor.handleMessage(CxfBcConsumer.java:767)

                  at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:236)

                  at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:104)

                  at org.apache.servicemix.cxfbc.CxfBcConsumer$JbiChainInitiationObserver.onMessage(CxfBcConsumer.java:644)

                  at org.apache.cxf.transport.http_jetty.JettyHTTPDestination.serviceRequest(JettyHTTPDestination.java:302)

                  at org.apache.cxf.transport.http_jetty.JettyHTTPDestination.doService(JettyHTTPDestination.java:266)

                  at org.apache.cxf.transport.http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java:70)

                  at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)

                  at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)

                  at org.mortbay.jetty.handler.HandlerList.handle(HandlerList.java:49)

                  at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)

                  at org.mortbay.jetty.Server.handle(Server.java:324)

                  at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:534)

                  at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:879)

                  at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:741)

                  at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:213)

                  at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:403)

                  at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)

                  at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:522)

          Caused by: javax.jbi.messaging.MessagingException: java.lang.InterruptedException

                  at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync(DeliveryChannelImpl.java:511)

                  at org.apache.servicemix.common.EndpointDeliveryChannel.sendSync(EndpointDeliveryChannel.java:101)

                  at org.apache.servicemix.cxfbc.CxfBcConsumer$JbiInvokerInterceptor.handleMessage(CxfBcConsumer.java:737)

                  ... 18 more

          Caused by: java.lang.InterruptedException

                  at java.lang.Object.wait(Native Method)

                  at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.waitForExchange(DeliveryChannelImpl.java:712)

                  at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync(DeliveryChannelImpl.java:473)

                  ... 20 more