Liberty : Opérations temporisées et appels JDBC
Les opérations temporisées génèrent un avertissement journalisé lorsque des appels JDBC sur le serveur d'applications sont plus lents ou plus rapides que prévu.
Présentation
Lorsqu'elle est activée, la fonction des opérations temporisées effectue le suivi de la durée des opérations JDBC s'exécutant sur le serveur d'applications. Dans les cas où l'exécution des opérations est plus lente ou plus rapide que prévu, il journalise un avertissement. Régulièrement, il crée un rapport dans le journal du serveur d'applications, qui détaille les opérations les plus longues. Si vous exécutez la commande server dump, la fonction des opérations temporisées génère un rapport contenant des informations sur toutes les opérations suivies. Vous pouvez utiliser les informations présentées dans ces rapports pour déterminer si une opération s'exécute plus lentement ou plus rapidement que prévu.
Le système génère régulièrement un rapport dans les journaux qui contient les dix opérations temporisées JDBC les plus longues. La fréquence et l'activation de ce rapport peuvent être configurées dans le fichier server.xml, et la valeur par défaut est d'une fois par jour (24 heures).
Pour activer les opérations temporisées, ajoutez timedOperations-1.0 au fichier server.xml.
Vous pouvez désactiver la génération du rapport dans les journaux ou changer sa fréquence à toutes les 12 heures par exemple avec l'élément timedOperation comme illustré dans l'exemple suivant :
<timedOperation enableReport="false" reportFrequency="12" />
<timedOperation enableReport="false" reportFrequency="12" maxNumberTimedOperations="10000"/>
Pour limiter le nombre d'opérations temporisées suivies, l'enregistrement d'opération temporisée le plus
ancien est supprimé lorsqu'une nouvelle opération temporisée doit être suivie. Lorsque le nombre d'opérations temporisées suivies atteint la valeur maximale
spécifiée, un message d'avertissement s'affiche comme suit :TRAS0095I: The total number of timed operations has reached the configured maximum of 10000. As new timed operations are created the least recently used timed operations will be removed to maintain the total number of tracked timed operations at this level.
Vous pouvez aussi utiliser la commande server dump pour obtenir un rapport complet de toutes les opérations temporisées dans le fichier messages.log, regroupées par type, et triées dans chaque groupe en fonction de leur durée réelle moyenne.
L'exemple suivant est un exemple de message journalisé :
[3/14/13 14:01:25:960 CDT] 00000025 TimedOperatio W TRAS0080W: Operation websphere.datasource.execute:
jdbc/exampleDS:insert into cities values ('myHomeCity', 106769, 'myHomeCountry') took 1.541 ms to complete,
which was longer than the expected duration of 0.213 ms based on past observations.
L'exemple suivant est un extrait de rapport généré automatiquement dans le journal :
[12/13/12 7:42:29:509 CST] 0000001d com.ibm.wsspi.timedoperations.TimedOperationService I TRAS0092I:
The following operations took the longest time to run since the last report has been generated:
Operation websphere.datasource.execute:jdbc/exampleDS:insert into cities values ('myHomeCity',
106769, 'myHomeCounty') took 194ms to complete
Operation websphere.datasource.execute:jdbc/exampleDS:select county from cities where name=
'myHomeCity' took 187ms to complete
Operation websphere.datasource.execute:jdbc/exampleDS:drop table cities took 182ms to
complete\Operation websphere.datasource.execute:jdbc/exampleDS:insert into cities values
('myHomeCity', 106769, 'myHomeCounty') took 151ms to complete
Pour les informations de référence complètes sur la configuration d'opération temporisée, voir Opérations temporisées.