vers l'accueil formulaire de contact

Tutoriel Hibernate N°3 : analyse logs hibernate

Votre formation HIBERNATE avec Objis, spécialiste formation java depuis 2005 Déchiffrez les traces logs générés par Hibernate. Comprenez les étapes clés au démarrage, ainsi que les options de configuration par défaut d’hibernate. Modifiez certaines configurations et analysez l’impact.

Objis, spécialiste de la formation Java, est heureux de vous offrir ce tutoriel, extrait de séances pratiques de la formation HIBERNATE dispensée par Objis.

Les + objis
- 70% de travaux pratiques
- Clé USB avec tous les outils utilisés + Corrigés TPs
- Bilan pédagogique individuel + conseils

Prérequis, outils et versions

- Tutoriel Hibernate N°2 : votre première application hibernate

Liens utiles


- + de 100 tutoriaux java/jee Objis
- Tutoriaux HIBERNATE Objis
- Objis, spécialiste formation java depuis 2005
- Site hibernate (javadoc, faq)
- Documentation (chap. 10) : working with objects

Objectifs

- Comprendre les logs générés par Hibernate
- Analysez certaines configurations par défaut.

Programme

- Introduction & Logs à analyser
- Partie 1 : Config. hibernate et binding
- Partie 2 : Connexion à la base
- Partie 3 : Configuration SessionFactory
- Partie 4 : ShemaExport & création tables
- Partie 5 : Reqûetes
- Partie 6 : mise en œuvre Log4j

Durée

30 min.

Introduction & Logs à analyser

Ci-dessous le fichier de logs suite au Tutoriel Hibernate N°2 : votre première application hibernate.

texte - 5.2 ko
Logs application DemoHibernate

L’objectif de ce tutoriel est de mieux comprendre le contenu de ce fichier ainsi que certaines options de configurations associées.

Partie 1 : Config. hibernate et binding

Fichiers de configuration

Dans un premier temps, le programme recherche les fichiers de configuration Hibernate : d’abord hibernate.properties, en ensuite hibernate.cfg.xml (dont les valeurs surchargent celles de hibernate.properties)

PNG - 13.2 ko
tutoriel-hibernate-objis-analyse-logs-1

ici
— le fichier hibernate.properties n’a pas été trouvé dans le classpath de l’application (ligne 2).
— le fichier hibernate.cfg.xml a bien été identifié (lignes 5 et 6)

Binding Objet / Table

Juste après avoir trouvé le fichier hibernate.cfg.xml , hibernate s’assure de la validité de la configuration statique de la persistence des objets métiers déclarés dans ce fichier.

ici :
— Hibernate trouve une ligne associée à la déclaration du mapping de la classe Formation vers la table FORMATIONS (ligne 7)
— Hibernate réalise un binding entre l’Objet métier Formation et la table FORMATIONS. Ce qui valide que la configuration du mapping est valable (ligne 8).

SessionFactory sous JNDI

Hibernate essai d’identifier la stratégie de configuration de la SessionFactory : d’abord via Objet dans un annuaire JNDI, ensuite via configuration hibernate (dans hibernate.hbm.xml).

ici :

— Hibernate n’est pas configurée dans un annuaire JNDI (ligne 9)

Partie 2 : Connexion à la base

- Comment est réalisée la connexion à la base ?

PNG - 7 ko
tutoriel-hibernate-objis-analyse-logs-2

ici :

— Avec un pool de connexion interne à ne pas garder si vous déployez en prod. En effet vous notez le texte : (not for production use !) (ligne 10)
— La taille du pool de connexion est de 1 connexion (ligne 11)
— L’autocommit est à False, ce qui oblige à passer par un commit() pour valider une requête en base. Par défaut sous JDBC l’autocommit vaut true. (ligne 12)
— Information sur le driver utilisé ainsi que l’URL de connexion de la base de données. (ligne 13)
— Lecture du login et mot de passe (pas d’affichage en clair). (ligne 14)

Partie 3 : Configuration SessionFactory

