Blocage, conditions d’interblocage ou autres problèmes de SQL Server lorsque vous vous connectez à la base de données BizTalkMsgBoxDb dans BizTalk Server
Cet article fournit des informations sur la résolution des problèmes SQL Server lorsque vous vous connectez à la BizTalkMsgBoxDb
base de données dans Microsoft BizTalk Server.
Version d’origine du produit : BizTalk Server
Numéro de la base de connaissances d’origine : 917845
Symptômes
Dans BizTalk Server, vous rencontrez des problèmes de blocage, d’interblocage ou d’autres problèmes microsoft SQL Server lorsque vous essayez de vous connecter à la BizTalkMsgBoxDb
base de données.
Cause
Ce problème peut se produire si une ou plusieurs des conditions suivantes sont remplies :
-
L’option Statistiques Create automatique est activée sur la
BizTalkMsgBoxDb
base de données. -
L’option Mettre à jour automatiquement les statistiques est activée sur la
BizTalkMsgBoxDb
base de données. -
L’option degré maximal de parallélisme est définie sur une valeur autre que 1 pour la
BizTalkMsgBoxDb
base de données ou l’instance SQL hébergeant cette base de données. - Vous défragmentez ou régénérez un index dans la
BizTalkMsgBoxDb
base de données quand BizTalk Server traite des données.
Résolution 1 : Désactiver l’option Statistiques Create automatique et l’option Mettre à jour automatiquement les statistiques
Pour résoudre ce problème, désactivez les options Statistiques Create automatique et Mise à jour automatique des statistiques sur la BizTalkMsgBoxDb
base de données dans SQL Server.
Résolution 2 : Définissez l’option degré maximal de parallélisme sur 1
Pour résoudre ce problème, définissez l’option degré maximal de parallélisme sur 1 dans le BizTalkMsgBoxDb
paramètre de base de données ou le instance SQL hébergeant cette base de données.
Résolution 3 : Ne pas reconstruire un index quand BizTalk Server traite des données
Pour résoudre ce problème, n’exécutez pas la bts_RebuildIndexes
procédure stockée ou une commande SQL qui reconstruit un index dans une base de données BizTalk Server lorsque BizTalk Server traite des données.
Remarque
La défragmentation d’un index dans une base de données BizTalk Server n’est pas prise en charge.
Procédure stockée bts_RebuildIndexes
La seule méthode prise en charge pour reconstruire un index dans la BizTalkMsgBoxDb
base de données consiste à exécuter la bts_RebuildIndexes
procédure stockée. Sur BizTalk Server 2006 et versions ultérieures, vous pouvez exécuter la dtasp_RebuildIndexes
procédure stockée pour reconstruire des index dans la BizTalkDTADb
base de données.
La plupart des index BizTalk sont basés sur un GUID. De nombreux tests ont montré que tant que les tables ne sont pas analysées, les index basés sur un GUID peuvent être plus performants que les index basés sur l’identité pour les charges de travail spécifiques à BizTalk. Cela peut entraîner une fragmentation. Toutefois, étant donné que les données entrent et sortent des tables à un rythme régulier, la fragmentation peut ne pas entraîner de problèmes. Si un grand nombre de données est censé s’accumuler dans la BizTalkMsgBox
base de données, vous pouvez régulièrement reconstruire des index pendant les temps d’arrêt planifiés. Les mêmes instructions s’appliquent à la base de données de suivi.
Vous pouvez utiliser la DBCC DBREINDEX
commande SQL pour reconstruire un index dans les autres bases de données BizTalk Server. Pour obtenir un exemple d’utilisation de la DBCC DBREINDEX
commande SQL, cliquez avec le bouton droit sur la bts_RebuildIndexes
procédure stockée, puis cliquez sur Propriétés.
Microsoft prend uniquement en charge la reconstruction des index de base de données pendant BizTalk Server temps d’arrêt. Vous devez arrêter toutes les instances d’hôte et SQL Server Agent avant de reconstruire un index. Lorsque vous exécutez la bts_RebuildIndexes
procédure stockée dans BizTalk Server 2006 et versions ultérieures, vous pouvez recevoir l’un des messages d’erreur suivants :
Message d’erreur 1
Msg 5239, Level 16, State 1, Procedure bts_RebuildIndexes, Line 4 Unable to process object ID 674101442 (object 'TrackingData')
Cette commande DBCC (Database Consistency Checker) ne prend pas en charge ce type d’objet.Message d’erreur 2
Msg 5239, Niveau 16, État 1, Procédure bts_RebuildIndexes, Ligne 4 Impossible de traiter l’ID d’objet 722101613 (objet « TrackingData ») car cette commande DBCC ne prend pas en charge les objets de ce type.
Ce problème se produit car l’objet TrackingData
est une vue dans BizTalk Server 2006 et versions ultérieures. Pour résoudre ce problème, procédez comme suit, puis exécutez la bts_RebuildIndexes
procédure stockée :
Commentez la ligne suivante dans la
bts_RebuildIndexes
procédure stockée.DBCC DBREINDEX ('[dbo].[TrackingData]') WITH NO_INFOMSGS
Ajoutez les lignes suivantes à la
bts_RebuildIndexes
procédure stockée.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