Hallo Forum,
wir möchten unsere Nummernkreisdatei auf Journaling umstellen. Da wir in der Richtung absolut unvorbelastet durch Wissen jeder Art sind lieber vorab ein paar Fragen nach Stolpersteinen:
Zenario 1: user01 greift auf Satz 1 zu

Key = "AUFTRAG"
AktNum = 4711

Begsr GetNum ;
CHAIN NumKey NumKreis ;
if %found(NumKreis01) ;
RtnNum = ActNum ;
ActNum = Actnum + 1 ;
update NumKreis ;
EndIf ;
EndSr ;

User02 greift mit einem anderen Job auf den satz zu und erhält 4712.
Wenn nun bei User01 alles gut geht wird die Nummer im Beispiel auf 4712 gesetzt und mit commit fortgeschrieben.
User02 hat den satz auf 4713 geändert. Alles gut soweit.

Bei fehler, wie ist die Reihenfolge?
Kommt es bei User01 zu einem Rollback statt commit NACHDEM User02 sein commit abgesetzt hat:

1. Geht das überhaupt? Oder bleibt der Satz durch User01 bis zum commit gesperrt?
2. Steht in der Datei nach User01 rollback 4713 oder 4711?
3. Wie verhindere ich "fehlende Nummern (zB Rechnungsnummern "sollten" keine Lücken aufweisen mit dieser Technik?
Danke für alle Antworten