Deadlock-Fehler mit Microsoft SQL Server
Produkt
B2B by Practice
Symptom
Bei paralleler Verarbeitung von mehreren Nachrichten kommt es zu Datenbankfehler:
com.microsoft.sqlserver.jdbc.SQLServerException: Transaction (Process ID 62) was deadlocked on lock | communication buffer resources with another process and has been chosen as the deadlock victim. Rerun the transaction.
Fehler
Fehlerhafte Konfiguration der Datenbank-Einstellungen “max degree of parallelism” und “cost threshold for parallelism”
Lösung
Einstellungen für die Parallelisierung überprüfen und anpassen Added: Microsoft Empfehlung hierzu siehe: https://docs.microsoft.com/de-de/sql/database-engine/configure-windows/configure-the-max-degree-of-parallelism-server-configuration-option?view=sql-server-ver15#guidelines
Umsetzung
Die Einstellungen überprüfen mit sp_configure
Einstellungen von DB Administratoren anpassen lassen. Mit diesen Werten gab es den Fehler nicht mehr:
max degree of parallelism = 3
cost threshold for parallelism = 25
Desweiteren ist folgender DB-Modus zu verwenden: READ COMMITTED SNAPSHOT
.
Interne Referenz: ZEP-30299