Bloqueo, condiciones de interbloqueo u otros problemas de SQL Server al conectarse a la base de datos de BizTalkMsgBoxDb en BizTalk Server
En este artículo se proporciona información sobre cómo resolver problemas de SQL Server al conectarse a la BizTalkMsgBoxDb
base de datos en Microsoft BizTalk Server.
Versión original del producto: BizTalk Server
Número de KB original: 917845
Síntomas
En BizTalk Server, experimenta problemas de bloqueo, interbloqueo u otros problemas de Microsoft SQL Server al intentar conectarse a la BizTalkMsgBoxDb
base de datos.
Causa
Este problema puede producirse si se cumplen una o varias de las condiciones siguientes:
- La opción Estadísticas de Create automáticas está habilitada en la
BizTalkMsgBoxDb
base de datos. - La opción Actualizar estadísticas automáticamente está habilitada en la
BizTalkMsgBoxDb
base de datos. - La opción grado máximo de paralelismo se establece en un valor distinto de 1 para la
BizTalkMsgBoxDb
base de datos o la instancia de SQL que hospeda esta base de datos. - Desfragmenta o recompila un índice en la
BizTalkMsgBoxDb
base de datos cuando BizTalk Server está procesando datos.
Resolución 1: deshabilitar la opción Estadísticas de Create automáticas y la opción Actualizar estadísticas automáticamente
Para resolver este problema, deshabilite las opciones Estadísticas de Create automáticas y Estadísticas de actualización automática en la BizTalkMsgBoxDb
base de datos de SQL Server.
Resolución 2: Establecer la opción grado máximo de paralelismo en 1
Para resolver este problema, establezca la opción grado máximo de paralelismo en 1 en la configuración de la BizTalkMsgBoxDb
base de datos o en la instancia de SQL que hospeda esta base de datos.
Resolución 3: No recompilar un índice cuando BizTalk Server está procesando datos
Para resolver este problema, no ejecute el bts_RebuildIndexes
procedimiento almacenado ni ningún comando SQL que recompile 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.
El procedimiento almacenado bts_RebuildIndexes
El único método admitido para volver a generar un índice en la BizTalkMsgBoxDb
base de datos es ejecutar el bts_RebuildIndexes
procedimiento almacenado. En BizTalk Server 2006 y versiones posteriores, puede ejecutar el dtasp_RebuildIndexes
procedimiento almacenado para volver a generar índices en la BizTalkDTADb
base de datos.
La mayoría de los índices de BizTalk se basan en GUID. Muchas pruebas han demostrado que, mientras no se analicen las tablas, los índices basados en GUID pueden funcionar mejor que los índices basados en identidades para cargas de trabajo específicas de BizTalk. Esto puede provocar la fragmentación. Sin embargo, dado que los datos fluyen dentro y fuera de las tablas a un ritmo constante, es posible que la fragmentación no provoque ningún problema. Si se espera que se compilen muchos datos en la BizTalkMsgBox
base de datos, puede volver a generar índices periódicamente durante el tiempo de inactividad programado. Las mismas directrices se aplican a la base de datos de seguimiento.
Puede usar el DBCC DBREINDEX
comando SQL para volver a generar un índice en las otras bases de datos de BizTalk Server. Para obtener un ejemplo de cómo usar el DBCC DBREINDEX
comando SQL, haga clic con el botón derecho en el bts_RebuildIndexes
procedimiento almacenado y, a continuación, haga clic en Propiedades.
Microsoft solo admite la recompilación de índices de base de datos durante BizTalk Server tiempo de inactividad. Debe detener todas las instancias de host y Agente SQL Server antes de volver a generar un índice. Al ejecutar el bts_RebuildIndexes
procedimiento almacenado en BizTalk Server 2006 y versiones posteriores, puede recibir uno de los siguientes mensajes de error:
Mensaje de error 1
Msg 5239, Level 16, State 1, Procedure bts_RebuildIndexes, Line 4 Unable to process object ID 674101442 (object 'TrackingData')
Este comando del comprobador de coherencia de base de datos (DBCC) no admite este tipo de objeto.Mensaje de error 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.
Este problema se produce porque el TrackingData
objeto es una vista en BizTalk Server 2006 y versiones posteriores. Para resolver este problema, haga lo siguiente y, a continuación, ejecute el bts_RebuildIndexes
procedimiento almacenado:
Comente la siguiente línea en el
bts_RebuildIndexes
procedimiento almacenado.DBCC DBREINDEX ('[dbo].[TrackingData]') WITH NO_INFOMSGS
Agregue las líneas siguientes al
bts_RebuildIndexes
procedimiento almacenado.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