L'option de détection des suspensions de WebSphere Application Server est activée
par défaut. Vous pouvez configurer une stratégie de détection des suspensions en fonction de vos applications et de votre environnement, de sorte que les éventuelles suspensions soient rapportées et les serveurs défectueux détectés plus rapidement. Lorsqu'une unité d'exécution suspendue est détectée,
WebSphere
Application Server vous en informe afin que vous puissiez résoudre l'incident.
Avant de commencer
La suspension d'une unité d'exécution constitue une erreur courante dans
Java™ EE
(Java
Platform, Enterprise Edition). Elle peut résulter d'un simple incident logiciel (tel qu'une boucle infinie) ou avoir une cause plus complexe (par exemple, un blocage de ressource). Cette transaction suspendue peut consommer des ressources système, telles que le temps UC, lorsque les unités d'exécution ont un trajet d'exécution illimité. C'est le cas, par exemple, des boucles infinies. De même,
un système peut ne plus répondre même si toutes les ressources sont à l'état de veille, comme dans une situation de blocage. A moins qu'un utilisateur ou un outil de contrôle ne fasse état de l'incident,
le système peut rester dans cet état de dégradation indéfiniment.
En utilisant la stratégie de détection des suspensions, vous pouvez indiquer un délai trop long pour l'exécution d'une unité de travail. Le moniteur d'unités d'exécution vérifie toutes les unités d'exécution gérées dans le système (par exemple, les unités de conteneur Web et les unités ORB - Object Request Broker). Les unités d'exécution non gérées, les unités d'exécution créées par des applications,
ne sont pas contrôlées. Pour plus d'informations, voir Hung threads in Java Platform, Enterprise Edition applications.
Pourquoi et quand exécuter cette tâche
Par défaut, l'option de détection des suspensions d'unité d'exécution est activée. Pour modifier les valeurs de la stratégie de détection des suspensions ou pour désactiver cette option, procédez comme suit :
Procédure
- Dans la console d'administration, cliquez sur Serveurs > Serveurs d'applications > nom_serveur
- Sous Infrastructure du serveur, cliquez sur Administration > Propriétés personnalisées
- Cliquez sur Nouveau.
- Ajoutez les propriétés suivantes :
Information |
Description |
Chaîne |
com.ibm.websphere.threadmonitor.interval |
Valeur |
Fréquence, en secondes, à laquelle les unités d'exécution gérées du serveur d'applications sélectionné seront interrogées. |
Valeut par défaut |
180 secondes (trois minutes) |
Information |
Description |
Chaîne |
com.ibm.websphere.threadmonitor.threshold |
Valeur |
Délai, en secondes, au cours duquel une unité d'exécution peut être active avant d'être considérée comme suspendue. Une unité d'exécution active pendant un délai supérieur à cette valeur est considérée comme suspendue. |
Valeut par défaut |
600 secondes (dix minutes) |
Information |
Description |
Chaîne |
com.ibm.websphere.threadmonitor.false.alarm.threshold |
Valeur |
Nombre T de fausses alertes avant l'augmentation automatique de ce seuil. Il est possible qu'une unité d'exécution signalée comme suspendue finit par aboutir, ce qui entraîne une fausse alerte. Un nombre important d'événements de ce type indique que le seuil est trop bas. La fonctionnalité de détection des suspensions permet de gérer automatiquement cette situation : à chaque fois que le nombre de fausses alertes atteint T, le seuil T est augmenté par un facteur de 1,5. Définissez une valeur zéro (ou moins) pour désactiver l'ajustement automatique. |
Valeut par défaut |
100 |
Information |
Description |
Chaîne |
com.ibm.websphere.threadmonitor.dump.java |
Valeur |
Cette propriété appelle la fonction dumpThreads. Indiquez True pour exécuter
la fonction dumpThreads quand une unité d'exécution bloquée est détectée
et qu'un message WSVR0605W est généré. Les sections des unités d'exécution du cliché javacore indiquent ce que les unités d'exécution sont en train de faire.
Définissez
un entier compris entre 1 et Integer.MAX_VALUE pour que la fonction dumpThreads soit
exécutée lorsqu'une unité d'exécution bloquée est détectée
et qu'un message WSVR0605W est généré. Cet entier indique le nombre maximal de fois que
la fonction dumpThreads sera exécutée. Remarque : Pour désactiver les
messages WSVR0605W, définissez com.ibm.websphere.threadmonitor.interval=0.
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif) Par défaut, la fonction dumpThreads crée un
cliché javacore. Pour plus d'informations sur la manière de désactiver la création de ce
cliché, reportez-vous à la rubrique Vidage des unités d'exécution dans les processus serveur à l'aide de scripts. Pour plus d'informations sur le contenu et les implications de ce cliché, reportez-vous
au document Java Diagnostics Guide.
Par défaut, la fonction dumpThreads crée un
cliché javacore, un cliché de tas et un cliché TDUMP. Pour plus d'informations sur la
manière de désactiver la création de ces clichés, reportez-vous à la rubrique Vidage
des unités d'exécution dans les processus serveur à l'aide de scripts. Pour plus d'informations sur le contenu et les
implications de ces clichés, reportez-vous au document Java Diagnostics Guide.
|
Valeut par défaut |
false (0) |
Information |
Description |
Chaîne |
com.ibm.websphere.threadmonitor.dump.java.track |
Valeur |
Cette propriété indique le nombre d'intervalles pour lesquels le
contrôleur appellera la fonction dumpThreads lors du blocage d'une unité
d'exécution.
Définissez une valeur d'entier comprise entre
2 et la valeur de
com.ibm.websphere.threadmonitor.dump.java, ce qui entraîne l'exécution de
la fonction dumpThreads pendant les intervalles de surveillance
suivants où une unité d'exécution reste bloquée. La valeur d'entier
indique le nombre maximal de fois où dumpThreads est exécuté pour effectuer
le suivi d'une unité d'exécution bloquée. Par exemple, une valeur
2 amène le contrôleur d'unité d'exécution à
exécuter dumpThreads au plus deux fois pour une unité d'exécution bloquée et
une fois lorsque l'unité d'exécution est initialement détectée comme étant
bloquée. Le contrôleur d'unité d'exécution peut exécuter dumpThreadsand une
nouvelle fois si l'unité d'exécution reste bloquée pendant l'intervalle de
surveillance d'unité d'exécution suivant.
Cette propriété peut être
utilisée uniquement avec la propriété com.ibm.websphere.threadmonitor.dump.java.
|
Valeut par défaut |
(0) intervalle |
- Facultatif : Si vous souhaitez surveiller l'activité des unités d'exécution sur lesquelles s'exécutent des alarmes système, ajoutez les arguments génériques JVM suivants aux paramètres du serveur.
Information |
Description |
Chaîne |
-Dcom.ibm.websphere.alarmthreadmonitor.generate.javacore |
Valeur |
Indiquez n'importe quelle valeur pour créer un cliché javacore quand une unité d'exécution d'alarme système bloquée est détectée. Les sections des unités d'exécution du cliché javacore indiquent ce que les unités d'exécution sont en train de faire. |
Valeut par défaut |
Non définie |
Information |
Description |
Chaîne |
com.ibm.websphere.alarmthreadmonitor.checkinterval.millis |
Valeur |
Fréquence, en millisecondes, à laquelle les unités d'exécution des alarmes système sont interrogées. Définissez la valeur sur zéro pour désactiver la détection des unités d'exécution bloquées d'alarme système. L'intervalle maximal est de 600000 (10 minutes). |
Valeut par défaut |
10000 (10 secondes) |
Information |
Description |
Chaîne |
-Dcom.ibm.websphere.alarmthreadmonitor.threshold.millis |
Valeur |
Définissez sur n'importe quelle valeur entière comprise entre 10000 et 600000 (10 minutes). Cet argument est utilisé pour indiquer le délai, en millisecondes,
pendant lequel une unité d'exécution d'alarme système peut être active avant d'être considérée comme non réactive. Toute unité d'exécution d'alarme système détectée comme inactive pendant un délai supérieur à cette valeur
est considérée comme suspendue. |
Valeut par défaut |
10000 (10 secondes) |
Pour ajouter ces arguments aux paramètres du serveur, procédez comme suit :
- Sur la page de paramètres du serveur de la console d'administration, sous Infrastructure du serveur,
cliquez sur .
Sélectionnez .
- Sélectionnez .
- Ajoutez les arguments à la section sur les arguments génériques JVM.
- Cliquez sur Appliquer.
- Cliquez sur
OK.
- Sauvegardez les modifications. Assurez-vous qu'une synchronisation des fichiers a été effectuée avant de redémarrer les serveurs.
- Redémarrez le serveur d'applications pour valider les changements.