We hebben een legacy server draaien waarop een PHP script via SOAP gevevens uit een database ophaalt op een andere server. Een paar dagen geleden had de server met het PHP script een volle disk, wat ondertussen is opgelost, maar sindsdien geeft de SOAP client een out of memory exception:
Het gaat hem om PHP versie 5.3.5 in IIS 7 op Windows Server 2008 R Enterprise.
Ik heb kunnen bevestigen dat de SOAP server zelf steeds de requests ontvangt en correct afhandelt. Het is dus uitsluitend een client error (zoals aangegeven in de stack trace). Het eigenaardige is dat het teruggegeven resultaat met SOAP nooit groter is dan 20MB.
Ik heb iemand met een gelijkaardig probleem gevonden, maar zijn uitleg/oplossing is niet echt duidelijk: https://stackoverflow.com...ory-size-using-soapclient. Ik heb in ieder geval geprobeerd de WSDL lokaal te laden, maar zonder resultaat.
Verder heb ik reeds geprobeerd de WSDL cache uit te zetten/clearen, maar ook dit zonder resultaat.
Een ander vermoeden is dat het mogelijks om een memory leak/bug gaat: https://bugs.php.net/bug.php?id=70900, maar dan zou ik verwachten dat de SoapClient faalt bij het aanroepen van de constructor, wat bij mij niet het geval is. Sommige SOAP requests slagen zelfs; het lijkt er op dat de client steeds op dezelfde query crasht.
code:
1
2
3
4
5
6
7
8
| SoapFault exception: [Client] Allowed memory size of 536870912 bytes exhausted (tried to allocate 41480192 bytes) in D:\inetpub\ftproot\wwwroot\dtliikennetietofi\commandline_tasks\libs\sqlcall_class_tip20_prod.php:62 Stack trace: #0 [internal function]: SoapClient->__doRequest('<?xml version="...', 'http://soap.mmn...', '', 1, 0) #1 D:\inetpub\ftproot\wwwroot\dtliikennetietofi\commandline_tasks\libs\sqlcall_class_tip20_prod.php(62): SoapClient->__call('GetDataFromDB', Array) #2 D:\inetpub\ftproot\wwwroot\dtliikennetietofi\commandline_tasks\import_fi_finnra_d2\get_live_events_from_tip.php(60): sqlcall->sqlrequest('select vvguid,s...') #3 D:\inetpub\ftproot\wwwroot\dtliikennetietofi\commandline_tasks\import_fi_finnra_d2\get_live_events_from_tip.php(9): give_events_from_db() #4 D:\inetpub\ftproot\wwwroot\dtliikennetietofi\commandline_tasks\import_fi_finnra_d2\index.php(59): include('D:\\inetpub\\ftpr...') #5 {main} |
Het gaat hem om PHP versie 5.3.5 in IIS 7 op Windows Server 2008 R Enterprise.
Ik heb kunnen bevestigen dat de SOAP server zelf steeds de requests ontvangt en correct afhandelt. Het is dus uitsluitend een client error (zoals aangegeven in de stack trace). Het eigenaardige is dat het teruggegeven resultaat met SOAP nooit groter is dan 20MB.
Ik heb iemand met een gelijkaardig probleem gevonden, maar zijn uitleg/oplossing is niet echt duidelijk: https://stackoverflow.com...ory-size-using-soapclient. Ik heb in ieder geval geprobeerd de WSDL lokaal te laden, maar zonder resultaat.
Verder heb ik reeds geprobeerd de WSDL cache uit te zetten/clearen, maar ook dit zonder resultaat.
Een ander vermoeden is dat het mogelijks om een memory leak/bug gaat: https://bugs.php.net/bug.php?id=70900, maar dan zou ik verwachten dat de SoapClient faalt bij het aanroepen van de constructor, wat bij mij niet het geval is. Sommige SOAP requests slagen zelfs; het lijkt er op dat de client steeds op dezelfde query crasht.
[ Voor 7% gewijzigd door gnoe93 op 02-09-2020 20:53 ]