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 SQL Server Probleme 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 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 eine oder mehrere der folgenden Bedingungen erfüllt sind:
- Die Option "Statistiken automatisch erstellen" ist in der
BizTalkMsgBoxDbDatenbank aktiviert. - Die Option "Statistik automatisch aktualisieren" ist in der
BizTalkMsgBoxDbDatenbank aktiviert. - Die Option für den maximalen Grad der Parallelität wird auf einen anderen Wert als 1 auf dem Computer festgelegt, auf dem SQL Server ausgeführt wird und auf dem die Datenbank gehostet
BizTalkMsgBoxDbwird. - Sie defragmentieren oder erstellen einen Index in der
BizTalkMsgBoxDbDatenbank neu, wenn BizTalk Server Daten verarbeitet.
Auflösung 1: Deaktivieren der Option "Statistiken automatisch erstellen" und der Option "Statistik automatisch aktualisieren"
Um dieses Problem zu beheben, deaktivieren Sie die Option "Statistiken automatisch erstellen" und die Option "Statistik automatisch aktualisieren" in der BizTalkMsgBoxDb Datenbank in SQL Server.
Auflösung 2: Festlegen des maximalen Parallelitätsgrads auf 1
Um dieses Problem zu beheben, legen Sie die Option für den maximalen Grad an Parallelität auf 1 auf dem Computer fest, auf dem SQL Server ausgeführt wird.
Auflösung 3: Einen Index nicht neu erstellen, wenn BizTalk Server Daten verarbeitet
Führen Sie zum Beheben dieses Problems nicht die gespeicherte Prozedur oder einen SQL Befehl aus, der bts_RebuildIndexes 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 bts_RebuildIndexes gespeicherte Prozedur
Die einzige unterstützte Methode zum Neuerstellen eines Indexes in der BizTalkMsgBoxDb Datenbank ist das Ausführen der bts_RebuildIndexes gespeicherten Prozedur. Unter BizTalk Server 2006 und höher können Sie die gespeicherte Prozedur ausführen, dtasp_RebuildIndexes um Indizes in der Datenbank neu zu BizTalkDTADb 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 Fragmentierung führen. Da Daten jedoch in einem beständigen Tempo in die Tabellen fließen und aus ihnen herausfließen, verursacht die Fragmentierung möglicherweise keine Probleme. Wenn erwartet wird, dass viele Daten in der Datenbank erstellt BizTalkMsgBox werden, können Sie Indizes während geplanter Ausfallzeiten regelmäßig neu erstellen. Für die Nachverfolgungsdatenbank gelten dieselben Richtlinien.
Sie können den DBCC DBREINDEX Befehl SQL verwenden, um einen Index in den anderen BizTalk Server Datenbanken neu zu erstellen. For an example of how to use the DBCC DBREINDEX SQL command, right-click the bts_RebuildIndexes stored procedure, and then click Properties.
Microsoft unterstützt nur das Neuerstellen von Datenbankindizes während BizTalk Server Ausfallzeit. 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öher 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 Datenbankkonsistenzprüfungsbefehl (DBCC) 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'), because this DBCC command does not support objects of this type.
Dieses Problem tritt auf, da es sich bei dem Objekt um TrackingData eine Ansicht in BizTalk Server 2006 und höher handelt. Führen Sie die folgenden Schritte aus, und führen Sie dann die gespeicherte Prozedur aus, um dieses Problem zu bts_RebuildIndexes beheben:
Kommentieren Sie die folgende Zeile in der
bts_RebuildIndexesgespeicherten Prozedur aus.DBCC DBREINDEX ('[dbo].[TrackingData]') WITH NO_INFOMSGSFügen Sie der gespeicherten Prozedur die folgenden Zeilen
bts_RebuildIndexeshinzu.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