Durch die meisten der IBM Db2-Parameter, die Sie zur Speicherung einer Geodatabase festlegen, werden Sperren beeinflusst.
Deadlocks kommen, je nach Client-Anwendung und Datenbankkonfiguration, nicht selten vor. Beachten Sie, dass das Problem durch stark verzweigte State-Lineages verschärft werden kann. Db2 stellt Optimierungsparameter zur Verfügung, mit denen die Größe der Sperrliste (LOCKLIST), der Höchstprozentsatz an Sperren in einer Anwendung (MAXLOCKS), die Zeit, die eine Anforderung auf eine Sperre wartet (LOCKTIMEOUT), das Häufigkeitsintervall für die Erkennung von Deadlocks (DLCHKTIME) und das Deadlock-Rollback-Verhalten (DB2LOCK_TO_RB) gesteuert werden können.
Der Standardwert für "LOCKLIST" und "MAXLOCKS" lautet "AUTOMATIC". Dieser Wert aktiviert die Parameter für die automatische Optimierung. So kann die Db2-Speicheroptimierung die Größe der Speicherressourcen unter verschiedenen Speicherkonsumenten dynamisch aufteilen. Die automatische Optimierung findet nur statt, wenn die automatische Optimierung des Speichers für die Datenbank aktiviert wird (SELF_TUNING_MEM=ON).
Um die Einstellungen der Sperrliste anzuzeigen, geben Sie den folgenden Befehl ein:
db2 get db cfg
Max storage for lock list (4KB) (LOCKLIST) = 50
Interval for checking deadlock (ms) (DLCHKTIME) = 10000
Percent. of lock lists per application (MAXLOCKS) = 22
Lock time out (sec) (LOCKTIMEOUT) = -1
Max number of active applications (MAXAPPLS) = AUTOMATIC
- LOCKTIMEOUT
Um die Zeit festzulegen, die Db2 beim Versuch, eine Sperre zu erhalten, wartet, ändern Sie "LOCKTIMEOUT".
- DLCHKTIME
Um die Zeit zwischen den Prüfungen zur Erkennung von Deadlocks einzustellen, passen Sie "DLCHKTIME" an.
- DB2LOCK_TO_RB
"DB2LOCK_TO_RB" legt das Verhalten der Transaktion fest, wenn die Zeit, die auf eine Sperre gewartet wird, "LOCKTIMEOUT" überschreitet. Standardmäßig setzt ein Sperr-Timeout die Anforderungstransaktion zurück. Das Standardverhalten sollte für Geodatabases in Db2 ausreichend sein.
Verwenden Sie "db2set" für den Registrierungswert "DB2LOCK_TO_RB", und suchen Sie nach "DB2LOCK_TO_RB=".
Weitere Informationen zum Festlegen dieser Parameter finden Sie in der Db2-Dokumentation im IBM Knowledge Center.