Abgebrochenen Skripte werden nicht beendet

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

  • Abgebrochenen Skripte werden nicht beendet

    Hi zusammen,

    derzeit arbeite ich mit PHP 4.2.2 auf Windows 2000 mit Apache 1.3.22 und Oracle 8.1.7.

    Ich habe eine Liste von Links, die jeweils eine neue Seite öffnen und hierzu einen Datenbankzugriff benötigen (diese Zugriffen benötigen nicht viel Zeit, sondern nur Sekundenbruchteile). Wenn nun ein Benutzer mehrere dieser Links schnell nacheinander (ist möglich weil der Browser nicht so schnell ist, oder weil das Aktualisieren der Seite nicht schnell genug stattfindet) anwählt, passiert es, dass im Hintergrund (also im Webserver) die Skripte weiterlaufen und nur der generierte Inhalt des zuletzt angewählten Links angezeigt wird.

    Diese Skripte werden nun aber nicht beendet, sonder beanspruchen weiterhin Speicher, was sich dadurch bemerkbar macht, dass der Webserver immer mehr Speicher benötigt. Eine Folgeerscheinung ist, dass dadurch die Datenbankverbindungen nicht geschlossen werden. Dadurch passiert es dann, dass der Webserver irgendwann Speicherprobleme bekommt oder der Datenbankserver keine neuen Verbindungen mehr zuläßt.
    Die Skripte können nur durch das Beenden des Webservers entfernt werden. Die Datenbankverbindungen werden dann auch gleich entfernt.


    Mit der Option ignore_user_abort und register_shutdown_function(...) habe ich schon erfolglos versucht die Skripte zu beenden.

    Nun habe ich den Punkt erreicht an dem ich nicht mehr weiter komme und mich frage, ob das Problem vielleicht auch nicht direkt bei PHP liegt, sondern dass der Webserver nicht richtig konfiguriert ist, oder dass die von PHP verwendete DLL zur Datenbankanbindung dran schuld sind?

    Es wäre echt super, wenn jemand eine Lösung parat hätte.

    Schon mal ein Danke im Vorraus!

    Juergen

  • #2
    mysql_pconnect();

    Kommentar


    • #3
      Hi TobiaZ,
      aber ich sehe nicht wie mir das mit Oracle weiterhelfen kann!

      Juergen

      Kommentar


      • #4
        Ich bitte um Entschuldigung für meine ungefragte Wortmeldung, aber ich möchte hier an dieser Stelle eine Testfrage stellen dürfen:

        Welches Wort gehört nicht in die folgend angegebene Wortreihe?

        a) PHP
        b) Windows
        c) Apache
        d) Oracle

        Die richtige Antwort ist: b) Windows

        Mehr: http://www.php-resource.de/forum/sho...&threadid=4583

        Kommentar


        • #5
          Da war sie wohl wieder die leidige Diskussion über das beste Betriebssystem.

          Wenn Windows schon so ein Dreck ist, dann laß doch auch einfach keinen Internet Explorer mehr auf Deine Skripte los!!

          Die Frage bei wem, oder wo ich dann Informationen erhalten kann erübrigt sich dann wohl?

          Kommentar


          • #6
            Wieso soll Windows ein Dreck sein? Wenn Du einen Kleiderschrank mit einem Porsche transportierst und Dich dann jemand fragt warum Du keinen Kombi oder Kastenwagen für den Transport verwendest, fährst Du dem dann auch ins Gesicht?

            Es gibt überhaupt keinen Grund so agressiv zu reagieren. Es geht nicht um einen Religionskrieg, ganz bestimmt nicht. Ich bin davon ausgegangen, daß Du nachdem Du Profitools verwendest (Oracle) das nicht aus Jux machst sondern, dass Du dieses System entweder in einem Intranet oder im Internet produktiv stellst oder gestellt hast.

            Du scheinst die Infos nicht gelesen zu haben, denn ansonsten hättest Du nicht so reagieren können. Mit einem Webbrowser hat das ganze schon gar nichts zu tun. Für Windows Betriebsystem empfiehlt sich der Einsatz des IIS, weniger aber der Einsatz eines Apache - lies mal die Statements der Apache Entwickler. Die sind die allerletzten die kein Interesse haben würden Apache nicht auch vollwertig auf MS OS betreiben lassen zu können um IIS das Wasser abzugraben. Aber sie sind ehrlich und begründen auch, warum Apache suboptimal für MS Betriebsysteme ist.

            Wenn Du Windows verwendest ist es eben zielführender einen IIS zu betreiben. Aber es bleibt ganz Dir überlassen. Ich war mir der Tatsache nicht bewußt, an Deinem Weltbild gekratzt zu haben.

            Wie greifst Du auf Oracle zu?
            Über die Oracle native Funktionen oder über ODBC?
            Läuft die Oracle DB am selben Server?
            Wie stellst Du fest, daß im Hintergrund die Apache Threads laufen und nicht beendet werden?
            Werden persistent Connect zur DB aufgebaut?
            Mit welchen Optionen wurde PHP auf Deinem System kompiliert?

            Kommentar


            • #7
              Original geschrieben von hand
              Ich bitte um Entschuldigung für meine ungefragte Wortmeldung, aber ich möchte hier an dieser Stelle eine Testfrage stellen dürfen:

              Welches Wort gehört nicht in die folgend angegebene Wortreihe?

              a) PHP
              b) Windows
              c) Apache
              d) Oracle

              Die richtige Antwort ist: b) Windows

              Mehr: http://www.php-resource.de/forum/sho...&threadid=4583
              man könnte aber auch d meinen, alles andere kann sich ein normal Sterblicher auch leisten.
              Die Preise für Oracle Lizenzen sind ja nun wirklich nicht feierlich
              TBT

              Die zwei wichtigsten Regeln für eine berufliche Karriere:
              1. Verrate niemals alles was du weißt!


              PHP 2 AllPatrizier II Browsergame

              Kommentar

              Lädt...
              X