SOAP wsdl caching default?


(Nic Hubbard) #1

Is SOAP wsdl caching on or off by default? I ask because I have users that have reported turning on a soap function, but a request tells them that the function is not enabled. This leaves me to believe that it is cached.


Looking at my php info, I see:


    Soap Client => enabled
    Soap Server => enabled
    
    Directive => Local Value => Master Value
    soap.wsdl_cache => 1 => 1
    soap.wsdl_cache_dir => /tmp => /tmp
    soap.wsdl_cache_enabled => 1 => 1
    soap.wsdl_cache_limit => 5 => 5
    soap.wsdl_cache_ttl => 86400 => 86400


But, in the php code for if seems to be set to 0.

Any hints on what is really happening here? Do I need to bust the cache somehow by appending a random string to the end of my wsdl url?

(Benjamin Pearson) #2

[quote]
Is SOAP wsdl caching on or off by default? I ask because I have users that have reported turning on a soap function, but a request tells them that the function is not enabled. This leaves me to believe that it is cached.



Looking at my php info, I see:


    Soap Client => enabled
    Soap Server => enabled
    
    Directive => Local Value => Master Value
    soap.wsdl_cache => 1 => 1
    soap.wsdl_cache_dir => /tmp => /tmp
    soap.wsdl_cache_enabled => 1 => 1
    soap.wsdl_cache_limit => 5 => 5
    soap.wsdl_cache_ttl => 86400 => 86400


But, in the php code for if seems to be set to 0.

Any hints on what is really happening here? Do I need to bust the cache somehow by appending a random string to the end of my wsdl url?
[/quote]

Check for an ini_set command that changes soap.wsdl_cache option in the web_services packages.

(Edison Wang) #3

Note that, you will have to turn off WSDL caching for the soap client, not on soap server.
That is whoever makes the soap request will have to turn off local wsdl caching.



This PHP code to turn off wsdl caching, is simply ini set the setting to 0:

ini_set("soap.wsdl_cache_enabled", "0");





On the SOAP server side, you can also double check if Squid caching or any caching mechanism that caches the WSDL file output.


(Benjamin Pearson) #4

[quote]
Note that, you will have to turn off WSDL caching for the soap client, not on soap server.

That is whoever makes the soap request will have to turn off local wsdl caching.



This PHP code to turn off wsdl caching, is simply ini set the setting to 0:

ini_set("soap.wsdl_cache_enabled", "0");





On the SOAP server side, you can also double check if Squid caching or any caching mechanism that caches the WSDL file output.

[/quote]



soap.wsdl_cache setting applies to the soap server as well. 0 - for none, 1 - for disk, 2 - for memory, 3 - for both.


(Nic Hubbard) #5

Thanks guys.