We’ve noticed internally that requests to the xmlsoap.org domain seem to be rather slow today ( a quick test to http://schemas.xmlsoap.org/soap/encoding/ is taking 30 seconds to respond as I write this post ). This has impact on anyone using SOAP web services, especially those from SugarCRM instances, as pulling in the WSDL file is taking much longer than normal.
There’s a few different ways to help this situation out
- Make sure your SOAP client is caching the WSDL file. Since the WSDL file for you Sugar instance doesn’t change, set this to a pretty high number ( the PHP SoapClient defaults to 24 hours ). This will make it so that you’ll only take one hit for the slowness, and afterwards the WSDL file will be read instantly from cache. The PHP SoapClient has WSDL caching on by default; if you are using NuSOAP, check out this blog post for a quick howto.
- Use your SOAP client in non-WSDL mode. The downside of this is if your SOAP client let’s you call the remote methods as if they were native ( for example, calling $soapClient->login($user_auth) to login to your Sugar instance instead of $soapClient->__soapCall(‘login’,array($user_auth)) ) you’ll have to revert back to the direct method of calling them using the call method of your SOAP client. This may or may not be a big deal for depending upon how you have wrote your SOAP code.
And if you are looking for an even bigger speedup, move to using the REST web services interface introduced in Sugar 5.5 for much higher performance.