Ankündigung

Einklappen
Keine Ankündigung bisher.

timeout bei soap client

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • dogel
    hat ein Thema erstellt timeout bei soap client.

    timeout bei soap client

    Nach zwei Tagen erfolgloser Suche bzw. Nicht-Funktionieren der gefundenen Lösungen erlaube ich mir, mein aktuelles Problem hier zu posten:

    Ich hole mir einmal täglich (cron) via SoapClient Daten von einem Webservice, was bis jetzt gut funktioniert hat und auch jetzt immer noch von zwei Testservern aus funktioniert, aber leider nicht mehr von jenem Server aus, auf den's ankommt: Nach etwas mehr als 90 Sekunden bricht das Skript immer ab. Ich schätze, dass ich das Timeout erhöhen muss, komme aber einfach nicht drauf, wie das geht.

    Hier ist mein Skript:
    PHP-Code:
    $client = new SoapClient("https://meine.url/blabla.asmx?wsdl");
    $result $client->cwlData(            
            array(
            
    key => 9,
            
    mData => array(alleDatensaetze)
            )
            ); 
    Dann folgt die Ausgabe bzw. Umwandlung und Abgleich mit meiner Datenbank
    Wie gesagt: Hat bis vor drei Tagen funktioniert - es werden aber immer mehr Daten, die dieser Webservice bereitstellt, und jetzt ist es offenbar zu viel.

    Ich habe (unter anderem) zwei Dinge versucht, alleine und in Kombination:

    PHP-Code:
    ini_set('default_socket_timeout'300); 
    für ein allgemeines Timeout, und ein Timeout in der Definition des SoapClient (wie vorgeschlagen auf stackoverflow.com):

    PHP-Code:
    $client = new SoapClient("https://meine.url/blabla.asmx?wsdl",
         array(
                    
    'connection_timeout'=>'300'
                
    ));
    etc
    Nützt aber alles nichts. Woran kann's liegen?
    Ich bin für jede Hilfe dankbar...

  • dogel
    antwortet
    PHP 5.3 Bug schuld?

    Ich habe gerade das hier gefunden.
    Auf dem betroffenenen Server läuft PHP 5.3.29 - und es gibt offenbar keine Möglichkeit, das zu ändern (ist einer der größten Provider im Land...).
    Ich fürchte, das ist der Grund dafür, dass meine Timeout-Zeiten vom Server ignoriert werden.
    Hmm - was tun?

    Einen Kommentar schreiben:


  • dogel
    antwortet
    Zitat von VPh Beitrag anzeigen
    Wie lange dauert denn die Ausführung auf den beiden Testservern?

    Greifen die auf den selben SoapServer zu?

    Wenn das Script auf den Testservern so läuft, bist du ja offenbar an der falschen Stelle wenn du jetzt auf einmal im Code etwas ändern musst.
    1. Unterschiedlich lange, in allen Fällen jedoch länger als die ca. 90-95 Sekunden, nach denen der "richtige" Server abbricht.

    2. Ja

    3. Sorry, verstehe ich nicht. (?)

    Noch einmal die Nachfrage: So wie ich die Timeout-Werte gesetzt habe, müsste das doch funktionieren, also zumindest tatsächlich das Timeout höher setzen, oder? Gibt's noch andere Timeout-Werte für Verarbeitungen, die man höher setzen könnte?

    Einen Kommentar schreiben:


  • VPh
    antwortet
    Wie lange dauert denn die Ausführung auf den beiden Testservern? Greifen die auf den selben SoapServer zu?

    Wenn das Script auf den Testservern so läuft, bist du ja offenbar an der falschen Stelle wenn du jetzt auf einmal im Code etwas ändern musst.

    Einen Kommentar schreiben:


  • dogel
    antwortet
    Zitat von lstegelitz Beitrag anzeigen
    Eine Timeouterhöhung nutzt nix, wenn die Verbindung nie zustande kommt... wenn dein Server nicht zum Ziel durchkommt, liegts entweder am Netzwerk oder an Restriktionen.
    Es laufen aber mit demselben Skript (mit anderen Parametern) vier andere Abfragen von Webservices am selben Server, die nach wie vor funktionieren. Die einzige von fünf Abfragen, die eben *nicht* funktioniert, ist jene mit dem größten Datenvolumen im Webservice.
    Wäre denn die Art, wie ich das Timeout geschrieben habe, prinzipiell in Ordnung? Wenn ja, muss es wohl an der Datenmenge liegen - gibt es dazu irgendwelche denkbaren Möglichkeiten (Buffergröße o.ä.)?

    Einen Kommentar schreiben:


  • lstegelitz
    antwortet
    Eine Timeouterhöhung nutzt nix, wenn die Verbindung nie zustande kommt... wenn dein Server nicht zum Ziel durchkommt, liegts entweder am Netzwerk oder an Restriktionen.

    Einen Kommentar schreiben:

Lädt...
X