Re: [Allegro] Lock/unlock-Mechanismen (war: update.job + optsget.inc überarbeitet)

Thomas Berger ThB at Gymel.com
Di Jan 17 11:22:07 CET 2012


Lieber Herr Eger, lieber Herr Eversberg,

>>> Es ist schon schlimm genug, dass ich kein "put" ausführen kann, ohne
>>> damit den Lock-Status des Datensatzes zurückzusetzen.
>>>
>> Das könnte optional geändert werden, vielleicht mit "put lock".
> 
> Gute Idee. Dann dürfte auch das Laden eines nächsten Satzes
> keine Freigabe bewirken (vergl. xget.rtf#get edit).

Ich glaube, dass a99 und acon wirklich wissen muessen, ob eine
Datensatz- oder Datenbanksperre vom aktuellen Prozess bewirkt
wurde oder nicht. Dann kann ein "put" auch einfach so
implementiert werden, dass hinterher der Zustand dieser beiden
Sperren exakt so ist wie vorher:

1.) Besitze *ich* die Sperre(n) bereits? --ja--> Speichern ohne
        |                        Ruecksicht, alle Sperren belassen
      nein
        |
2.) fehlende Sperre(n) erlangen  --klappt--> Speichern, erlangte
        |                                    Sperren ruecksetzen
    klappt fuer mindestens eine nicht
        |
3.) Erlangte Sperren ruecksetzen, Aktion als verweigert quittieren


Fuer den Job-Programmierer gaelte dann die Ansage, dass ein
explizities Sperren per "set rec lock" oder "set tbl lock"
stets ein explizites Gegenstueck benoetigt.

Man kann dann ueber Abkuerzungen wie "get edit" (also "sperren und
einlesen") nachdenken [eine ziemlich wichtige Sache, denn erst nach
einem "get" bin ich in der komforatblen Position, ein "lock" *formulieren*
zu koennen, strenggenommen muss ich danach ein erneutes "get" veranstalten,
um "sauber" zu bleiben], ob naemlich "put" und "undo" optionale
Argumente spendiert bekommen sollen, die *im Erfolgsfall* die
gleichzeitige Ruecknahme von Satz- und/oder Datenbanksperren bewirken.

viele Gruesse
Thomas Berger



Mehr Informationen über die Mailingliste Allegro