同一个tomcat实例中的多个webapp如何共享数据库连接池?

时间:2009-03-03 09:39:02

标签: java hibernate tomcat saas multi-tenant

请记住,每个webapp都有自己独立的数据库(但所有数据库都在同一个数据库服务器中)。

场景是我有一个多租户saas应用程序 - 我为每个客户部署相同的应用程序。每个客户都在一个名为db_cid的数据库上工作,其中cid是客户ID,即唯一的客户标识符。

使用hibernate。

2 个答案:

答案 0 :(得分:4)

如果您需要在Web应用程序之间共享资源,您必须让Web容器管理它们,并将它们放在JNDI中。然后,Web应用程序可以非常轻松地从JNDI上下文中获取资源。

JDBC连接池非常典型,因此每个Web容器都记录了如何设置它们。

对于独立程序,我们使用Simple JNDI http://www.osjava.org/simple-jndi/,它提供外部配置,允许我们完全将代码库与配置分开。

尝试一下,你会喜欢它。)

答案 1 :(得分:0)

您是否考虑过在tomcat(全局)上下文中配置JNDI连接?它可以是池化连接,如JNDI datasource example中所述。