Avanti-W: Registereintraege verschwinden nicht

Sibylle Koczian Sibylle.Koczian at bibliothek.uni-augsburg.de
Mo Jun 10 09:15:15 CEST 2002


Lieber Herr Eversberg,

At 14:20 07.06.02 +0200, you wrote:

>Denn: avanti muss, bevor der Satz bearbeitet wird, ihn ausdruecklich sperren.
>Das macht "set lock" und das macht auch "get edit". Dabei werden die
>derzeit gueltigen Schluessel ermittelt! Nur dann koennen beim Speichern
>die nicht mehr gueltigen erkannt und geloescht werden.

Aha! Dann ist aber dieser Text ein bisschen irrefuehrend (aus der 
Online-Hilfe fuer Avanti, zu haben von "put" aus beim Stichwort 
Synchronisation):

"Synchronisation der Schreibvorgänge:

Beim Ändern von Datensätzen im Netzwerk entscheidet der Synchronisation 
aller gleichzeitigen Schreibvorgänge über die Konformität der Datenbank. 
Avanti bietet hier zwei Arbeitsweisen an:

1.      Der Server kann zwar Sätze, die bearbeitet werden sollen, expliziet 
sperren (get edit) und nach Abspeicherung wieder freigeben. In einem 
Client/Server-Betrieb ist das aber nicht unbedingt die beste Lösung. Es ist 
ja ganz ungewiß, ob ein Satz, der einem Client zum Ändern übergeben wurde, 
überhaupt jemals zurück kommt! (Unter PRESTO ist das kein Problem, denn der 
Editor ist ja ins Programm eingebaut, so daß es immer genau weiß, wann der 
Satz wieder freigegeben werden kann.)

2.      Zusätzlich wurde für den Server noch ein interner Mechanismus 
realisiert. Dieser beruht auf dem Änderungs-Zeitstempel, der mit dem Befehl 
ce in der CFG definiert wird. Das Änderungsdatum muß mit dem Parameter 
„D17“ (=Länge 17 Zeichen) in der CFG um die Uhrzeit erweitert werden. Die 
Überprüfung erfolgt automatisch:

·       Der Server übergibt einen Satz an einen Client zum Bearbeiten, 
sperrt den Satz aber nicht.
·       Das Clientprogramm darf dem Nutzer alle Änderungen erlauben, bis 
auf die Kategorie mit dem Änderungsdatum.
·       Der Satz wird zurückgeschickt, und zwar mit unverändertem 
Änderungszeitstempel.
·       Der Server vergleicht diesen mit dem im Originalsatz enthaltenen. 
Ist der Zeitstempel im geänderten Satz nicht älter als im Originalsatz, 
darf gespeichert werden. Ist dagegen die Zeit im Originalsatz jünger, heißt 
dies, daß inzwischen jemand anders den Satz geändert hat - er war ja nicht 
gesperrt! Dann wird der Änderungsantrag zurückgewiesen, der Client darüber 
informiert ("Sorry, record nnn was changed by somebody else"). Erst beim 
Abspeichern aktualisiert der Server den Zeitstempel. Gesperrt wird der Satz 
nur während dieser Vergleichsaktion, damit nicht etwa ein gleichzeitig 
zugreifendes PRESTO sich in dem Moment den Satz greift und ihn hinterher 
mit anderen Änderungen zurückspeichert."

Ich habe das immer so interpretiert, als sei "get edit" nicht mehr noetig. 
Und dass die Aenderungen ja gespeichert werden, hat mich in dieser falschen 
Annahme bestaerkt (war urspruenglich ohne das "edit" ja nicht der Fall). 
Darauf, dass ohne explizites Sperren im Job zwar Aenderungen gespeichert, 
nicht aber Schluessel korrigiert werden, kommt man nicht so ohne weiteres 
von allein.

Ich hoffe, eine Korrektur der Hilfe faellt unter M 1 (uebrigens ist die 
Mail zu den M-Stufen und H-Faktoren widerspruechlich: oben faengt es mit M 
1 an, unten ist von M 0 die Rede).

Vielen Dank und beste Gruesse, Koczian


Dr. Sibylle Koczian
Universitaetsbibliothek , Abt. Naturwiss.
D-86135 Augsburg

Tel.: (0821) 598-2400, Fax : (0821) 598-2410
e-mail : Sibylle.Koczian at Bibliothek.Uni-Augsburg.DE





Mehr Informationen über die Mailingliste Allegro