pCloud Premium

Beiträge von Jenny_L1

    Problem mit Zeitstempel gelöst!

    der NAS Lieferant NETGEAR hat eine neue firmware rausgebracht.
    Damit ist das Problem mit dem Zeitstempel erledigt. (Thema "Zeitstempel ändert sich nicht" hier leider schon geschlosssen!)
    Das uralte QB4.5 war also nicht Schuld!

    timestamp fehlerhaft mit oplocks?

    verwende cifs, Zugriff von einer XP Workstation im DOS-Fenster per Samba auf die ReadyNAS NV+, oplocks = 1 (od. fake oplocks = 1)
    Die Datei wird lesend und schreibend geöffnet.

    alte qb4.5 Programme, die so bezüglich der Aktualisierung des Zeitstempels nicht mehr funktionieren:
    Variante A funktioniert nur, wenn die Datei max. 236 Byte groß ist, ab 237 Byte bleibt der Zeitstempel unverändert, obwohl sich der Dateiinhalt ändert!
    D. h. mit oplocks wird nicht richtig synchronisiert bzw. die Synchronisation ist irgendwie von der Größe der Datei bzw. der Variablenpuffer abhängig.

    prinzipieller Ablauf:
    Variante A)
    OPEN "nummer1" FOR RANDOM AS 1 LEN = 118 ' Datei read write für Direktzugriff öffnen
    FIELD 1, 6 AS nummer$ 'Platz für string-Variable in Direktzugriffs-Dateipuffer zuweisen
    LOCK 1, 1 ' Satz sperren
    GET 1, 1 'Satz holen - field-Variable erhält Dateiinhalt des 1. Satzes, Stelle 1-6
    LSET nummer$ = "123456" 'Variable neu belegen
    PUT 1, 1 'Variable in Datei zurückschreiben
    UNLOCK 1, 1 'Satz entsperren
    CLOSE 1 'Datei schließen
    end

    Variante B)
    Zeitstempel wird weder mit noch ohne oplocks aktualisiert!!!

    so wird der Zeitstempel auch nicht geändert
    DIM x AS STRING * 944 'variable als string-Variable vordefinieren
    OPEN "p:\programm\nummer1.tst" FOR RANDOM AS 1 LEN = 944 '' Datei read write für Direktzugriff öffnen
    LOCK 1 'sperren Datei
    GET 1, 1, x 'Variable mit Dateiinhalt füllen
    x = "123456" + MID$(x, 7) 'oder nur x="123456"
    PUT 1, 1, x 'Variable in Datei zurückschreiben
    UNLOCK 1 ' Datei entsperren
    CLOSE 1 'Datei schließen
    END

    Variante C)
    so wird der Zeitstempel auch mit oplocks aktualisiert:

    DIM x AS STRING * 236 '** (oder kleiner) **
    OPEN "p:\programm\nummer1.tst" FOR RANDOM AS 1 LEN = 236
    LOCK 1
    GET 1, 1, x
    x = "999999" + MID$(x, 7) 'oder nur x="999999"
    PUT 1, 1, x
    UNLOCK 1
    CLOSE 1
    END

    FAZIT:
    Nur wenn die Datei maximal 236 byte groß ist bzw. die Variablenlänge maximal 236 Byte groß ist wird der Zeitstempel aktualisiert, wird richtig synchronisiert, wenn (fake) oplock = 1 gesetzt ist.

    Ist das nicht sehr merkwürdig und kann das jemand nachprüfen?
    Hat noch jemand Qbasic(oder QB4.5) zur Verfügung und kann meinen Code auf der ReadyNAS testen?

    Muss nämlich noch alte Programme betreuen und da stecken fast 1 MIO Zeilen Code dahinter, die will ich nicht alle durchforsten und umschreiben müssen.

    magische 236 byte

    die Sache wird immer verrückter.

    Nun bin ich wieder ein Stück weitergekommen.
    Ich kann nun auch den Inhalt von Dateien die größer sind als 236 Bytes so ändern,
    dass der Timestamp "geändert am" - last modified date/time - sofort aktuell zurückgeschrieben wird, und zwar indem ich die Variablen, die ich verändere nicht in einer Field-Anweisung puffere,
    sondern als String zurückschreibe.
    Merkwürdigerweise stoße ich aber auch hier auf die Grenze von 236 Bytes bei der Variablenlänge.
    Sobald ich meine Stringvariable länger als 236 Zeichen definiere findet trotz Dateiänderung wieder keine Änderung des Timestamp statt.

    Es ist wirklich zum verrückt werden!

    timestamp problem with specific file size

    Systembeschreibung:

    Modell: ReadyNAS NV+ [X-RAID]
    Firmware: RAIDiator 4.1.6 [1.00a043] (-> debian kernel 2.6)
    Speicher: 256 MB [2.5-3-3-7]

    Samba-Version: 3.0.34

    Problembeschreibung:

    Kann mit einem XP-Client auf einer NAS (über SAMBA) per Programm in eine Datei schreiben,
    den Inhalt verändern und trotzdem bleibt der Zeitstempel unverändert.
    Weder das Änderungsdatum noch der letzte Zugriff werden aktualisiert.
    Wie gibt es das?

    *****************
    Konnte den timestamp-Fehler jetzt endlich eingrenzen:

    Egal mit welchem User ich eine Datei anlege, der timestamp wird auf meiner NAS bei einer kleinen Textdatei nur richtig aktualisiert,
    wenn sie maximal 236 Byte hat.

    Ist mir völlig unverständlich wie es so was geben kann...

    Muss eine neuere Samba-Version auf die ReadyNAS NV+???:confused:

    Systembeschreibung:

    Modell: ReadyNAS NV+ [X-RAID]
    Firmware: RAIDiator 4.1.6 [1.00a043] (-> debian kernel 2.6)
    Speicher: 256 MB [2.5-3-3-7]

    Samba-Version: 3.0.34

    Problembeschreibung:

    Kann mit einem XP-Client auf einer NAS (über SAMBA) per Programm in eine Datei schreiben,
    den Inhalt verändern und trotzdem bleibt der Zeitstempel unverändert.
    Weder das Änderungsdatum noch der letzte Zugriff werden aktualisiert.
    Wie gibt es das?

WindowsPower.de Artikel