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