IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Tomcat et TomEE Java Discussion :

Pool de connexion sur Tomcat


Sujet :

Tomcat et TomEE Java

  1. #1
    Membre du Club Avatar de KnowPart
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2010
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2010
    Messages : 78
    Points : 68
    Points
    68
    Par défaut Pool de connexion sur Tomcat
    Bonjour,

    J'utilise le DATASOURCE pour se connecter à la base de donnée oracle dans mon application et j'ai comme avantage :
    1) chaque appel à ce datasource avec le taglib <sql:query
    dataSource="jdbc/nomconn"> le datasource vérifie s'il ya une connexion active pour qu'il utilise après chaque appel de sql:query.
    2) les ressources sont bien partagés et bien utilisés.

    Inconvénients:
    * Je visualise des connexions inactive sur oracle concernant le datasource,ce qui généré le nombre maximum des connections atteint.

    J'utilise le server.xml pour configurer la ressource utilisé pour chaque datasoucre ,et voilà les paramètres:

    <Resource
    name="jdbc/nomcon"
    type="javax.sql.DataSource"
    password="pass"
    driverClassName="oracle.jdbc.OracleDriver"
    maxIdle="10"
    maxWait="200"
    removeAbandoned="true"
    logAbandoned="true"
    username="user"
    url="jdbc:oracle:thin:@ip:1521:sid"
    removeAbandonedTimeout="10"
    maxActive="10"/>

    les connections inactive ne se ferme que lorsque je redémarre tomcat.
    ma question c'est: comment parvenir à fermer la connexion inactive à partir de la configuration de la ressource du datasource,sachant que j'ai utilisé le paramètre removeAbandoned="true" et removeAbandonedTimeout="10" mais en vain.

    Merci.

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Ta configuration mentionne clairement un pool de 10 connexions en attentes. (En même temps c'est aussi le but du pool...)
    Donc à moins de te débarasser du pooling (max à 0). Es-tu sur que ce sont les connexion "inactive" le problème, ou est-ce que tu as du leak dans tes connexion (connexions non rendues au pool). Le removeAbandoned ça sert juste à rattraper du code cochon, mieux vaut commencer par éviter le code cochon!

  3. #3
    Membre du Club Avatar de KnowPart
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2010
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2010
    Messages : 78
    Points : 68
    Points
    68
    Par défaut
    Voulez vous dire par le code cochon les connexions non fermer?

    Moi je ferme pas les connexions ,dans chaque requete j'utilise la balise sql:query
    dataSource="jdbc/nomconn"> et je la ferme </sql:query>,sauf quelque requête dans les quelles je fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Context initContext = new InitialContext();
    	Context envContext  = (Context)initContext.lookup("java:/comp/env");
    	DataSource ds = (DataSource)envContext.lookup("jdbc/MyPool");
    		con = ds.getConnection();
    Toute mes connexions sont rendu au pool,sauf dans quelques requête j'attaque une autre base de données avec le link table@sid en passant par le datasource.
    j'arrive pas à comprendre d'ou vient les connexions inactive dans la base de données suite à mon application?

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    sql:query, on peux supposer qu'il rend correctement les connexions.

    Dans votre code à vous, est-ce que vous faite bien appel systématiquement (donc dans un bloc finally) au close() de votre connexion ainsi que de tout Statement que vous auriez créé? C'est important, si la connexion n'est pas libérée ainsi, le connexion pool ne saura jamais qu'il peux la réutiliser, elle sera perdue (mais mangera quand même de la place dans la liste des connexion du serveur DB)

Discussions similaires

  1. Tester la connexion sur tomcat
    Par pilate dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 14/01/2010, 14h04
  2. pooling de connexions sur web service jax-ws
    Par zais_ethael dans le forum Services Web
    Réponses: 8
    Dernier message: 09/04/2008, 13h06
  3. pool de connexion avec Tomcat 5
    Par pigeon11 dans le forum Struts 1
    Réponses: 5
    Dernier message: 25/09/2007, 13h54
  4. Problème de connexion sur tomcat
    Par asetti dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 29/10/2005, 09h38
  5. Pool de connexion avec Tomcat 5.5
    Par partyboy dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 13/06/2005, 16h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo