Klaus1: Exclusiver Zugriff bei Übertragung?

Beitrag lesen

Hallo,

Bei 5 Versuchen gibt es immer dieselbe Fehlermeldung, beim 6. Versuch klappt es.

Ich weiß ja nicht, wie die Daten auf den Rechner kommen - aber kann es sein, dass die Datei(en) zu dem Zeitpunkt des Scheiterns noch nicht fertig / erzeugt oder übertragen und deswegen exclusiv gelockt sind? Auch sowas kann nämlich dazu führen, dass die Datei dann existiert, passende Rechte gesetzt sind, der lesende Zugriff aber doch verweigert wird. Stichwort: flock.

Die Dateien werden per einfachen FTP vom SAP auf den Server übertragen.

Ein flock war auch meine erste Vermutung. Das würde erklären, warum es mal geht und mal nicht. Daher hatte ich das versucht zu reproduzieren:

  • Eine genügend lange Zeit (ca. 2 Minuten) warten zwischen Export vom SAP und Import vom Script.
  • SAP beendet (um eventuell offen gehaltene Dateien durch FTP auszuschließen)
  • Browser erst nach Export gestartet, auf Seite angemeldet und Import gestartet
  • Die Dateien über WinSCP zum Lesen geöffnet, kein Problem
  • Zwischen glob() und load into table ein Wait für 3 Sekunden eingebaut.

Die Zeit-Komponente meine ich so ausschließen zu können.

lsof hat bisher keine Auffälligkeiten gezeigt, allerdings haben bisher auch (mal wieder) alle Versuche beim ersten Mal funktioniert.

LG Klaus

  • Ein lsof /pfad/zur/datei könnte Aufklärung verschaffen.

Ausgaben sähen dann etwa so aus:

COMMAND  PID    USER   FD   TYPE DEVICE SIZE/OFF     NODE NAME
php     5099   foo    3rW  REG    8,5        6 25165834 /tmp/test