Recuento de sesiones bloqueadas

Microsoft.SQLServer.2008.AnalysisServices.UnitMonitor.MultidimensionalDatabase.BlockedSessionsNumber (UnitMonitor)

El monitor genera una alerta cuando el número de sesiones bloqueadas durante un período de tiempo superior al definido para WaitMinutes supera el umbral configurado.

Knowledge Base article:

Resumen

Cuando el número de sesiones bloqueadas durante más tiempo que el valor WaitMinutes configurado supera el umbral configurado, el monitor genera alertas. El bloqueo se produce cuando una sesión mantiene bloqueado un recurso específico y una segunda sesión intenta adquirir un tipo de bloqueo en conflicto en el mismo recurso. El bloqueo es una característica inevitable de cualquier sistema de administración de bases de datos con simultaneidad basada en bloqueo. No obstante, un bloqueo excesivo puede provocar problemas de rendimiento. Por este motivo, es posible que el administrador use este monitor para tener en cuenta cuando se produce esta condición durante más tiempo que el valor WaitMinutes configurado para un número de sesiones superior al umbral configurado.

Causas

El bloqueo puede producirse por muchos motivos que cabe esperar, pero también puede producirse en escenarios en que se puede paliar sin ninguna pérdida de la funcionalidad correspondiente que necesita la aplicación que consume los datos.

Soluciones

Para resolver problemas de bloqueo en un servidor, es necesario conocer la carga de trabajo, los requisitos y los usuarios. Un administrador deberá tener en cuenta estos factores a la hora de decidir el procedimiento adecuado para resolverlos. La resolución de problemas de bloqueo puede incluir varias acciones potenciales, incluidas, entre otras, las siguientes:

Externo

Configurar las propiedades del servidor en Analysis Services

Guía sobre rendimiento multidimensional de SSAS

Parámetros invalidables

Nombre

Descripción

Valor predeterminado

Habilitado

Habilita o deshabilita el flujo de trabajo

Genera alertas

Define si el flujo de trabajo genera una alerta

Intervalo (segundos)

Intervalo de tiempo periódico en segundos en que se ejecuta el flujo de trabajo.

900

Número de ejemplos

El estado cambia si el número de infracciones de umbral es mayor o igual que el número mínimo de infracciones.

4

Hora de sincronización

Hora de sincronización especificada en un formato de 24 horas. Se puede omitir.

 

Umbral crítico

El estado cambia cuando el número de sesiones bloqueadas supera el umbral.

10

Tiempo de espera (segundos)

Especifica el tiempo durante el que se puede ejecutar el flujo de trabajo antes de que se cierre y se marque como error.

300

Minutos de espera

El parámetro Minutos de espera define el tiempo de espera mínimo para que el monitor considere la sesión.

1

Element properties:

TargetMicrosoft.SQLServer.2008.AnalysisServices.MultidimensionalDatabase
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2008.AnalysisServices.MonitorType.Database.BlockedSessionsNumber
RemotableTrue
AccessibilityPublic
Alert Message
SSAS 2008: recuento de sesiones bloqueadas superado
{1} sesiones se han bloqueado durante más de {0} minutos, valor que supera el umbral configurado para esta alerta.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2008.AnalysisServices.UnitMonitor.MultidimensionalDatabase.BlockedSessionsNumber" Accessibility="Public" Enabled="true" Remotable="true" Priority="Normal" Target="SQLAS!Microsoft.SQLServer.2008.AnalysisServices.MultidimensionalDatabase" TypeID="Microsoft.SQLServer.2008.AnalysisServices.MonitorType.Database.BlockedSessionsNumber" ParentMonitorID="SystemHealth!System.Health.PerformanceState" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2008.AnalysisServices.UnitMonitor.Database.BlockedSessionsNumber.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Property[@Name='WaitTime']$</AlertParameter1>
<AlertParameter2>$Data/Context/Property[@Name='BlockedSPIDCount']$</AlertParameter2>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Success" MonitorTypeStateID="Healthy" HealthState="Success"/>
<OperationalState ID="Error" MonitorTypeStateID="Critical" HealthState="Error"/>
</OperationalStates>
<Configuration>
<ServiceName>$Target/Host/Property[Type='SQLAS!Microsoft.SQLServer.2008.AnalysisServices.Instance']/ServiceName$</ServiceName>
<ConnectionString>$Target/Host/Property[Type='SQLAS!Microsoft.SQLServer.2008.AnalysisServices.Instance']/ConnectionString$</ConnectionString>
<DatabaseName>$Target/Property[Type="SQLAS!Microsoft.SQLServer.2008.AnalysisServices.Database"]/DatabaseName$</DatabaseName>
<Threshold>10</Threshold>
<SampleCount>4</SampleCount>
<WaitMinutes>1</WaitMinutes>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>