Deux questions, s v p
Contexte : Une application de site web en développement, qui devra 'tourner' sur un serveur d'application + un serveur de servlets Tomcat + un serveur MySQL.
Je ne me trompe en aucun des points suivants ?
° Un objet 'Connection' sert à l'établissement d'une session entre un client et le serveur. Il peut servir à plusieurs requêtes consécutives (c à d pas simultanées) vers/de la base de données.
° Accès direct :
°° Un objet 'Connection' est créé à partir d'un objet 'DriverManager',
°° Seulement pour petit nombre de connexions simultanées
°° Ne s'établit pas anticipativement, ni ne se clôture en fin d'exécution de programme.
° Pool de connexions
°° Un objet 'Connection' est créé à partir d'un objet 'DataSource'
°° Cet objet sert à ouvrir anticipativement un nombre prédéterminé de connexions vers la base de données. Les transactions se passent plus tard, au gré de l'application. Cet objet n'est fermé qu'en fin d'exécution de programme.
° Accès direct et Pool de connexions
°° A chaque création d'un objet 'Connection' (des deux types), il y a une petite perte de temps due à l'établissement ou à l'abandon de la connexion.
1) Connexion directe (obtenue d'un objet DriverManager) ou Pool de connexions (objet DataSource) ?
Supposition : (Plus de) deux clients font appel simultanément à l'application qui doit aller chercher des données en base SQL.
Plusieurs connexions peuvent être établies simultanément ...
- (Quest.#1) à l'aide de plusieurs 'connexions directes', à condition de ne pas dépasser un certain nombre de sessions simultanées (seuil déterminé par quoi ?)
- à l'aide d'un 'pool de connexions'
2) En considérant qu'il n'y a qu'un seul client qui appelle l'application sur le serveur, au travers d'une session,
en supposant que différentes pages de l'application nécessitent différents groupes de données (ResultSets) de la base SQL,
en sachant que chaque page a ses propres (prepared)Statement, value Bean et classe DataAccess,
(Quest.#2) faut-il instancier un objet 'Connection' (issu d'un objet 'DataSource') pour ...
a) un seul pour ladite session, par lequel transiteront toutes les requêtes ...
- des différentes pages (différents objets DataAccess)
- consécutives de mêmes pages (même objet DataAccess)
(je pense que cette option-ci est la bonne, vous confirmez ?)
b) chaque page, soit pour chaque objet DataAccess
c) un pour chaque requête consécutive, même si d'un même objet DataAccess (brrrrrr....)
Merci d'avance.
Partager