Bonjour a tous!!!
Je voulais juste poser une question: Je voulais savoir si c´est obligé de toujours fermer une session apres une operation? Par exemple Inserer un Objekt dans la Banque de données.
Merci de me repondre.
Bonne journée et a bientot.
Bonjour a tous!!!
Je voulais juste poser une question: Je voulais savoir si c´est obligé de toujours fermer une session apres une operation? Par exemple Inserer un Objekt dans la Banque de données.
Merci de me repondre.
Bonne journée et a bientot.
Bonjour,
Je ne sais pas si ça pose des problème (peut-être qu'il y en a si tu ouvre sans fermer par exemple dans une boucle), mais c'est une question de logique, en général on ferme tout ce qu'on ouvre.
De plus c'est très simple de fermer la connexion il suffit de mettre le .closeSession(); dans le finally :-).
A + ;-).
Yoshi
PS : tous les propos tenus dans le message ci-dessus sont à préfixer avec "A mon humble avis", "Je pense que". Il serait inutilement fastidieux de le rappeler à chaque phrase.
Pas forcément, tout dépend comment tu le gères.
Si tu utilises les sessions contextuelles, ce n'est pas nécessaire.
Tu peux aussi forcer la fermeture au commit de ta transaction.
Tout ceci est paramétrable dans le hibernate.cfg.xml.
Dans mon programme je reussi a fermer la Session au meme moment que la transaction, c´est a dire avec getSession().getTransaction().commit();
Je n´ai pas de probleme, dois-je obligatoirement la fermer avec getSession.close()? Je pose la question parce qu´un ami me dit que j´aurais des probleme apres. Que pensez-vous? Merci de me repondre.
Tu as l'air de ne pas utiliser la gestion contextuelle des sessions, alors oui, utilise le close.
Sinon, la config suivant, peut le faire aussi:
hibernate.transaction.auto_close_session = true
Bah, le sujet est trop vaste pour être traité ici...
je vous vous invite cependant à lire la documentation d'hibernate en cherchant:
session-per-operation (mauvaise pratique que tu sembles vouloir utiliser)
session-per-request (plus courante, nécessite la mise en oeuvre d'une session contextuelle + un filtre de servlet ou un outil style spring)
session-per-conversation (très interessant dans le cadre de translation longue)
...
En tout état de cause, les choix que vous faites quand au moment ou vous ouvrez puis vous fermez la session sont essentiels d'un point de vue cohérence, transactionnelle et performance. Ce ne sont pas des choix à prendre à la légère. Si vous ne maîtrisez pas ces aspects, je ne peux que vous inviter qu'à vous faire aider par quelqu'un qui saura vous guider quand à vos choix d'architecture.
D'experience, j'ai déja vu ce type de problème engendré la mise à la poubelle d'une application de 1000 jourshommes.
Alors prudence...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager