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, wenn Sie eine Verbindung mit der BizTalkMsgBoxDb
Datenbank in Microsoft BizTalk Server herstellen.
Originalproduktversion: BizTalk Server
Ursprüngliche KB-Nummer: 917845
Symptome
In BizTalk Server treten Blockierungs-, Deadlock-Bedingungen oder andere Microsoft SQL Server-Probleme auf, wenn Sie versuchen, eine Verbindung mit der BizTalkMsgBoxDb
Datenbank herzustellen.
Ursache
Dieses Problem kann auftreten, wenn mindestens eine der folgenden Bedingungen erfüllt ist:
- Die Option "Statistik automatisch erstellen" ist in der
BizTalkMsgBoxDb
Datenbank aktiviert. - Die Option "Statistik automatisch aktualisieren" ist in der
BizTalkMsgBoxDb
Datenbank aktiviert. - Die Option für den maximalen Grad der Parallelität wird auf einen anderen Wert als 1 für die
BizTalkMsgBoxDb
Datenbank oder die SQL-Instanz festgelegt, die diese Datenbank hostet. - Sie defragmentieren oder erstellen einen Index in der
BizTalkMsgBoxDb
Datenbank neu, wenn BizTalk Server Daten verarbeitet.
Lösung 1: Deaktivieren der Option "Statistik automatisch erstellen" und option "Statistik automatisch aktualisieren"
Um dieses Problem zu beheben, deaktivieren Sie die Optionen "Statistik automatisch erstellen" und " Statistik automatisch aktualisieren" in der BizTalkMsgBoxDb
Datenbank in SQL Server.
Auflösung 2: Festlegen des maximalen Grads der Parallelität auf 1
Um dieses Problem zu beheben, legen Sie in der BizTalkMsgBoxDb
Datenbankeinstellung oder der SQL-Instanz, die diese Datenbank hostet, die maximale Parallelitätsoption auf 1 fest.
Lösung 3: Erstellen Sie keinen Index neu, wenn BizTalk Server Daten verarbeitet
Um dieses Problem zu beheben, führen Sie die bts_RebuildIndexes
gespeicherte Prozedur oder keinen SQL-Befehl aus, der einen Index in einer BizTalk Server-Datenbank neu erstellt, wenn BizTalk Server Daten verarbeitet.
Notiz
Das Defragmentieren eines Indexes in einer BizTalk Server-Datenbank wird nicht unterstützt.
Die bts_RebuildIndexes gespeicherte Prozedur
Die einzige unterstützte Methode zum Neuerstellen eines Indexes in der BizTalkMsgBoxDb
Datenbank besteht darin, die bts_RebuildIndexes
gespeicherte Prozedur auszuführen. In BizTalk Server 2006 und höheren Versionen 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 besser als identitätsbasierte Indizes für BizTalk-spezifische Workloads funktionieren können, solange die Tabellen nicht gescannt werden. Dies kann zu Fragmentierung führen. Da daten jedoch in und aus den Tabellen in einem stetigen Tempo fließen, kann die Fragmentierung keine Probleme verursachen. Wenn viele Daten in der BizTalkMsgBox
Datenbank erstellt werden sollen, können Sie in regelmäßigen Abständen Indizes während geplanter Ausfallzeiten neu erstellen. Die gleichen Richtlinien gelten für die Nachverfolgungsdatenbank.
Sie können den DBCC DBREINDEX
SQL-Befehl verwenden, um einen Index in den anderen BizTalk Server-Datenbanken neu zu erstellen. Wenn Sie ein Beispiel für die Verwendung des DBCC DBREINDEX
SQL-Befehls verwenden möchten, klicken Sie mit der rechten Maustaste auf die bts_RebuildIndexes
gespeicherte Prozedur, und klicken Sie dann auf Eigenschaften.
Microsoft unterstützt nur die Neuerstellung von Datenbankindizes während der Ausfallzeit von BizTalk Server. 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, erhalten Sie möglicherweise eine der folgenden Fehlermeldungen:
Fehlermeldung 1
Msg 5239, Level 16, State 1, Procedure bts_RebuildIndexes, Line 4 Kann Objekt-ID nicht verarbeiten 674101442 (Objekt '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 Kann Objekt-ID 722101613 (Objekt 'TrackingData') nicht verarbeiten, da dieser DBCC-Befehl Objekte dieses Typs nicht unterstützt.
Dieses Problem tritt auf, da das TrackingData
Objekt eine Ansicht in BizTalk Server 2006 und höheren Versionen ist. Gehen Sie wie folgt vor, und führen Sie dann die bts_RebuildIndexes
gespeicherte Prozedur aus, um dieses Problem zu beheben:
Kommentieren Sie die folgende Zeile in der
bts_RebuildIndexes
gespeicherten Prozedur aus.DBCC DBREINDEX ('[dbo].[TrackingData]') WITH NO_INFOMSGS
Fügen Sie der gespeicherten Prozedur die folgenden Zeilen
bts_RebuildIndexes
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