Verwalten des Transaktionsumfangs

JDBC-Treiber herunterladen

Wenn Sie mit Transaktionen arbeiten, ist es wichtig, Ihre Transaktionen so kurz wie möglich zu halten. Der Standardmodus von „autocommit“, den Sie mithilfe der setAutoCommit-Methode aktivieren oder deaktivieren können, führt einen Commit für jede Aktion aus. Mit diesem Modus können die meisten Entwickler am einfachsten arbeiten.

Wenn Sie manuelle Transaktionen verwenden, stellen Sie sicher, dass im Code so schnell wie möglich ein Commit für die Transaktion ausgeführt wird. Durch das Offenhalten einer Transaktion wird blockiert, dass andere Benutzer auf die Daten zugreifen können. Es ist beispielsweise ein gutes Programmierverfahren, einen „rollback“-Aufruf im „catch“-Block und einen „commit“-Aufruf in einem finally-Block einzufügen. Diese Vorgehensweise ist jedoch abhängig vom Entwurf Ihrer Anwendung.

Halten Sie die Größe Ihrer Transaktionen klein, um die Parallelität zu verbessern. Wenn Sie beispielsweise eine manuelle Transaktion beginnen und in einer Tabelle mit 20.000 Zeilen 10.000 Zeilen ändern, wird die Hälfte der Tabelle für alle anderen Benutzer selbst dann blockiert, wenn sie die Daten nur lesen. Durch das Reduzieren der Änderungen auf 2.000 Zeilen bleiben 90 Prozent der Tabelle verfügbar.

Verwenden Sie außerdem unbedingt die Timeouteinstellung für Sperren, wenn bei Ihrer Anwendung Blockierprobleme zu erwarten sind. Sie können das Timeout mithilfe der setLockTimeout-Methode festlegen. Der Standardwert für das Sperrtimeout ist „–1“. Dies bedeutet, dass dadurch beim Warten auf die Sperre auf unbestimmte Zeit blockiert wird. Sie können das Sperrtimeout auf 30 Sekunden festlegen. So tritt bei der blockierten Verbindung nach 30 Sekunden ein Timeout auf, wenn eine Blockierung durch eine andere Verbindung vorliegt.

Weitere Informationen

Verbessern von Leistung und Zuverlässigkeit mit dem JDBC-Treiber