Interceptez les instructions JDBC dans la base de données à l'aide de P6Spy dans une application de mise en veille prolongée

StackOverflow https://stackoverflow.com/questions/5044804

  •  15-11-2019
  •  | 
  •  

Question

Je développe une application console hibernate et je me réfère à cet article http://www.mkyong.com/hibernate/how-to-display-hibernate-sql-parameter-values-solution/ pour configurer le P6Spy afin de voir quelle est la valeur réelle du "(?)" du SQL généré par Hibernate.

La configuration devrait fonctionner correctement car je peux voir les messages d'information/de débogage émis par P6Spy lors du démarrage de l'application.Cependant, après cela, P6Spy semble ne pouvoir intercepter aucune instruction JDBC.À partir du journal généré par hibernate (par exemple : Hibernate: insert into Module (projectName, moduleName, projectId) values (?, ?, ?) ), on peut être sûr que les instructions JDBC sont déjà envoyées à la base de données.

Voici mon paramètre :

mise en veille prolongée.cfg.xml

  • Déjà spécifié pour utiliser le pilote P6Spy: <property name="hibernate.connection.driver_class">com.p6spy.engine.spy.P6SpyDriver</property>
  • Déjà activé la propriété hibernate.show_sql:<property name="hibernate.show_sql">true</property>

espion.propriétés

  • Déjà modifié pour utiliser mon pilote JDBC de base de données réel, Filter Set to False, y compris les catégories déjà définies explicitement pour enregistrer quoi que ce soit.
module.log=com.p6spy.engine.logging.P6LogFactory
realdriver=oracle.jdbc.driver.OracleDriver
filter=false
dateformat=yyyy.MM.dd HH:mm:ss
excludecategories=
includecategories=error, info, batch, debug,statement,commit,rollback,result
appender=com.p6spy.engine.logging.appender.StdoutLogger

Est-ce que je manque un paramètre important ??

Était-ce utile?

La solution 3

Finalement, j'abandonne P6Spy car il s'agit de l'ancienne bibliothèque dont la dernière version remonte à 2003.J'ai recours à un autre open source gratuit similaire appelé log4jdbc pour intercepter les instructions JDBC, voir ce pour plus d'informations si vous êtes intéressé.

Autres conseils

Je n'ai jamais utilisé P6Spy, mais vous pouvez afficher les variables de liaison dans votre journal.Essayez de mettre cela dans votre fichier log4j.properties ou xml.

log4j.category.org.hibernate.type=DEBUG, CONSOLE

La cause habituelle de ce type de problème est que le pilote JDBC est chargé avant le P6SpyDriver.Vous pouvez contourner ce problème en définissant deregisterdrivers=true dans spy.properties.

BTW - Ce problème a été résolu dans la version 2.0-alpha-1.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top