Bonjour
J'aimerais savoir si quelqu'un connait une configuration qui permet à la sessionFactory de repèrer que la base de données a été arrêté afin de réouvrir une nouvelle connexion quand la base redémarre.
Merci
@+
Bonjour
J'aimerais savoir si quelqu'un connait une configuration qui permet à la sessionFactory de repèrer que la base de données a été arrêté afin de réouvrir une nouvelle connexion quand la base redémarre.
Merci
@+
Cela voudrait-il dire que tu cherches à conserver une connexion ouverte en permanence sur la base de données ? Je pense que c'est plutot déconseillé, d'autant que tu ne devrais avoir besoin d'une connexion base de données que quand tu ouvres une nouvelle session hibernate et la refermer juste après. Au mieux tu laisses le container gérer un pool de connexions auquel tu accèdes au besoin pour récupérer et attacher une connexion à ta session.
A moins que je n'ai pas bien compris ce que tu veux faire exactement.
j'ai créé un pool de connexion en utilsant c3p0 et j'utilse le HibernateUtil défini dans la doc Hibernate sur la section Tomcat qui utilise les threads...(http://www.hibernate.org/hib_docs/re...uickstart.html)
Je ferme mes sessions régulièrement ( en général à la fermeture de toutes les session tomcat de mon application).
Mais même quand toute les connexions sont bien fermé j'ai l'impression que ma SessionFactory reste toujours en connexion avec la base. Et si il y a un arrêt de la base, elle ne réagit pas et j'obtiens cette erreur quand j'execute une requête: "Could not execute query".
Si je recharge mon application aprés le redemarrage de la base ça règle le problème et ca marche nickel sans problème.
Peut-être que j'ai mal compris le code du HibernateUtil mais j'ai l'impression qu'on ne peut avoir qu'une seule session ouverte en même temps avec le threads donc on ne peut pas fermer systématiquement la session à chaque page sinon cela pourrait couper la session pour une autre page active.
Partager