1.5k Aufrufe
Gefragt in WindowsXP von
ystembeschreibung:

Modell: ReadyNAS NV+ [X-RAID]
Firmware: RAIDiator 4.1.6 [1.00a043]
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?

6 Antworten

0 Punkte
Beantwortet von
timestamp problem with specific file size

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+???
0 Punkte
Beantwortet von
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!
0 Punkte
Beantwortet von
Suche Forum für Cache-Problem

Welches andere Forum könnt ihr mir empfehlen, wenn mir hier keiner helfen kann?
0 Punkte
Beantwortet von Experte (6.4k Punkte)
Probiers doch mal in einem Samba-Forum, oder einem Forum Deines Nas'.
0 Punkte
Beantwortet von
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.
0 Punkte
Beantwortet von
QBasic Fehler schließe ich aus

Fehler in QB4.5 schließe ich aus, da dieselben Programme jahrelang fehlerfrei auf Novell Netware 3.12 gelaufen sind ohne irgendwelche Zeitstempelprobleme oder Updateprobleme!

Lokal funktioniert natürlich alles!

Laufwerksverknüpfungen auf der NAS existieren über "net use"
...