2010-11-08 4 views
1

J'ai un SOAP WS auquel j'accède via SoapClient de PHP (avec le Soap Client de Zend Framework). Le service Web fonctionne via https, et les appels prennent un certain temps (quelques minutes chacun).SSL: Service SOAP avec un tuyau SOAPClient pour PHP

Je passe 4 appels, l'un après l'autre, via la même instance de SoapClient. Cependant, après un certain fonctionnement de temps, et à un point aléatoire (non AllWays sur le même appel de méthode) Je vois l'erreur suivante:

Warning: SoapClient::__doRequest(): SSL: Broken pipe in pathtomyfile

Répondre

3

Je ne sais toujours pas pourquoi cela est arrivé, mais j'ai quelques extra aperçu et une solution de contournement.

Le problème se pose lorsque, après un appel SOAP qui a duré très longtemps, j'essaie d'utiliser la même connexion pour une autre requête. Le premier va réussir, mais sur le nouvel appel, l'erreur augmente. Cela signifie que tant que vous n'avez pas besoin que la connexion soit la même (ce qui est généralement le cas sur les services Web SOAP), vous pouvez simplement réinitialiser la connexion entre les appels. Pas l'utilisation la plus efficace des ressources, mais fonctionnera parfaitement.

2

Je trouve que l'ajout du

'keep_alive' => false 
Option

à

new SoapClient($url, $options) 

a résolu le problème pour moi.

Il y a un rapport de bogue connexe ici mais très peu de documentation à part ceci: https://bugs.php.net/bug.php?id=60329

Questions connexes