IBM Monitoring and Diagnostic Tools – Health Center est un produit de diagnostic et de monitoring d’une application java ou node.js côté serveur (comme WebSphere par exemple).
Il permet de détecter les fuites mémoires et les profondeurs d’appels de méthode dans le but d’optimiser les temps d’exécution ou d’optimiser le garbage collecteur.
Cet exemple s’applique aux produits suivants :
1. Installez le plugin IBM Health Center via le market place d’Eclipse
2. Lancez Eclipse MarketPlace, menu Help
3. Recherchez le produit IBM Health Center (pour Eclipse 2020 utilisez la version 3.0.12)
4. Cliquez sur « Install »
5. Confirmez toutes les étapes d’installation puis choisissez de redémarrer Eclipse pour terminer l’installation.
6. Ouvrez la perspective « Health Center Status »
7. Votre écran est ainsi le suivant :
8. En bas choisissez l’onglet « Connection »
9. Cliquez sur menu => File =>
10. Cliquez sur Next
11. Cliquez sur les services d’administration :
12. Cliquez sur connecteur JMX :
13. Activez le connecteur JMX
14. Dans les propriétés de la JVM ajoutez la ligne :
-agentlib:healthcenter -Xtrace:output=perfmon.%p.out -Xhealthcenter:port:1999,level:full,transport=jrmp
15. Ajoutez la variable suivante :
Dcom.ibm.java.diagnostics.healthcenter.agent.port=1999
16. Renseignez le port 1999
17. Renseignez les informations de connexion puis cliquez sur Next
18. Lancez des appels à l’application Web. Les données se collectent et les rapports consultables dans les différents écrans de la perspective.
Des appels à la couche persistance sur une méthode de listing indique des objets chargés par défaut avec un fort niveau de dépendance parent => enfant n => enfant n+1….
Le remplacement de la requête JPA par une requête native avec des jointures explicites et faites par le moteur de données au lieu de la couche JPA ont permis de diviser par 5 le temps d’exécution de la méthode.