jeeroy
Goto Top

PHP Fatal Error (Maximum execution time)

Schönen guten Morgen.

Mithilfe von Soap greife ich auf die Dell Datenbank zu, um zu prüfen, ob die eingegebene Seriennummer korrekt ist.

$DELL_URL = "http://xserv.dell.com/services/assetservice.asmx?WSDL";  
$soap = new SoapClient($DELL_URL,array('soap_version'   => SOAP_1_2, 'proxy_host' => "HOST", 'proxy_port' => PORT, 'connection_timeout' => 15));  

$dell_response = $soap->GetAssetInformation(
			array(   
				"guid" => "11111111-1111-1111-1111-111111111111",           
				"applicationName" => "AssetService",           
				"serviceTags" => $dell_service_tag      
				) 
		);

Bei der Zeile:

$soap = new SoapClient($DELL_URL,array('soap_version'   => SOAP_1_2, 'proxy_host' => "HOST", 'proxy_port' => PORT, 'connection_timeout' => 15));  

kommt es vereinzelt vor, dass das Skript einen Fatalen Fehler erhält (Maximum execution time).

Ist es möglich, dies zu unterbinden, oder den Fatalen Fehler abzufangen und die Seite zu aktualisieren / eine Meldung mit echo auszugeben, bevor der Fehler greift?

Freue mich auf Antworten und Danke für eure Hilfe.

Content-Key: 233264

Url: https://administrator.de/contentid/233264

Printed on: April 16, 2024 at 11:04 o'clock

Member: kaiand1
kaiand1 Mar 21, 2014 at 06:15:31 (UTC)
Goto Top
Moin
Nun die normale Ausführbare Zeit ist 30 Sekunden und diese erreicht dein Script.
Du kannst entweder die Max Zeit erhöhen, dem Script mehr Zeit zuweisen oder halt den Connect Timout verringern.
Member: EvilMoe
Solution EvilMoe Mar 21, 2014, updated at Mar 25, 2014 at 14:01:09 (UTC)
Goto Top
Hallo,

versuche es mal mit:
$soap = @new SoapClient($DELL_URL,array('soap_version'   => SOAP_1_2, 'proxy_host' => "HOST", 'proxy_port' => PORT, 'connection_timeout' => 15));  
Member: Jeeroy
Jeeroy Mar 21, 2014 at 07:04:30 (UTC)
Goto Top
Ich werde es gleich mal ausprobieren, gebe dann Rückmeldung.
Danke!
Member: LordGurke
LordGurke Mar 21, 2014 at 20:22:04 (UTC)
Goto Top
Zitat von @EvilMoe:

Hallo,

versuche es mal mit:
> $soap = @new SoapClient($DELL_URL,array('soap_version'   => SOAP_1_2, 'proxy_host' => "HOST",  
> 'proxy_port' => PORT, 'connection_timeout' => 15));  
> 
> 

Aaaaaahhh!!!
Das @ behebt nicht den Fehler sondern unterdrückt bloß, dass der Fehler gemeldet wird. Das Script wird trotzdem zusammenkacheln...
Eigentlich sollte PHP aber die Zeit, die es für Stream-Operationen braucht nicht auf diese Zeit anrechnen. Netzwerk-EA sollte eigentlich auch darunter fallen...


@to:
Fatale Fehler lassen sich nicht abfangen, das geht nur mit Benutzerdefinierten Fehlern (E_USER_ERROR) oder Exceptions.
Muss dieser Aufruf zwingend als Webseite erfolgen? Falls nein, wäre es ggf. eine Möglichkeit, dieses Script über die Konsole laufen zu lassen. Da gäbe es dann überhaupt kein Zeitlimit.
Member: Jeeroy
Jeeroy Mar 25, 2014 at 14:00:01 (UTC)
Goto Top
Scheinbar hat es dennoch geholfen, seiddem ist das Skript immer durch gelaufen.

Danke für eure Antworten.