db2_hang_analyze - Détecter et analyser les éventuels scripts de blocage d'application
Détecte et analyse les éventuels blocages de l'application de base de données Db2® à l'aide de diverses mesures recueillies par la commande db2pd. Le script db2_hang_analyze n'est disponible que sur les systèmes d'exploitation Linux® et UNIX.
Le script db2_hang_analyze est un script Perl qui s'exécute indéfiniment. Il recueille des données sur chaque application pour chaque itération et vérifie si l'application est active pendant un certain laps de temps (la valeur par défaut est de 300 secondes). Si l'application n'est pas active pendant l'intervalle de temps, elle est signalée comme étant en suspens. Si un blocage potentiel est détecté, une liste d'applications est écrite dans un fichier de rapport. Vous pouvez mettre fin au script en appuyant sur Ctrl-C ou Ctrl-Z.
Le script db2_hang_analyze se trouve dans le répertoire sqllib/samples/pd/.
Autorisation
Vous avez besoin de l'une des autorités suivantes :
- SYSADM
- SYSCTRL
- SYSMAINT
- SYSMON
Connexion requise
Base de données activeSyntaxe
Paramètres
- -db nom de domaine
- Spécifie la base de données pour laquelle les blocages doivent être détectés. Ce paramètre est obligatoire. membre numéro de membre
- Spécifie le membre sur lequel le script est émis. Si cette option n'est pas spécifiée, le script est émis sur le membre actuel. Si l'instance est en mode série, ce paramètre est ignoré. -limite de temps secondes
- Spécifie la durée, en secondes, pendant laquelle une application est inactive (pas de changement dans les métriques) avant d'être considérée comme suspendue. La valeur par défaut est 300 secondes. -temps de sommeil secondes
- Spécifie le temps d'attente, en secondes, avant que le script ne commence l'itération suivante de l'analyse de l'accrochage. La valeur par défaut s'élève à 60 secondes. -limite de réessai tentatives
- Spécifie le nombre de fois qu'une commande db2pd est exécutée après un échec ou un dépassement de délai. La valeur par défaut est de trois tentatives. -chemin répertoire
- Spécifie le chemin d'accès complet au répertoire où sont stockés le fichier de rapport et le fichier journal. La valeur par défaut est spécifiée par les paramètres de configuration du gestionnaire de base de données
DIAGPATH. -seuil cputh pourcentage - Spécifie le seuil de changement du pourcentage de temps processeur utilisé par une application. Si la modification de la consommation d'une application dépasse le seuil, l'application est signalée comme active. La valeur par défaut est 0.10.1 ). -exécuter chemin_du_script
- Indique le chemin d'accès à un script qui s'exécute après la détection d'un blocage. Le script est vraisemblablement personnalisé afin d'améliorer la résolution du problème. La sortie du script est placée dans le répertoire
DIAGPATHau formatdb2_hang_analyze.<timestamp>.exec. La valeur par défaut est désactivée, ce qui signifie qu'aucun script n'est exécuté après la détection d'un blocage. -journal - L'option "oui" permet d'imprimer dans le fichier journal les notifications relatives aux éventuelles applications suspendues, les avertissements et les erreurs. La valeur par défaut est NO. -sql
Spécifiez oui pour imprimer l'instruction SQL la plus récente émise par l'application suspendue, si les données existent. La valeur par défaut est NO.
-list- Génère une liste des différents scripts db2_hang_analyze en cours d'exécution sur votre système. Dans cette liste, vous pouvez spécifier les scripts db2_hang_analyze à terminer. -h
- Affiche des informations d'aide.
Exemple 1
Dans l'exemple suivant, le script surveille la base de données SAMPLE pour détecter tout blocage éventuel de l'application. Diverses mesures issues de la commande db2pd sont collectées sur chaque application toutes les 60 secondes. S'il s'avère qu'une application est suspendue, le script rédige un rapport, puis quitte l'application.
$HOME/sqllib/samples/pd/db2_hang_analyze -db sample -log
Invoked: /home/hotel32/shenli/sqllib/samples/pd/db2_hang_analyze -db sample -log
APPLICATION HANG DETECTION: Started on Fri Jan 25 14:41:38 EST 2013
Sleeptime : 60 seconds
Timer Limit : 300 seconds
Node Member : default
Retry Limit : 3
Log : yes
SQL : no
Event Metrics Available : yes
Logfile : db2_hang_analyze.20130125.14.41.38.10297.log
Script PID : 10297
CPU Threshold : 0.1%
Post Detection Script : none
Path : /home/hotel32/shenli/sqllib/db2dump
Press CTRL-C or CTRL-Z to terminate script
Pre-loop setup...
Iteration 1: No hang found.
Iteration 2: No hang found.
Iteration 3: No hang found.
Iteration 4: No hang found.
Iteration 5: POSSIBLE HANG DETECTED!
Logfile : /home/hotel32/shenli/sqllib/db2dump/db2_hang_analyze.20130125.14.41.38.10297.log
VIEW REPORT AT : /home/hotel32/shenli/sqllib/db2dump/db2_hang_analyze.20130125.14.41.38.10297.report
APPLICATION HANG DETECTION: Ended on Fri Jan 25 14:46:47 EST 2013Si un ou plusieurs blocages sont détectés, un fichier de rapport est généré qui répertorie les applications bloquées :
cat /home/hotel32/shenli/sqllib/db2dump/db2_hang_analyze.20130125.14.41.38.10297.report
APPLICATION HANG DETECTION: Started on Fri Jan 25 14:41:38 EST 2013
Sleeptime : 60 seconds
Timer Limit : 300 seconds
Node Member : default
Retry Limit : 3
Log : yes
SQL : no
Event Metrics Available : yes
Logfile : db2_hang_analyze.20130125.14.41.38.10297.log
Script PID : 10297
CPU Threshold : 0.1%
Post Detection Script : none
Path : /home/hotel32/shenli/sqllib/db2dump/
POTENTIAL APPLICATIONS HANGING: 3 application(s).
Apphdl : 7
Status : CommitActive
AgentEDUID : 16
Apphdl : 9
Status : CommitActive
AgentEDUID : 28
Apphdl : 19
Status : CommitActive
AgentEDUID : 37
APPLICATION HANG DETECTION: Ended on Fri Jan 25 14:46:47 EST 2013Exemple 2
Vous pouvez contrôler la manière dont le script détecte une éventuelle application suspendue en modifiant un certain nombre d'options :
$HOME/sqllib/samples/pd/db2_hang_analyze -db sample -member 0 -log -timerlimit 30 -sleeptime 15 -sql -path /TMP/
Invoked: /home/hotel32/shenli/sqllib/samples/pd/db2_hang_analyze -db sample -member 0 -log -timerlimit 30 -sleeptime 15 -sql -path /TMP/
APPLICATION HANG DETECTION: Started on Fri Jan 25 15:38:27 EST 2013
Sleeptime : 15 seconds
Timer Limit : 30 seconds
Node Member : 0
Retry Limit : 3
Log : yes
SQL : yes
Event Metrics Available : yes
Logfile : db2_hang_analyze.20130125.15.38.27.10189.log
Script PID : 10189
CPU Threshold : 0.1%
Post Detection Script : none
Path : /TMP
Press CTRL-C or CTRL-Z to terminate script
Pre-loop setup...
Iteration 1: No hang found.
Iteration 2: POSSIBLE HANG DETECTED!
Logfile : /TMP/db2_hang_analyze.20130125.15.38.27.10189.log
VIEW REPORT AT : /TMP/db2_hang_analyze.20130125.15.38.27.10189.report
APPLICATION HANG DETECTION: Ended on Fri Jan 25 15:39:03 EST 2013
Dans cet exemple, l'utilisateur souhaite vérifier si des applications sont suspendues au membre 0. Un certain nombre de mesures de la commande db2pd sont recueillies toutes les 15 secondes, au lieu des 60 secondes par défaut. L'application est identifiée comme suspendue si ses métriques ne changent pas dans les 30 secondes, au lieu des 300 secondes par défaut. Après la détection d'un blocage, la dernière instruction SQL relative à l'application bloquée est imprimée dans le fichier de rapport. Les fichiers de rapport et de journal sont écrits dans le répertoire /TMP/.
Le fichier de rapport suivant affiche les résultats. Il est possible qu'une demande soit suspendue.
cat /TMP/db2_hang_analyze.20130125.15.38.27.10189.report
APPLICATION HANG DETECTION: Started on Fri Jan 25 15:38:27 EST 2013
Sleeptime : 15 seconds
Timer Limit : 30 seconds
Node Member : 0
Retry Limit : 3
Log : yes
SQL : yes
Event Metrics Available : yes
Logfile : db2_hang_analyze.20130125.15.38.27.10189.log
Script PID : 10189
CPU Threshold : 0.1%
Post Detection Script : none
Path : /TMP
POTENTIAL APPLICATIONS HANGING: 1 application(s).
Apphdl : 51
Status : UOW-Executing
AgentEDUID : 44
Current query : select * from staff
Last query: : none
APPLICATION HANG DETECTION: Ended on Fri Jan 25 15:39:03 EST 2013Notes d'utilisation
Le script ne considère pas que les applications qui sont dans un état d'attente de verrouillage sont suspendues.
Le script nécessite Perl v5.6.0 ou une version plus récente.
