Blockieren, Deadlockbedingungen oder andere SQL Server Probleme beim Herstellen einer Verbindung mit der BizTalkMsgBoxDb-Datenbank in BizTalk Server
Dieser Artikel enthält Informationen zum Beheben von SQL Server Problemen beim Herstellen einer Verbindung mit der BizTalkMsgBoxDb
Datenbank in Microsoft BizTalk Server.
Ursprüngliche Produktversion: BizTalk Server
Ursprüngliche KB-Nummer: 917845
Problembeschreibung
In BizTalk Server treten Beim Versuch, eine Verbindung mit der BizTalkMsgBoxDb
Datenbank herzustellen, Blockierungen, Deadlockbedingungen oder andere Probleme mit microsoft SQL Server auf.
Ursache
Dieses Problem kann auftreten, wenn mindestens eine der folgenden Bedingungen zutrifft:
- Die Option Automatische Create Statistik ist für die
BizTalkMsgBoxDb
Datenbank aktiviert. - Die Option Statistiken automatisch aktualisieren ist für die
BizTalkMsgBoxDb
Datenbank aktiviert. - Die Option max. Grad an Parallelität wird für die Datenbank oder die SQL-instance, die
BizTalkMsgBoxDb
diese Datenbank hostet, auf einen anderen Wert als 1 festgelegt. - Sie defragmentieren oder erstellen einen Index in der
BizTalkMsgBoxDb
Datenbank neu, wenn BizTalk Server Daten verarbeitet.
Lösung 1: Deaktivieren sie die Option "Statistiken automatisch Create" und die Option "Statistiken automatisch aktualisieren"
Um dieses Problem zu beheben, deaktivieren Sie die Optionen Statistiken automatisch Create und Statistiken automatisch aktualisieren für die BizTalkMsgBoxDb
Datenbank in SQL Server.
Lösung 2: Legen Sie die Option max. Grad an Parallelität auf 1 fest.
Um dieses Problem zu beheben, legen Sie die Option max. Grad an Parallelität in der BizTalkMsgBoxDb
Datenbankeinstellung oder im SQL-instance, der diese Datenbank hostet, auf 1 fest.
Lösung 3: Index nicht neu erstellen, wenn BizTalk Server Daten verarbeitet
Um dieses Problem zu beheben, führen Sie bts_RebuildIndexes
die gespeicherte Prozedur oder keinen SQL-Befehl aus, der einen Index in einer BizTalk Server Datenbank neu erstellt, wenn BizTalk Server Daten verarbeitet.
Hinweis
Das Defragmentieren eines Indexes in einer BizTalk Server Datenbank wird nicht unterstützt.
Die gespeicherte Prozedur bts_RebuildIndexes
Die einzige unterstützte Methode zum Neuerstellen eines Indexes in der BizTalkMsgBoxDb
Datenbank ist die Ausführung der gespeicherten bts_RebuildIndexes
Prozedur. Ab BizTalk Server 2006 können Sie die dtasp_RebuildIndexes
gespeicherte Prozedur ausführen, um Indizes in der BizTalkDTADb
Datenbank neu zu erstellen.
Die meisten BizTalk-Indizes sind GUID-basiert. Viele Tests haben gezeigt, dass GUID-basierte Indizes für BizTalk-spezifische Workloads besser funktionieren können als identitätsbasierte Indizes, solange die Tabellen nicht gescannt werden. Dies kann zu Einer Fragmentierung führen. Da daten jedoch in einem konstanten Tempo in die Tabellen ein- und aus den Tabellen fließen, kann die Fragmentierung keine Probleme verursachen. Wenn erwartet wird, dass sich viele Daten in der BizTalkMsgBox
Datenbank aufbauen, können Sie Indizes während geplanter Ausfallzeiten regelmäßig neu erstellen. Die gleichen Richtlinien gelten für die Nachverfolgungsdatenbank.
Sie können den SQL-Befehl DBCC DBREINDEX
verwenden, um einen Index in den anderen BizTalk Server Datenbanken neu zu erstellen. Ein Beispiel für die Verwendung des DBCC DBREINDEX
SQL-Befehls finden Sie, indem Sie mit der rechten Maustaste auf die bts_RebuildIndexes
gespeicherte Prozedur und dann auf Eigenschaften klicken.
Microsoft unterstützt die Neuerstellung von Datenbankindizes nur während BizTalk Server Downtime. Sie sollten alle Hostinstanzen und SQL Server-Agent beenden, bevor Sie einen Index neu erstellen. Wenn Sie die bts_RebuildIndexes
gespeicherte Prozedur in BizTalk Server 2006 und höheren Versionen ausführen, wird möglicherweise eine der folgenden Fehlermeldungen angezeigt:
Fehlermeldung 1
Msg 5239, Level 16, State 1, Procedure bts_RebuildIndexes, Line 4 Unable to process object ID 674101442 (Object 'TrackingData')
Dieser DbCC-Befehl (Database Consistency Checker) unterstützt diese Art von Objekt nicht.Fehlermeldung 2
Msg 5239, Level 16, State 1, Procedure bts_RebuildIndexes, Line 4 Unable to process object ID 722101613 (Object 'TrackingData'), da dieser DBCC-Befehl keine Objekte dieses Typs unterstützt.
Dieses Problem tritt auf, weil das TrackingData
Objekt eine Ansicht in BizTalk Server 2006 und höheren Versionen ist. Führen Sie zum Beheben dieses Problems die folgenden Schritte aus, und führen Sie dann die gespeicherte bts_RebuildIndexes
Prozedur aus:
Kommentieren Sie die folgende Zeile in der gespeicherten
bts_RebuildIndexes
Prozedur aus.DBCC DBREINDEX ('[dbo].[TrackingData]') WITH NO_INFOMSGS
Fügen Sie der gespeicherten Prozedur die
bts_RebuildIndexes
folgenden Zeilen hinzu.DBCC DBREINDEX ('[dbo].[TrackingData_0_0]') WITH NO_INFOMSGS DBCC DBREINDEX ('[dbo].[TrackingData_0_1]') WITH NO_INFOMSGS DBCC DBREINDEX ('[dbo].[TrackingData_0_2]') WITH NO_INFOMSGS DBCC DBREINDEX ('[dbo].[TrackingData_0_3]') WITH NO_INFOMSGS DBCC DBREINDEX ('[dbo].[TrackingData_1_0]') WITH NO_INFOMSGS DBCC DBREINDEX ('[dbo].[TrackingData_1_1]') WITH NO_INFOMSGS DBCC DBREINDEX ('[dbo].[TrackingData_1_2]') WITH NO_INFOMSGS DBCC DBREINDEX ('[dbo].[TrackingData_1_3]') WITH NO_INFOMSGS