[Allegro] Avanti Lock-Mechanismus

Bernhard Eversberg ev at biblio.tu-bs.de
Mo Jun 25 11:04:16 CEST 2007


Roland Henkel schrieb:
> 
> wo gibt es detailierte und zusammenhängende Informationen über den 
> Lock-Mechanismus von Avanti?
> 
Hier:

> Wenn ich richtig verstanden habe, gibt es nur den Zustand "gesperrt" 
> oder "nicht gesperrt", jedoch ist der Prozess, der die Sperrung gerade
> gesperrt hat, nicht zu ermitteln. Oder doch?
> 
Nein.
> Bezieht sich die Sperrung nur auf das schreiben, so dass eine andere 
> Anwendung den Satz derweil lesen kann?
So ist es.

> Oder ist der betreffende Satz
> für andere Anwendungen zu diesem Zeitpunkt überhaupt nicht zugänglich?
>
Zum Lesen *immer*.

> 
> Wie verhalten sich  get edit/put und set lock/unlock zueinander?
"get edit" setzt sofort beim Lesen die Schreibsperre. Wenn "set lock"
gesagt wird, kann theoretisch zwischen "get" und "set lock" eine lange
Zeitspanne sein!

> Sind get edit ... put und get ... set lock ... put unlock äquivalent?
> 
Demzufolge also nicht.

> Kann man im Falle von get ... set lock ein put ausführen oder *muss* put 
> unlock verwendet werden? Sofern put möglich ist, bewirkt es die Freigabe 
>   des Satzes oder muss noch ein set unlock folgen?
> 
Es muss dann "put unlock" heißen, "set unlock" ist aber unnötig.

> Das heisst also, put unlock wirkt wie das put nach get edit. Wenn man 
> nur die set unlock-Doku liest, könnte das Mißverständnis entstehen, dass 
> der Satz nach dem Schreiben gesperrt bliebe.
> 
Nein, das gibt es nicht.

> Wie verhält sich update bei gesperrten Sätzen? Wird der betreffende Satz 
>  ausgelassen oder das Update im Ganzen nicht ausgeführt?
> 

Es wird so lange gewartet, bis der Satz frei wird. Man sieht dann die
Meldung, um welchen Satz es sich handelt. In einem anderen Fenster kann
man ihn freigeben, wenn man sicher ist, daß die Sperre unberechtigt
besteht. Dann läuft Update weiter.

MfG B.E.



Mehr Informationen über die Mailingliste Allegro