Utilisation de PSM pour surveiller les performances de la base de données
PSM capture la plupart des requêtes de base de données lancées par votre application ThingWorx. L'outil propose des tableaux de bord qui mettent en évidence les instructions d'exécution lentes au niveau de la base de données, montrent l'utilisation du pool de connexions et capturent les variables de liaison envoyées à la base de données.
PSM surveille les transactions initiées par les utilisateurs. Par conséquent, PSM n'assure le suivi que des transactions de base de données intervenant côté utilisateur. Si le problème de performances de la base de données concerne un planificateur, un timer ou un processus asynchrone, les requêtes correspondantes ne sont pas collectées par PSM.
Pour toute période de ralentissement des performances, vous pouvez suivre les transactions de base de données correspondantes. Cliquez avec le bouton droit sur un graphique ou un tableau de bord pour ouvrir la vue des requêtes. Par exemple, si vous identifiez un pic UC ou un PurePath lent, vous pouvez accéder aux requêtes de base de données correspondantes survenues sur cette période.
Dans l'exemple suivant, après avoir identifié les requêtes de table de données lentes et leurs requêtes de base de données correspondantes, il conviendrait d'optimiser le code dans l'application qui exécute l'API QueryDataTableEntries :
PMS affiche les détails du pooling de connexions dans votre application. Le tableau de bord de la base de données montre l'utilisation globale du pool de connexions, comme illustré dans l'exemple suivant :
ThingWorx utilise un pool de connexions. Le nombre de connexions du pool est fixé à 100 par défaut. Si toutes les connexions du pool sont utilisées simultanément, l'application peut se trouver dans l'incapacité de répondre. Pour résoudre ce problème, vérifiez s'il existe des transactions lentes maintenant une connexion plus longtemps que nécessaire, avant d'allouer des connexions supplémentaires.
ThingWorx utilise les pools de connexions suivants :
Les connexions du fournisseur de persistance intégré, gérées par la bibliothèque C3P0.
Les autres connexions JDBC secondaires, créées à partir d'un objet de base de données, sont suivies à l'aide de la bibliothèque Apache.
Dans le tableau de bord PSM de vue d'ensemble de la base de données, vous pouvez isoler les périodes de saturation du pool de connexions. Vous pouvez vérifier quelles requêtes étaient en cours d'exécution à l'heure spécifiée. Cela vous permet de diagnostiquer les problèmes de pooling de connexions. Vous devez résoudre les requêtes sous-jacentes dans votre application ThingWorx qui maintiennent une connexion plus longtemps que nécessaire.