État d'intégrité

Microsoft.JEE.Tomcat.6.Deep.Application.AvailabilityHealth.UnitMonitor (UnitMonitor)

Surveille l'état d'intégrité des applications déployées pour un serveur d'applications Web Tomcat 6.x.

Knowledge Base article:

Résumé

Le moniteur d'intégrité de disponibilité des applications effectue le suivi de l'état d'une application déployée et utilise la requête suivante pour trouver toutes les applications disponibles :

L'état de chaque MBean est examiné : 0 implique que l'application est arrêtée, 1 implique que l'application est démarrée. Cela n'est pas conforme avec JSR-77.

Causes

Un avertissement indique que l'application contrôlée est soit dans un état de démarrage ou d'arrêt.

Un indicateur critique signifie que l'application contrôlée est soit dans un état d'arrêt ou d'échec.

Résolutions

Les applications dans un état d'avertissement sont dans un état de démarrage ou d'arrêt. Cliquez sur le bouton Recalculer l'intégrité pour recalculer l'état d'intégrité.

Les applications dans un état critique peuvent être arrêtées ou en échec. Pour plus d'informations, consultez l'onglet Contexte d'alerte dans les propriétés de l'alerte. Les applications arrêtées doivent uniquement être redémarrées, tandis que les applications qui ont échoué devront être examinées.

Element properties:

TargetMicrosoft.JEE.Tomcat.6.Application
Parent MonitorSystem.Health.AvailabilityState
CategoryAvailabilityHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.JEE.Deep.Application.TwoState.Query.AvailabilityHealth.MonitorType
RemotableTrue
AccessibilityPublic
Alert Message
L'application n'est pas exécutée
L'application {3} n'est pas exécutée. Cette application peut être identifiée par le NomObjet {2} sur l'ordinateur {1} pour l'identificateur de serveur d'applications {0}.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.JEE.Tomcat.6.Deep.Application.AvailabilityHealth.UnitMonitor" Accessibility="Public" Enabled="true" Target="Microsoft.JEE.Tomcat.6.Application" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="JEE!Microsoft.JEE.Deep.Application.TwoState.Query.AvailabilityHealth.MonitorType" ConfirmDelivery="true">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="Microsoft.JEE.Tomcat.6.Deep.Application.AvailabilityHealth.UnitMonitor_AlertMessageResourceID">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<!-- The alert description should include key properties of: -->
<!-- * the application server id -->
<!-- * the application hostname -->
<!-- * the application object name-->
<!-- * the application name -->
<AlertParameter1>$Target/Host/Property[Type="JEE!Microsoft.JEE.ApplicationServer.Monitored.Instance"]/Id$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type="JEE!Microsoft.JEE.ApplicationServer.Monitored.Instance"]/HostName$</AlertParameter2>
<AlertParameter3>$Target/Property[Type="JEE!Microsoft.JEE.Application"]/ObjectName$</AlertParameter3>
<AlertParameter4>$Target/Property[Type="JEE!Microsoft.JEE.Application"]/ApplicationName$</AlertParameter4>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Healthy" MonitorTypeStateID="Healthy" HealthState="Success"/>
<OperationalState ID="NotHealthy" MonitorTypeStateID="NotHealthy" HealthState="Error"/>
</OperationalStates>
<Configuration>
<ComputerName>$Target/Host/Property[Type="JEE!Microsoft.JEE.ApplicationServer.Monitored.Instance"]/HostName$</ComputerName>
<Protocol>$Target/Host/Property[Type="JEE!Microsoft.JEE.ApplicationServer.Monitored.Instance"]/Protocol$</Protocol>
<Port>$Target/Host/Property[Type="JEE!Microsoft.JEE.ApplicationServer.Monitored.Instance"]/Port$</Port>
<BaseURL/>
<JMXQuery>Catalina:j2eeType=WebModule,*</JMXQuery>
<AdditionalArguments>&amp;MaxDepth=1</AdditionalArguments>
<RequestBody/>
<!-- This will query all of the available MBeans and -->
<!-- look for the right MBean and update the state as stated -->
<!-- in the SPEC for Tomcat: -->
<!-- * Healthy : state == 1 -->
<!-- * Critical : state == 0 -->
<HealthyExpression>
<SimpleExpression>
<ValueExpression>
<!-- The XPATH if it were applied directly against the XML in a browser should look like: -->
<!-- /MBeans/org.apache.tomcat.util.modeler.BaseModelMBean[@objectName="Catalina:j2eeType=WebModule,name=//localhost/,J2EEApplication=none,J2EEServer=none"]/Properties/state -->
<XPathQuery Type="String">MBeans/MBean[@Name='org.apache.tomcat.util.modeler.BaseModelMBean' and @objectName="$Target/Property[Type="JEE!Microsoft.JEE.Application"]/ObjectName$"]/Properties/Property[@Name='state']</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">1</Value>
</ValueExpression>
</SimpleExpression>
</HealthyExpression>
<NotHealthyExpression>
<SimpleExpression>
<ValueExpression>
<!-- The XPATH should look like: -->
<!-- /MBeans/org.apache.tomcat.util.modeler.BaseModelMBean[@objectName="Catalina:j2eeType=WebModule,name=//localhost/,J2EEApplication=none,J2EEServer=none"]/Properties/state -->
<XPathQuery Type="String">MBeans//MBean[@Name='org.apache.tomcat.util.modeler.BaseModelMBean' and @objectName="$Target/Property[Type="JEE!Microsoft.JEE.Application"]/ObjectName$"]/Properties/Property[@Name='state']</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">0</Value>
</ValueExpression>
</SimpleExpression>
</NotHealthyExpression>
<IntervalSeconds>900</IntervalSeconds>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>