Noch eine Anmerkung:

Wird ein Satz unter Commit im Update-Modus eingelesen, bleibt er bis zum nächsten Commit oder Rollback gesperrt.
Kein anderer Job kann diesen Satz im Update-Modus einlesen.

Das heisst, dass auch Aktionen wie Read(N) oder UNLOCK den Satz nicht freigeben!

Weiterhin muss man beim STRCMTCTL aufpassen, der Unterlassungs-Wert für CMTSCOPE ist *ACTGRP.
Wird in einer ILE-Umgebung mit unterschiedlichen Aktivierungs-Gruppen gearbeitet, muss dies unbedingt berücksichtigt werden.

Überigens erfolgt beim Beenden eines Jobs oder einer Aktivierungs-Gruppe nur dann ein Rollback wenn der Job oder die Aktivierungs-Gruppe abnormal beendet wurden.
Bei einer normalen Beendigung z.B. über Signoff werden die Änderungen festgeschrieben.

Andreas:
wenn Du in Deinem Beispiel mit Commitment-Steuerung arbeitest, kommt ein weiterer Benutzer nicht an den Satz solange er gesperrt ist.
Wenn also Benutzer1 einen Rollback macht, bekommt Benutzer 2 wieder die gleiche aktuelle Nr.

Ich würde allerdings die Nummerkreis-Datei nicht unter Commit stellen, um Wartezeiten, die durch den LOCK verursacht werden zu vermeiden.
(Ich nehme an, dass du den Satz solange sperren möchtest, bis die ganze Aktion z.B. alle Buchungen durchgeführt sind)
Sicher, wenn es im Nummerkreis keine Lücken geben darf muss man diese Lösung vielleicht in Betracht ziehen.

Birgitta