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

Développement Web en Java Discussion :

Gestion des connexions à la base de données [FAQ]


Sujet :

Développement Web en Java

  1. #1
    Membre expérimenté Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Points : 1 388
    Points
    1 388
    Par défaut Gestion des connexions à la base de données
    Bonjour,

    J'aimerais savoir quelles sont les meilleurs stratégies pour gérer les connexions aux bases de données dans architecture une archi n-tiers.

    Dans mon cas, je développe une petite appli qui a priori ne devrait être accessible que par un nombre très restreint d'utilisateurs simultanés, mais je me pose quand même la question (ne serait-ce que pour ma culture générale ^^).

    Pour le moment, voila ce que j'ai:
    - une couche dao, qui gere la persistance.
    - une couche service, qui manipule les méthodes de la dao par ses interfaces.
    - une couche au dessus qui manipule les méthodes de la service de la même façon
    - ces deux premières couches sont accédées via des singletons, pour être sur qu'il n'y a qu'une seule instance de chaque de créée.
    - pour le moment, j'ai peu de méthodes qui écrivent dans la bdd, donc celles qui le font sont synchronisées au niveau de la dao.

    Et donc, pour le moment, je crée une connexion à la bdd lors de l'initialisation de l'appli, et j'utilise cette connexion pour toutes les requêtes de tous les clients.

    Mon problème, c'est que je suis pas sur que ca soit terrible comme solution . Par exemple, si deux clients tentent une requête en meme temps, il se passe quoi vu qu'il n'y a qu'une seule connection ? Je suppose que ca va planter mais bon ^^ Du coup, est-ce que je devrais utiliser un pool de connexions (ca me parrait compliqué pour une si petite appli), ou un système de lock sur la connexion, ou autre?

    Bref, j'attends vos retours d'expérience et bonnes pratiques ^^

    D'avance merci

  2. #2
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Bonjour,
    Oui, c'est pas terrible une seule connextion à la BD. Mais c'est déjà bien que tu l'initialises au démarrage, car l'ouverture d'une connexion est très couteux et ne doit pas être fait à chaque requête si on veut optimiser les perfs.

    Sinon, il faut passer par un pool de connexion en prenant la connexion la plus disponible (non utilisée par exemple, ou avec la file d'attente la plus courte, etc.).
    Tu ne vas pas faire ça à la main, car il existe des solutions existantes pour ceci : Apache Commons DBCP par exemple ou encore C3P0.

  3. #3
    Membre expérimenté Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Points : 1 388
    Points
    1 388
    Par défaut
    Merci de ta réponse.

    J'ai suivit tes conseils, j'ai utilisé DBCP dans Tomcat.

    Question subsidiaire:
    Comment on choisi le nombre de connexions actives en général? Dans mon cas, c'est pas super important parce qu'il n'y aura que peu d'utilisateurs, donc encore moins de simultanés, mais de façon générale, comment on dimensionne ce paramètre?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PDO] Information sur la gestion des accès à la base de données
    Par doudou34 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 10/12/2009, 15h02
  2. [SBI] Gestion des utilisateurs en base de données
    Par crazy dans le forum SpagoBI
    Réponses: 2
    Dernier message: 01/10/2009, 11h35
  3. Gestion des connexions à une base de données
    Par Spiff__ dans le forum Général Java
    Réponses: 3
    Dernier message: 24/08/2009, 15h04
  4. [Système] gestion des fichiers et base de données
    Par noobspower dans le forum Langage
    Réponses: 3
    Dernier message: 26/02/2007, 10h42
  5. Gestion des accès à une base de données
    Par white_tiger dans le forum Sécurité
    Réponses: 7
    Dernier message: 07/02/2007, 00h39

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