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

Ausgedruckt am: 29.03.2024 um 08:03 Uhr

Mitglied: kaiand1
kaiand1 21.03.2014 um 07:15:31 Uhr
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.
Mitglied: EvilMoe
Lösung EvilMoe 21.03.2014, aktualisiert am 25.03.2014 um 15:01:09 Uhr
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));  
Mitglied: Jeeroy
Jeeroy 21.03.2014 um 08:04:30 Uhr
Goto Top
Ich werde es gleich mal ausprobieren, gebe dann Rückmeldung.
Danke!
Mitglied: LordGurke
LordGurke 21.03.2014 um 21:22:04 Uhr
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.
Mitglied: Jeeroy
Jeeroy 25.03.2014 um 15:00:01 Uhr
Goto Top
Scheinbar hat es dennoch geholfen, seiddem ist das Skript immer durch gelaufen.

Danke für eure Antworten.