Bloqueo, condiciones de interbloqueo u otros SQL Server problemas al conectarse a la base de datos de BizTalkMsgBoxDb en BizTalk Server
En este artículo se proporciona información sobre cómo resolver SQL Server problemas al conectarse a la base de BizTalkMsgBoxDb datos en Microsoft BizTalk Server.
Versión del producto original: BizTalk Server
Número KB original: 917845
Síntomas
En BizTalk Server, experimenta bloqueo, condiciones de interbloqueo u otros Microsoft SQL Server problemas al intentar conectarse a la base de BizTalkMsgBoxDb datos.
Causa
Este problema puede producirse si se cumple una o varias de las siguientes condiciones:
- La opción Crear estadísticas automáticamente está habilitada en la base de
BizTalkMsgBoxDbdatos. - La opción Actualizar automáticamente estadísticas está habilitada en la base de
BizTalkMsgBoxDbdatos. - La opción grado máximo de paralelismo se establece en un valor distinto de 1 en el equipo que ejecuta SQL Server y que hospeda la base de
BizTalkMsgBoxDbdatos. - Puede desfragmentar o volver a generar un índice en la base de datos
BizTalkMsgBoxDbcuando BizTalk Server está procesando datos.
Resolución 1: Deshabilitar la opción Crear estadísticas automáticamente y la opción Actualizar automáticamente estadísticas
Para resolver este problema, deshabilite la opción Crear estadísticas automáticamente y la opción Actualizar automáticamente estadísticas en la base de datos BizTalkMsgBoxDb en SQL Server.
Resolución 2: Establecer el grado máximo de paralelismo en 1
Para resolver este problema, establezca la opción de grado máximo de paralelismo en 1 en el equipo que se ejecuta SQL Server.
Resolución 3: No volver a generar un índice cuando BizTalk Server está procesando datos
Para resolver este problema, no ejecute el procedimiento almacenado ni ningún comando SQL que recompile un índice en una base de datos BizTalk Server cuando BizTalk Server procesa bts_RebuildIndexes datos.
Nota
No se admite la desfragmentación de un índice BizTalk Server base de datos.
El bts_RebuildIndexes almacenado
El único método admitido para volver a generar un índice en la BizTalkMsgBoxDb base de datos es ejecutar el procedimiento bts_RebuildIndexes almacenado. En BizTalk Server 2006 y versiones posteriores, puede ejecutar el procedimiento almacenado para volver a generar dtasp_RebuildIndexes índices en la base de BizTalkDTADb datos.
La mayoría de los índices de BizTalk están basados en GUID. Muchas pruebas han demostrado que, mientras no se examinan las tablas, los índices basados en GUID pueden tener un mejor rendimiento que los índices basados en identidades para cargas de trabajo específicas de BizTalk. Esto puede provocar 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 cause ningún problema. Si se espera que se generen muchos datos en la base de datos, puede volver a generar índices periódicamente durante el BizTalkMsgBox tiempo de inactividad programado. Las mismas directrices se aplican a la base de datos de seguimiento.
Puede usar el comando SQL para volver a generar DBCC DBREINDEX un índice en las otras bases BizTalk Server datos. Para obtener un ejemplo de cómo usar el comando SQL, haga clic con el botón secundario en el procedimiento almacenado y, a DBCC DBREINDEX continuación, haga clic en bts_RebuildIndexes Propiedades.
Microsoft solo admite la reconstrucción de índices de base de datos BizTalk Server tiempo de inactividad. Debe detener todas las instancias de host y SQL Server agente 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 de comprobación 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 objeto es una vista TrackingData en BizTalk Server 2006 y versiones posteriores. Para resolver este problema, haga lo siguiente y, a continuación, ejecute el bts_RebuildIndexes procedimiento almacenado:
Comenta la siguiente línea en el
bts_RebuildIndexesprocedimiento almacenado.DBCC DBREINDEX ('[dbo].[TrackingData]') WITH NO_INFOMSGSAgregue las siguientes líneas al
bts_RebuildIndexesprocedimiento 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