Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Isolationslevel einstellen

Das Sperrkonzept, das die Konsistenz der bearbeiteten Daten gewährleistet, wird bei CALL-DML-Anwendungen folgendermaßen realisiert: Greift eine Wiedergewinnungsanweisung auf die Anwenderdaten einer CALL-DML-Tabelle zu, sperrt der SESAM/SQL-DBH den jeweiligen Satz solange gegen den Zugriff anderer Transaktionen, bis die ausführende Transaktion beendet oder zurückgesetzt ist. Abhängig vom Open-Modus wird eine shared bzw. exclusive Sperre gesetzt. Daneben erlaubt SESAM/SQL für einzelne CALL-DML-Anweisungen folgende Modifikationen des Sperrkonzepts:

  • Lesen ohne zu sperren (Read No Lock)

  • Ignorieren der Sperre (Read No Wait)

  • Lesen ohne zu sperren und Ignorieren der Sperre

Bei der Umstellung einer CALL-DML-Transaktion ist es ratsam, das Sperrverhalten möglichst nicht zu verändern. Liegt für die CALL-DML-Transaktion eine shared oder exclusive Sperre vor, sollten Sie vor Beginn der Transaktion mit der SQL-Anweisung SET TRANSACTION den Isolationslevel REPEATABLE READ einstellen.

Wurde für einzelne CALL-DML-Anweisungen das Sperrverhalten modifiziert, empfiehlt es sich, das Pragma ISOLATION LEVEL zu verwenden. Damit können Sie für die korrespondierende SQL-Anweisung gezielt einen Isolationslevel festlegen, der dem Sperrverhalten der jeweiligen CALL-DML-Anweisung entspricht:

  • „Lesen ohne zu sperren“ ersetzen Sie durch READ COMMITED

  • „Lesen ohne zu sperren und Ignorieren der Sperre“ ersetzen Sie durch READ UNCOMMITED

Nur für das Sperrverhalten „Ignorieren der Sperre“ kennt SESAM/SQL keinen entsprechenden Isolationslevel. Hier ist fallweise abzuwägen, ob der Isolationslevel READ COMMITED oder READ UNCOMMITED geeigneter ist.