Problem: PHP-SOAP Client -> JBoss EJB SOAP Webservice : Statful Beans passiviert?

gorefest

Erfahrenes Mitglied
Hallo,

wir haben seit kurzen folgendes Problem

Wir haben einen SOAP Client auf Basis des ZEND Frameworks welcher SOAP-Services aus einem JBoss konsumiert. Laut Herstellerangabe ist es wohl so, dass eine SOAP Abfrage nach Beendigung immer für den Abbau der Verbindung sorgt.

Wir haben seit kurzem Stateful Session Beans, die quasi sitzungsgebunden wie eine globale Variable für den Ablauf arbeiten sollen (enthalten sessionbezogene Informationen für eine Objektbasierte Security)

Im laufenden Betrieb werden nun dauernd Session Beans passiviert ... und zwar so viele, daß uns das Filesystem mangels Inodes auseinanderfliegt. Dies tritt nicht auf, wenn wir mit einem JAVA SOAP Client die Aktivitäten simulieren; daher vermuten wir, dass das Problem irgendwo in den Untiefen der PHP-Config liegt.

Wir vermuten, daß die Sockets zum JBoss nach Abarbeitung nicht geschlossen werden. Gibt es im PHP oder im Zendframework irgendwo eine Konfigurationseinstellung, mit der man dieses Verhalten beeinflussen kann?

Danke und Grüße
gore
 
Hi,

da Zend_Soap_Client_Common (welche in Zend_Soap_Client für die Connection zuständig ist) von SoapClient ableitet, kann man sich mal die Klasse anschauen. In den Comments steht was interessantes zum Thema "Keep-Alive". Da du nicht sagst, welches Transport-Protokoll verwendet wird, gehe ich jetzt mal von HTTP aus. Kannst du in den HTTP-Settings deines JBoss (benutzt ihr Jetty oder Tomcat, oder was ganz anderes?) mal nach schauen, ob da Keep-Alive gesetzt ist.

Du kannst natürlich die Zend_Soap_Client_Common erweitern und da versuchen, dein Soap-Client-Objekt zu terminieren.

Hier mal was zu persistenten HTTP-Verbindungen (und wie man sie vermeidet).
 
Zurück