Announcement

Collapse
No announcement yet.

too many open files / Das System kann die Datei nicht öffnen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • too many open files / Das System kann die Datei nicht öffnen

    Hallo,
    Ich versuche auf einem Netzwerklaufwerk Dateien in einem Ordner einschliesslich Unterordner zu sperren. Ziel ist es, die Dateien vor dem (schreibendem) Zugriff anderer Benutzer zu sperren, diese Dateien zu sichern und danach wieder freizugeben.
    Zum sperren gehe ich so vor:
    Code:
    für alle Dateiname do
     begin
         handle:=windows.CreateFile(PChar(DateiName), GENERIC_READ ,
                        FILE_SHARE_READ, nil, OPEN_EXISTING, 0, 0);
         if handle<>INVALID_HANDLE_VALUE then
            b:=windows.LockFile(h,0,0,0,0);
         if B then 
            SperreErfolgreich.... Weiter
          else
            SperreNichtErfolgreich..... Meldung
     end;
    Wenn ich die Routine auf einem lokalen Laufwerk anwende funktioniert sie mit mehr als 10.000 Dateien. Auf einem Verzeichnis im Netzwerk (Windows XP pro) ist bei ca. 2550 Dateien schluss. Der Fehler kommt bei Createfile: Error 4 -> ERROR_TOO_MANY_OPEN_FILES -> Das System kann die Datei nicht öffnen.
    Auch auf meinem eigenen Computer: Der Pfad auf lokalem Laufwerk angesprochen (F:\) funktioniert. F:\ Freigegeben und gemappt als T: -> T sperren geht nicht.
    Betriebssystem Windows XP pro

    Gibt es eine Beschränkung für die max. Anzahl geöffneter Dateien auf Netzwerklaufwerken? Gilt die vielleicht nur für XP und geht nicht auf Serversystemen? Die stundenlange Suche hat ergeben, dass es bei Terminlaserver 2000 mal Beschränkungen auf 2048 Filehandles gab, aber ich habe nichts für aktuelle Systeme gefunden. Es könnte irgendwas mit SMB zu tun haben.
    Wenn es eine Grenze gibt, wäre schön zu wissen wo. Dann brauche ich nicht weiter zu suchen. Oder kann man die Grenze umgehen? Oder gibt es eine andere Möglichkeit ein Verzeichnis incl. Subs zu Sperren um es zu sichern?

    wer kann helfen?
    cu Uwe
Working...
X