Comment plusieurs applications Web d'une même instance tomcat peuvent-elles partager un pool de connexions de base de données?
-
03-07-2019 - |
Question
Sachant que chaque application Web a sa propre base de données distincte (mais toutes les bases de données se trouvent sur le même serveur de base de données).
Le scénario est que j'ai une application saas multi-locataire - je déploie la même application pour chaque client. Chaque client travaille sur une base de données appelée db_cid
, où cid
est l'identifiant du client, c'est-à-dire un identifiant client unique.
Travailler avec hiberner.
La solution
Si vous avez besoin de partager des ressources entre des applications Web, vous devez laisser le conteneur Web les gérer et les placer dans JNDI. L’application Web peut alors extraire très facilement les ressources d’un contexte JNDI.
Les pools de connexions JDBC sont si typiques que chaque conteneur Web explique comment les configurer.
Pour les programmes autonomes, nous utilisons Simple JNDI http://www.osjava.org/simple -jndi / qui fournit la configuration externe qui nous permet de séparer complètement la base de code de la configuration.
Essayez-le, vous allez l'aimer:)
Autres conseils
Avez-vous pensé à configurer une connexion JNDI dans le contexte tomcat (global)? Il peut s'agir d'une connexion en pool, comme décrit dans Exemple de source de données JNDI .