Bloqueo de la experiencia, condiciones, u otras ediciones de SQL Server de interbloqueo cuando intenta conectarse a la base de datos de BizTalkMsgBoxDb en BizTalk Server

Síntomas

En Microsoft BizTalk Server, bloqueo de experiencia, condiciones u otros problemas de Microsoft SQL Server de interbloqueo cuando intenta conectarse a la base de datos de BizTalkMsgBoxDb.

Causa

Este problema puede producirse si uno o más de las siguientes condiciones son verdaderas:
  • La opción de Crear estadísticas automáticamente está habilitada en la base de datos de BizTalkMsgBoxDb.
  • La opción Actualizar estadísticas automáticamente está habilitada en la base de datos de BizTalkMsgBoxDb.
  • La opción grado máximo de paralelismo se establece en un valor distinto de 1 en el equipo que está ejecutando SQL Server y que aloja la base de datos de BizTalkMsgBoxDb.
  • Desfragmentar o generar un índice en la base de datos de BizTalkMsgBoxDb cuando BizTalk Server está procesando datos.

Solución

Para resolver este problema, utilice uno de los métodos siguientes.

Método 1: Deshabilitar la opción de crear estadísticas automáticamente y la opción Auto Update Statistics

Para resolver este problema, deshabilite la opción Auto Create Statistics y la opción Auto Update Statistics en la base de datos BizTalkMsgBoxDb en SQL Server.

Método 2: Establecer la opción max degree of parallelism en 1

Para resolver este problema, establezca la opción max degree of parallelism grado a 1 en el equipo que está ejecutando SQL Server.

Método 3: No vuelve a generar un índice cuando BizTalk Server está procesando datos

Para resolver este problema, no ejecute el procedimiento bts_RebuildIndexes almacenado o cualquier comando SQL que se vuelve a generar un índice en una base de datos de BizTalk Server cuando BizTalk Server está procesando datos.

Nota: No se admite la desfragmentación de un índice en una base de datos de BizTalk Server.

Más información

El procedimiento almacenado de bts_RebuildIndexes

Es el único método admitido para volver a generar un índice en la base de datos de BizTalkMsgBoxDb ejecutar el procedimiento almacenado de bts_RebuildIndexes . En BizTalk Server 2006 y versiones posteriores, puede ejecutar el procedimiento almacenado de dtasp_RebuildIndexes para volver a generar índices en la base de datos de BizTalkDTADb.

La mayoría de los índices de BizTalk está basado en el GUID. Muchas pruebas han demostrado que siempre y cuando no se analizan las tablas, índices basado en GUID pueden realizar mejor que los índices basados en la identidad para cargas de trabajo de BizTalk específico. Esto puede causar la fragmentación. Sin embargo, dado que los datos fluyen dentro y fuera de las tablas a un ritmo constante, la fragmentación puede no cause ningún problema. Si se espera gran cantidad de datos que se acumulan en la base de datos de BizTalkMsgBox, puede reconstruir índices periódicamente durante el downtime programado. Se aplican las mismas instrucciones a la base de datos de seguimiento.

Puede utilizar el comando DBCC DBREINDEX SQL para generar un índice en las otras bases de datos de BizTalk Server. Para obtener un ejemplo de cómo utilizar el comando DBCC DBREINDEX SQL, haga clic en el bts_RebuildIndexes procedimiento almacenado y, a continuación, haga clic en Propiedades.

Nota: Microsoft sólo admite la reconstrucción de índices de la base de datos durante el tiempo de inactividad de BizTalk Server. Debe detener todas las instancias de host y agente de SQL Server antes de reconstruir un índice. Al ejecutar el procedimiento bts_RebuildIndexes almacenado en BizTalk Server 2006 y versiones posteriores, puede recibir uno de los siguientes mensajes de error:
Mensaje de error 1
Msj 5239, nivel 16, estado 1, procedimiento bts_RebuildIndexes, línea 4
No se puede procesar el objeto 674101442 ID (objeto 'De seguimiento')
Este comando Comprobador (DBCC) de coherencia de base de datos no admite este tipo de objeto.
Mensaje de error 2
Msj 5239, nivel 16, estado 1, procedimiento bts_RebuildIndexes, línea 4 no puede procesar el objeto 722101613 ID (objeto 'De seguimiento') porque este comando DBCC no admite objetos de este tipo.

Este problema se produce porque el objeto de seguimiento es una vista en BizTalk Server 2006 y versiones posteriores. Para resolver este problema, realice lo siguiente y, a continuación, ejecute el procedimiento bts_RebuildIndexes almacenado:
  1. Comente la línea siguiente en el procedimiento almacenado de bts_RebuildIndexes .
    DBCC DBREINDEX ('[dbo].[TrackingData]') WITH NO_INFOMSGS
  2. Agregue las líneas siguientes al procedimiento bts_RebuildIndexes almacenado.
    DBCC DBREINDEX ('[dbo].[TrackingData_0_0]') WITH NO_INFOMSGSDBCC 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

Propiedades

Id. de artículo: 917845 - Última revisión: 14 ene. 2017 - Revisión: 1

Comentarios