Show TOC Anfang des Inhaltsbereichs

Mögliche Sperrkonflikte  Dokument im Navigationsbaum lokalisieren

Falls das Datenbanksystem DB2 für OS/390 verwendet wird, müssen auch bei Nur-Lese-Operationen regelmäßig Commits ausgeführt werden, und zwar mindestens einmal pro Minute, um zwischenzeitlich angesammelte Sperren auf der Datenbank freizugeben.

Sperren werden hier nämlich nicht nur bei ändernden Transaktionen, sondern auch beim konsistenten Lesen von gepufferten Tabellen, Cluster- und Pool-Tabellen gesetzt. Im Datenbanksystem wird hierzu der Isolation Level “Read Stability” verwendet, welcher mit Hilfe von sogenannten “Shared Locks” die gleichzeitige Änderung von Tabelleninhalten verhindert.

Sperrkonflikte können neben Timeouts und Deadlocks auch Fehler bei DDL (Data Definition Language) Anweisungen wie CREATE, ALTER und DROP verursachen sowie die Geschwindigkeit der Online Reorganisation verlangsamen.

Sollte es erforderlich sein, die Position eines Cursors auch über den Commit-Zeitpunkt hinaus beizubehalten, kann die Option WITH HOLDder Anweisung OPEN CURSORverwendet werden.

Die Commits sollten als Datenbank-Commits ausgeführt werden. Hierfür kann wie folgt Native SQL verwendet werden:

IF sy-dbsys = 'DB2'.
  EXEC SQL.
    
COMMIT WORK
  ENDEXEC.
ENDIF.

Es empfiehlt sich, solche Datenbank-Commits in alle Programme mit langen Lese-Operationen einzubauen.

 

Ende des Inhaltsbereichs