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

Services Web Java Discussion :

[JDBC] Gestion des connexions MySQL


Sujet :

Services Web Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 5
    Points : 11
    Points
    11
    Par défaut [JDBC] Gestion des connexions MySQL
    Bonjour,

    je suis en train de développer une série de WebServices en REST/JSON via Jersey. Ces WS sont censés effectuer de simples actions CRUD en interagissant avec une base MySQL via JDBC.

    Actuellement, ces services sont fonctionnels et les tests unitaires passent sans souci, mais en effectuant quelques recherches en terme de sécurité et performances, je me rends compte que mon architecture doit être améliorée, sur la gestion des connexions à MySQL.
    J'ai donc dégagé plusieurs pistes :

    1- chaque WS va instancier une connexion, un preparedStatement et un resultSet pour envoyer la requête:
    cette solution me parait un peu "bourrin", et surtout je ne connais pas le comportement du système en cas de centaines d'appels au WS par minute : surcharge du serveur? limite de connexions?

    2- la connexion est instanciée dans un singleton, et chaque WS va récupérer un preparedStatement et un resultSet pour envoyer la requête :
    ça règle le problème des connexions intempestives, mais que se passe-t-il si plusieurs appels aux WS ont lieu en même temps? une file d'attente se crée, et les appels vont tranquillement consommer la connexion 1 par 1?

    3- utiliser un pool de connexion :
    là c'est un peu + obscure, apparemment je pourrais utiliser commons-dbcp, qui en théorie réglerait toutes les problématiques sur la gestion des connexions.

    Etant plus ou moins novice dans les best practices de JDBC, j'ai besoin d'un avis éclairé sur ces 3 architectures : laquelle serait la plus adaptée à mon besoin (qui est de consommer des WS simples, de façon répétée et avec des appels concurrents) tout en restant relativement simple, générique et efficace?

  2. #2
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    On ne partage pas une connexion entre plusieurs threads, donc oublie cette solution.
    La bonne solution est d'utiliser un pool de thread et de bien penser à faire un close sur ta connexion et tes statements pour rendre la connexion au pool.

    EDIT: je voulais dire un pool de connexions pas de threads

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 5
    Points : 11
    Points
    11
    Par défaut
    Merci pour la réponse, je vais regarder du côté du pooling alors

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

Discussions similaires

  1. Gestions des connexions
    Par blackshadow dans le forum ASP
    Réponses: 1
    Dernier message: 15/05/2008, 01h47
  2. gestion des erreurs mysql
    Par sefir dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 12/12/2007, 13h23
  3. [Multithread] Gestion des connexions
    Par Wookai dans le forum Accès aux données
    Réponses: 2
    Dernier message: 22/11/2007, 22h43
  4. [Tableaux] gestion des connexions
    Par zahiton dans le forum Langage
    Réponses: 3
    Dernier message: 02/11/2005, 14h37
  5. Réponses: 4
    Dernier message: 04/07/2002, 12h31

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