2017-10-16 13 views
0

J'utilise eclipse link comme implémentation JPA et suis connecté à un DB s'exécutant sur "jdbc:XXX://localhost:35001/". Existe-t-il un moyen de suivre tous les appels SQL? Je cours cela dans un projet java en éclipse sur ma machine locale.Comment suivre les appels SQL de JPA eclipse-link vers la base de données

Merci

+0

Utilisez un pilote proxy tel que P6spy – Andreas

+0

Que voulez-vous dire par "piste"? Différentes interprétations sont possibles sur ce terme ici. – MWiesner

Répondre

1

Plusieurs options vous pouvez essayer:

Vous pouvez essayer d'utiliser un proxy comme P6Spy comme mentionné par Andreas, ou les alternatives comme log4jdbc etc. Cela peut être utile pour le débogage lorsque vous essayez de tracer les appels de plusieurs clients puisque le proxy pourrait intercepter les appels de tous les clients.

Toutefois, pour votre cas, je suggère d'utiliser les fonctions de journalisation intégrées d'EclipseLink. En lien éclipse, vous pouvez configurer l'enregistrement des états via des entrées dans le fichier XML de persistance comme indiqué ci-dessous:

 <property name="eclipselink.logging.level.sql" value="FINE"/> 
    <property name="eclipselink.logging.parameters" value="true"/> 

Je suggère que après les modifications de code pour annuler le déploiement de l'application et arrêtez et redémarrez le serveur d'applications avant la reconstruction et puis déployer à nouveau l'application. J'ai vu plus de quelques cas où la journalisation ne commence pas avec vous traversant tout ce cycle.

La dernière option serait une trace SQL. En fonction de votre backend de base de données, vous pourriez être en mesure d'exécuter un profil ou une trace. SQL-Server vous permettra de le tracer. Vous pouvez ensuite afficher tous les SQL exécutés sur la base de données. Ceci est probablement exagéré dans votre scénario, car il consignera toutes les activités à moins d'être mal configuré.