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

  • 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...


  • #2
    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.
    Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

    Kommentar


    • #3
      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.ä.)?

      Kommentar


      • #4
        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.
        Relax, you're doing fine.
        RTFM | php.de Wissenssammlung | Datenbankindizes | Dateien in der DB?

        Kommentar


        • #5
          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?

          Kommentar


          • #6
            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?

            Kommentar

            Lädt...
            X