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 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 auf dem Computer festgelegt, auf dem SQL Server ausgeführt wird und auf dem die Datenbank gehostet BizTalkMsgBoxDb wird.
  • Sie defragmentieren oder erstellen einen Index in der BizTalkMsgBoxDb Datenbank 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:

  1. Kommentieren Sie die folgende Zeile in der bts_RebuildIndexes gespeicherten Prozedur aus.

    DBCC DBREINDEX ('[dbo].[TrackingData]') WITH NO_INFOMSGS
    
  2. 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