Hi Leute,
zuerst die Konfiguration: IIS 5.1 unter Windows XP Pro, PHP 4.3.10., MySQL 5.0.24.
Ich habe folgendes Problem: ein Script von mir bereitet Daten aus einer MySQL-Tabelle mit ca. 6,6 Millionen Datensätzen auf. Es lief über ca. 3 Jahre hinweg problemlos und stabil (die > 6 Millionen Datensätze waren schon immer da), doch seit 1 Woche ca. bricht das Script bei Anfrage von bestimmten Daten einfach so ab, ohne eine einzige Fehlermeldung auszugeben. Die Daten sind Werte, die mit Datums-Zeiträumen verküpft sind. Unter bestimmten Bedingungen und bestimmten Datumszeiträumen tritt der Fehler auf...
- z.B. zeige mir alle Werte von Kunde X mit Datum bis zum 16.10.2010 >> funktioniert.
- z.B. zeige mir alle Werte von Kunde X mit Datum bis zum 17.10.2010 (oder später) >> funktioniert nicht mehr...
Eine MySQL-Fehlermeldung gibt es nicht, da ich nach allen Queries mir ein "echo" ausgeben lasse und das wird auch ausgegeben, d.h. die Queries laufen korrekt ab. Es kann also meiner Logik nach nur an der Aufbereitung der Daten liegen. Das interessante ist, dass es nicht an der Datenmenge liegen kann, denn wenn z.B. 1000 Datensätze gefunden werden, bricht es nicht ab, wenn der Fehler auftritt werden aber nur ca. 200 Datensätze bearbeitet...
Ich lese mir alle Daten über eine While-Schleife (mysql_fetch_array) in ein sehr großes Array und baue dann über eine foreach-Schleife eine Tabelle auf.
Das Script lief auf einem Webserver - dort bekam ich gar keine Fehlermeldung, sondern bloß eine nicht fertig aufgebaut HTML-Seite (es brach z.B. mitten im Aufbau einer Tabelle ab: <td width=" --> und aus). Nun habe ich das Problem auf meinem Entwicklungsrechner (IIS, WinXP) reproduziert und ich bekomme eine Fehlermeldung, dass php.exe einen Fehler verursacht hat: "Die Anweisung in "0x100b7dd9" verweist auf Speicher in "0x000000004". Der Vorgang "written" konnte nicht auf dem Speicher durchgeführt werden."
Nun meine Fragen:
- kann es sein, dass nicht-deklarierte Variablen den Fehler verursachen können? Wenn ich error_reporting auf "ALL" stelle, kommen zahlreiche Notices - die habe ich leider damals immer unterdrückt - nicht sehr edel, aber ich weiß, dass PHP alle Variablen, die nicht deklariert sind, automatisch auf "0" setzt. Aber vielleicht verursacht das den Fehler?
- kann man grob Gründe nennen, die php.exe abstürzen lassen?
Danke für jede Hilfe und jeden Tipp - habe keine Idee!
Greetz Skalu
zuerst die Konfiguration: IIS 5.1 unter Windows XP Pro, PHP 4.3.10., MySQL 5.0.24.
Ich habe folgendes Problem: ein Script von mir bereitet Daten aus einer MySQL-Tabelle mit ca. 6,6 Millionen Datensätzen auf. Es lief über ca. 3 Jahre hinweg problemlos und stabil (die > 6 Millionen Datensätze waren schon immer da), doch seit 1 Woche ca. bricht das Script bei Anfrage von bestimmten Daten einfach so ab, ohne eine einzige Fehlermeldung auszugeben. Die Daten sind Werte, die mit Datums-Zeiträumen verküpft sind. Unter bestimmten Bedingungen und bestimmten Datumszeiträumen tritt der Fehler auf...
- z.B. zeige mir alle Werte von Kunde X mit Datum bis zum 16.10.2010 >> funktioniert.
- z.B. zeige mir alle Werte von Kunde X mit Datum bis zum 17.10.2010 (oder später) >> funktioniert nicht mehr...
Eine MySQL-Fehlermeldung gibt es nicht, da ich nach allen Queries mir ein "echo" ausgeben lasse und das wird auch ausgegeben, d.h. die Queries laufen korrekt ab. Es kann also meiner Logik nach nur an der Aufbereitung der Daten liegen. Das interessante ist, dass es nicht an der Datenmenge liegen kann, denn wenn z.B. 1000 Datensätze gefunden werden, bricht es nicht ab, wenn der Fehler auftritt werden aber nur ca. 200 Datensätze bearbeitet...
Ich lese mir alle Daten über eine While-Schleife (mysql_fetch_array) in ein sehr großes Array und baue dann über eine foreach-Schleife eine Tabelle auf.
Das Script lief auf einem Webserver - dort bekam ich gar keine Fehlermeldung, sondern bloß eine nicht fertig aufgebaut HTML-Seite (es brach z.B. mitten im Aufbau einer Tabelle ab: <td width=" --> und aus). Nun habe ich das Problem auf meinem Entwicklungsrechner (IIS, WinXP) reproduziert und ich bekomme eine Fehlermeldung, dass php.exe einen Fehler verursacht hat: "Die Anweisung in "0x100b7dd9" verweist auf Speicher in "0x000000004". Der Vorgang "written" konnte nicht auf dem Speicher durchgeführt werden."
Nun meine Fragen:
- kann es sein, dass nicht-deklarierte Variablen den Fehler verursachen können? Wenn ich error_reporting auf "ALL" stelle, kommen zahlreiche Notices - die habe ich leider damals immer unterdrückt - nicht sehr edel, aber ich weiß, dass PHP alle Variablen, die nicht deklariert sind, automatisch auf "0" setzt. Aber vielleicht verursacht das den Fehler?
- kann man grob Gründe nennen, die php.exe abstürzen lassen?
Danke für jede Hilfe und jeden Tipp - habe keine Idee!
Greetz Skalu
Kommentar