繁体   English   中英

在多个不同数据库环境上的连接池

[英]Connection pooling over several different database environment

如果我有一个设置,需要从单个Java程序在多个不同的数据库环境中运行一些SQL,是否可以通过配置连接池来实现此目的?

当我说几个不同的数据库环境时,我的意思是说我有同一个环境的多个不同版本(阶段,开发,单元测试,预生产等)。 我想创建一些可以在每个环境中针对脚本日志记录表运行相同SQL查询的东西,以确保每个环境都针对它们运行相同的脚本。 我们遇到了环境不同步且发生坏事的问题。 在改进尝试以减少这种情况的过程中,还需要一个工具,以便我们可以检查实际运行的内容。

当前,我们有一个pool属性,该属性传递指向每个环境connection.properties文件的URL。 这对于当前的连接池很好,但是不确定是否适用于多个数据库。

如果需要同时连接到许多不同的数据库,则应为每个数据库使用不同的连接池。 对于不同的数据库使用相同的池没有任何意义,因为与一个数据库的连接将永远无法再用于另一数据库。

如果需要根据外部配置(例如命令行,属性文件)连接到其他数据库,则应根据环境设置来安排使用不同的连接字符串。

您的应用服务器是什么? 最佳解决方案是将一些符号连接池名称“硬编码”到应用程序中。 然后,您可以在每个环境中使用相同的签名版本的.jar / .war / .ear文件。

要命名真实数据库,您可以在应用程序服务器级别使用JNDI映射。 或者,您也可以使用tnsnames.ora / sqlnet.ora(默认域)映射,因为这是在Oracle世界中进行管理的常用方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM