Hallo zusammen,
mein Problem wird schon im PHP Manual angesprochen, ich finde aber keine wirkliche Lösung dafür.
Folgendes Szenario:
Ich habe 2 Webserver mit lokalen Datenbanken, die auch von außen nicht angesprochen werden können. Trotzdem gibt es eine Situation, da muss ich Daten vom Server-A auslesen und Server-B muss diese verarbeiten.
Dazu liest Server-A die DB aus und erstellt eine ASCII Datei. Diese speichert er dann mit FTP Zugangsdaten und fopen() bzw. dann fwrite() auf Server-B. Dieser kann die dann auslesen und damit machen was er will. :)
Sooo, jetzt kommt das Problem, das ich nicht einfach eine Datei speichern kann, da bricht das speichern einfach mitten in der ASCII Datei ab.
Jetzt habe Server-A so programmiert das er eben viele viele kleine Dateien an Server-B schickt. Klappt vom Prinzip, aber in letzter Zeit immer wieder mit Abbrüchen, also setze ich die Anzahl der Einträge pro Datei runter.
Nur jetzt sind wir schon bei so kleinen Dateien und wenn die Datei mehr als ca. 4-5KB hat, bricht er einfach mitten im schreiben ab oder schreibt die Datei gar nicht erst auf Server-B, die fehlt dann einfach, doch Server-A gibt keine Fehlermeldung aus, für ihn ist alles übertragen und fwrite() gibt auch die volle Dateilänge als Rückgabewert an.
Das tolle ist, folgendes sagt das PHP Handbuch dazu:
Zitat:
Hinweis:
Das Schreiben in einen Netzwerkstream kann enden, bevor die gesamte Zeichenkette geschrieben wurde.
|
Und das schreiben von Server-A auf Server-B werte ich jetzt mal als Netzwerkstream. Wie dem auch sei, was kann ich tun um das Problem zu beheben?
Danke und Gruß
Doc