1 Reply Latest reply on Sep 20, 2005 10:02 AM by thomas.diesler

    Web Serivce Client Performance?

    anders.hedstrom

      Hi,

      I've a SLSB that acts as a web service client. The web service my SLSB is calling returns a list of data fetched from an SAP system. The performance is really bad, the call to the web service takes about 20 seconds with certain in parameters. The SOAP message returned from the web service is 377 kb in size.

      I've done some investigation to figure out where the bottleneck is, here is my investigation and conclusion:

      Code in my SLSB:

      ReturnType r = sei.wsMethodName(input);


      It takes about 20 seconds for this method to return.


      I've written a stand-alone SAAJ client that just calls the same web service with the same input.

      Code from the SA SAAJ client:
      SOAPMessage replyMsg = conn.call(reqMsg,url);


      It takes about 7 seconds for this method to return.


      I've written a stand-alone client that executes the same function in SAP using the native SAP Connector (JCO), with the same input

      Code from the native SA client:

      jcoConn.execute(function);


      It takes about 600 ms for this method to return


      Conclusion:

      The SAP call takes about 600 ms to execute. The work done in the remote web service I'm calling takes about 6,5 seconds to execute. The work done by JBoss (reading the SOAP message, mapping to Java etc) takes about 13 seconds.... Am I doing something wrong? Is there any way that I can speed up the work done by JBoss?

      Greatfull for any help!

      Cheers

      Anders

        • 1. Re: Web Serivce Client Performance?
          thomas.diesler

          This is probably due to how Axis does the marshalling from java to the request message. Maybe you could discover the exact performance issue in Axis using a profiler or something.

          What interests me even more are the numbers you can get with our new stack available in jboss-head.