... Commit Level *ALL ist keineswegs die höchste Sperrstufe, sondern entspricht in ANSI Sprache dem repeatable read; diese Sperrrstufe ist in Programmen bequem für updates ohne Verwendung eines Cursors, Vorsicht ist angebracht bei Konstrukten wie select max(KundeId), das könnte die ganze Tabelle sperren.

Für interaktives SQL kommen in erster Linie in Betracht:
*CHG (entspricht read uncommited) zur Absicherung von Bulk updates
*CS (entspricht read commited) hiermit lassen sich konsistente Sichten während der Verarbeitung sicherstellen (allerdings nur, wenn die Anwendungen Commit verwenden, tut sie das nicht geht sowas nur im Batch)

BTW: der SQL Standard fordert serializable als default, was im DB2/400 so lausig implementiert ist, dass das mit RLA garnicht verwendbar ist!

D*B


Zitat Zitat von B.Hauser Beitrag anzeigen
Ich würde nicht gerade mit dem höchsten Commitment-Level *ALL anfangen, bei dem ich mir alles dicht mache, sondern mit dem niedersten UR (uncommitted read) oder *CHG. Ein unter Commit gesperrter Satz kann nur durch den nächsten Commit oder Rollback im gleichen Job wieder freigegeben werden, z.B. der RPG-Befehl UNLOCK oder die Erweiterung (N) ziehen nicht!

... "Schmalspur"-Journaling mit Gewährleistung der Transaktionssicherheit sollte man auf alle Fälle fahren.

Birgitta