Zitat Zitat von BenderD
Hallo,

Hängende Sätze an der Benutzer Transaktionsgrenze (EXFMT) verhindert man am einfachsten mit Commitment Controll, da gibt der Commit, bzw. Rollback alles frei.

Von den Keylosen Dateien ist dringendst abzuraten, damit verhindert man Normalisierung der Daten, da man ja ohne Key nix verknüpfen kann und man nagelt sich alle Türen für Modernisierung der Anwendung zu. Fazit: so programmiert man Altlasten, die nicht sanierbar sind. (BTW hier werden Zufalls Operationen nicht verhindert, sondeern geradezu herbei programmiert).
Noch ein paar weitere zusätzliche Anmerkungen:
Wenn man mit Commitment Control und RPG arbeitet, muss man wissen, das ein UNLOCK bzw. die Erweiterung (N) beim Chain oder Read einen Satz nicht freigibt, sondern immer nur ein Commit oder Rollback.

So schön die Commitment Control auch sein mag, sie erfordert ein zusätzliches Mass an Überlegung, nämlich wann und wo die Commits gesetzt werden. Da sind Programme schon Stunden gelaufen, haben alles blockiert, wurden abgebrochen und liefen nochmal solange bis sie beendet waren und haben dabei auch noch die Platte vollgeschrieben.
Und nur weil an irgend einer Stelle ein kleiner unschuldiger COMMIT vergessen wurde.

Der ganze Zauber mit Zugriff über relative Satz-Nr. ist spätestenfalls dann passé, wenn die Dateien mit SQL angelegt werden. SQL kennt kein REUSEDLT(*NO)! Allerdings kennt SQL (seit Release V5R2M0) ROWID oder IDENTITY COLUMNS über die eindeutige "Zähler" generiert werden können. Über beides kann ein Index gelegt werden, wodurch der Zugriff über "Relative Satz-Nr." simuliert werden kann.

Birgitta