Hi,

In discussion over performance improvements I also propose share tricks
which could be used in own code, without touching SOAP (or other ) libs.
Often it gives more result, that asking to improve other's code. And only
once you are sure that you used everything...

So, we had a client side application, which often accesses single SOAP
service, with a set of 5-6 different calls, working from many threads at the
same time.

Our first design was simple - when you need to make a call, just create a
new one. However creation of a Call is not so light - further it will also
require to create additional DocumentBuilder, and SOAPMappingRegistry, both
not so light.

So we cached a Call, one per thread, and also cached a SOAPMappingRegistry,
one per all Calls.  SOAPMappingRegistry created in the static method, and
filled with a set of types necessary for all calls we need (so , when used
with a particular Call is used, registry really have more mapping than
needed). When new call is created , we set up an shared registry with a
call.setSOAPMappingRegistry func. Another problem, that even in the one
thread, we my need to do different calls, so solution is simple too - set up
function name and parameters just before doing a call with functions       

        call.setMethodName(methodName);   
        call.setParams(params);

Could not provide what performance we achieved with this , but for sure it
was rather good. 

Best regards,
Pavel

--
To unsubscribe, e-mail:   <mailto:soap-dev-unsubscribe@;xml.apache.org>
For additional commands, e-mail: <mailto:soap-dev-help@;xml.apache.org>

Reply via email to