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