Bonjour j'utilise les pools de connexions proposés par Tomcat (5.5), je déclare ma db comme suit :
<Context path="/ArtemisAdmin" docBase="ArtemisAdmin.war"
debug="5" reloadable="true" crossContext="true">
<Resource name="jdbc/oracleArtemis" auth="Container"
type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver"
url="jdbc:oracle:thin:@112.123.111.122:1521:ARTEMIS"
username="ARTEMIS"
password="ARTEMIS"
maxActive="5"
maxIdle="3"
maxWait="5000"
/>
</Context>
mais j'ai un pb de connexion non libérée, voilà donc ce que j'ai essayé de faire :
- soit à chaque fois que je fais une requête en base je la termine en faisant un connexion.close(), auquel cas au bout de 2 ou 3 requêtes j'au un message d'erreur "SQLException when trying to close connection in getTimesSheetList() method; java.sql.SQLException: Connection is closed" ce qui signifie clairement que j'utilise une connexion déjà fermée et que j'essaie de la fermer une seconde fois; dans ce cas faut-il faire des connexion.close() quand on utilise les pools de connexion de tomcat ... ?
- soit je ne fais pas de connexion.close() à la fin de mes requêtes, et au bout d'un moment plus aucune connexion n'est libre et je n'ai pas de messages d'erreurs mais ma jsp tourne dans le vide et n'affiche pas de résultats et côté oracle on voit clairement qu'il y a des connexions en cours d'utilisation mais qui ne sont pas libérées !!!
J'ai bien essaté de rajouter les 3 lignes
removeAbandoned="true"
removeAbandonedTimeout="20"
logAbandoned="true"
a la fin de mon tag <resource> mais ça n'a rien changé :-(
Quelqu'un a-t-il une idée ? Merci d'avance.
Partager