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
Partager