PNG - 42.5 ko
tutoriel-hibernate-objis-analyse-logs-3

Dialect

- Identification de la base de données et driver , ici HSQL DB (ligne 15, 16)
- HIdentification du Dialect à utiliser. Ici HSQLDialect (ligne 17)

Stratégie transactionelle
- Utilisation de la stratégie transactionelle par défaut "Using default Transaction Strategy (direct JDBC Access)" (ligne 18), et non d’une stratégie basée sur JTA (Java Transaction Architecture) (ligne 19).

Paramétrage

Ensuite une longue liste de paramètres par défaut, dont certains sont des paramètres systèmes, et modifiable via "java -jar -Dcle=valeur".

- Ligne 20 : " automatic flush during beforeCompletion() disabled" : n’autorise pas de faire un flush automatique dans le cadre d’appel de la méthode callback beforeCompletion() de JTA.
- Ligne 21 : " Automatic session close at end of transaction : disabled" : n’autorise pas de fermer la session automatiquement à la fin d’une transaction.

AUTRES PARAMETRES EXPLIQUES LORS DE LA FORMATION HIBERNATE

Partie 4 : ShémaExport & création tables

PNG - 7.8 ko
tutoriel-hibernate-objis-analyse-logs—4bis

Ces quelques lignes et toutes les précédentes représentent l’éxécution de la ligne de code : Session session = HibernateUtil.getSessionFactory().openSession() ;

Voici par exemple les caractéristiques de l’Objet Session récupéré :

PNG - 20.6 ko
tutoriel-hibernate-objis-analyse-logs-6

A ce stade du programme, le schéma de la base de données a été créé :

PNG - 23.1 ko
tutoriel-hibernate-objis-analyse-logs-5

En particulier, les tables correspondant au domaine métier sont générés

Partie 5 : Reqûetes

PNG - 2.2 ko
tutoriel-hibernate-objis-analyse-logs-4

Partie 6 : Mise en oeuvre de Log4j

Pour une analys plus fine du fonctionnement d’hibernate, l’interface simple de SL4J ne suffit plus. Nous allons profiter de l souplesse de Log4j.
- Supprimez le jar sl4j-simple.jar
- Ajouter à la place 2 jars : log4j.jar (extrait de log4j-1.2.15.zip à télécharger) et slf4j-log4j12-1.5.11.jar (extrait de sl4j-1.5.8.zip à télécharger)

PNG - 2.2 ko
tutoriel-hibernate-objis-analyse-logs-4

- Ajouter à la racine de src un fichier log4j.properties comme celui-ci

PNG - 27 ko
sl4j-architecture-dynamic

Puis lancez-à nouveau l’application.

QUESTIONS :
— Quelles traces apparaissent ?
— Expliquez le contenu du fichier log4j.properties.
— Comment faire pour avoir plus de traces ?
— Comment faire pour envoyer ces traces dans un fichier ? Dans un tableau HTML ? Par mail ?

Conclusion

Dans ce tutoriel, vous avez analysé les logs d’hibernate générés dans le cadre du Tutoriel Hibernate N°2 : votre première application hibernate.

Formation HIBERNATE

Le chemin le plus court pour avoir les réflexes et la méthodologie du bon développeur Hibernate :

Votre formation HIBERNATE avec Objis, spécialiste formation java depuis 2005

Pour aller plus loin : le réseau Objis

Si vous appréciez notre sens du partage, devenez gratuitement membre ’classic’ du Club Objis :
- Votez pour les prochains tutoriaux à publier
- Préparez vos entretiens techniques
- Valorisez votre profil / expertise
- Identifiez des opportunités d’emploi
- Recevez la newsletter objis.com

Contact

Douglas MBIANDOU Contactez Douglas Mbiandou, responsable formations Objis pour :
- Etre informé des nouveaux tutoriaux publiés
- Etudier ensemble votre projet de formation HIBERNATE
- Donner votre avis sur ce tutoriel HIBERNATE
- Gagner une formation JAVA Objis lors du salon Solutions linux 2010
- Nous rencontrez lors du salon Solutions linux 2010