Injection de la source de données dans EJB
Lorsque vous injectez une source de données dans votre application et obtenir une connexion en invoquant getConnection()
sur elle, êtes-vous censé fermer la connexion?
source d'informationauteur LuckyLuke | 2012-11-25
Vous devez vous connecter pour publier un commentaire.
Même si la source de données elle-même est gérée par le conteneur, l'API exige, en effet, le programmeur pour fermer les connexions. C'est différent d'un couple de d'autres gérée par le conteneur des ressources (comme le gestionnaire de l'entité), où le conteneur prend soin de clôture. Notez que la fermeture d'ici, dans la majorité des cas, n'est pas fait ferme la connexion ici, mais renvoie la connexion à un pool de connexion.
En règle générale, si vous utilisez une usine-ish ressources pour obtenir une ou plusieurs autres ressources à partir de ce qui peut être fermé, vous avez à les fermer. Sinon, le conteneur ne.
Depuis Connexion implémente AutoCloseablevous pouvez utiliser un try-with-resources bloc pour cette:
Bien sûr, sinon, vous allez épuiser votre pool de connexion. Il est préférable de le faire dans le bloc finally: