同一个tomcat实例中的多个webapp如何共享数据库连接池?
-
03-07-2019 - |
题
请记住,每个webapp都有自己独立的数据库(但所有数据库都在同一个数据库服务器中)。
场景是我有一个多租户saas应用程序 - 我为每个客户部署相同的应用程序。每个客户都在一个名为 db_cid
的数据库上工作,其中 cid
是客户ID,即唯一的客户标识符。
使用hibernate。
解决方案
如果您需要在Web应用程序之间共享资源,您必须让Web容器管理它们,并将它们放在JNDI中。然后,Web应用程序可以非常轻松地从JNDI上下文中获取资源。
JDBC连接池非常典型,因此每个Web容器都记录了如何设置它们。
对于独立程序,我们使用Simple JNDI http://www.osjava.org/simple -jndi / 提供外部配置,允许我们完全将代码库与配置分开。
尝试一下,你会喜欢它。)
其他提示
您是否考虑过在tomcat(全局)上下文中配置JNDI连接?它可以是池化连接,如 JNDI数据源示例
不隶属于 StackOverflow