2009-03-03 21 views
1

Im Hinterkopf, dass jede Webapp ihre eigene separate Datenbank hat (aber alle Datenbanken sind im selben Datenbankserver).Wie können mehrere Webapps in derselben Tomcat-Instanz den Datenbankverbindungspool gemeinsam nutzen?

Das Szenario ist, dass ich eine Multi-Tenant-Saas-Anwendung habe - ich stelle die gleiche Anwendung für jeden Kunden bereit. Jeder Kunde arbeitet an einer Datenbank mit der Bezeichnung db_cid, wobei cid die Kunden-ID ist, d. H. Eine eindeutige Kundenkennung.

Arbeiten mit Ruhezustand.

Antwort

4

Wenn Sie Ressourcen zwischen Webanwendungen freigeben müssen, müssen Sie sie vom Webcontainer verwalten lassen und in JNDI einfügen. Die Webanwendung kann dann die Ressourcen aus einem JNDI-Kontext sehr einfach abrufen.

JDBC-Verbindungspools sind so typisch, dass jeder Web-Container dokumentiert, wie sie eingerichtet werden.

Für Standalone-Programme verwenden wir Simple JNDI http://www.osjava.org/simple-jndi/, die die externe Konfiguration bietet, die es uns ermöglicht, die Codebasis vollständig von der Konfiguration zu trennen.

Probieren Sie es aus, Sie werden es mögen :)

0

Haben Sie darüber nachgedacht, eine JNDI-Verbindung im Tomcat-Kontext (global) zu konfigurieren? Es kann eine gepoolte Verbindung sein, wie in JNDI datasource example beschrieben.