多个不同数据库环境的连接池
Connection pooling over several different database environment
如果我的设置需要通过单个 Java 程序在多个不同的数据库环境中 运行 一些 SQL,有没有办法配置连接池以实现这个?
当我说几个不同的数据库环境时,我的意思是我有同一个环境的几个不同版本(暂存、开发、单元测试、预生产等)。我想创建一些东西,可以 运行 在每个环境中针对脚本日志记录 table 进行相同的 SQL 查询,以确保每个环境都有相同的脚本 运行 针对它们。我们遇到过环境不同步和坏事发生的问题。虽然我们正在改进流程以尝试减少这种情况,但还需要一个工具,以便我们可以检查实际 运行.
目前我们有一个池 属性,它传入指向每个环境 connection.properties 文件的 URL。这对于当前的连接池来说很好,但不确定这是否适用于多个数据库。
如果您需要同时连接到许多不同的数据库,那么您应该为每个数据库使用不同的连接池。将同一个池用于不同的数据库是没有任何意义的,因为与一个数据库的连接将永远无法重新用于另一个数据库。
如果您需要根据外部配置(例如命令行、属性文件)连接到不同的数据库,那么您应该根据环境设置安排使用不同的连接字符串。
你的应用服务器是什么?最好的解决方案是将"hardcode" 一些符号连接池名称放入应用程序中。然后您可以在每个环境中使用相同签名版本的 .jar/.war/.ear 文件。
要命名真实数据库,您可以在应用程序服务器级别使用 JNDI 映射。或者您也可以使用 tnsnames.ora/sqlnet.ora(默认域)映射,因为这是在 Oracle 世界中管理它的常用方法。
如果我的设置需要通过单个 Java 程序在多个不同的数据库环境中 运行 一些 SQL,有没有办法配置连接池以实现这个?
当我说几个不同的数据库环境时,我的意思是我有同一个环境的几个不同版本(暂存、开发、单元测试、预生产等)。我想创建一些东西,可以 运行 在每个环境中针对脚本日志记录 table 进行相同的 SQL 查询,以确保每个环境都有相同的脚本 运行 针对它们。我们遇到过环境不同步和坏事发生的问题。虽然我们正在改进流程以尝试减少这种情况,但还需要一个工具,以便我们可以检查实际 运行.
目前我们有一个池 属性,它传入指向每个环境 connection.properties 文件的 URL。这对于当前的连接池来说很好,但不确定这是否适用于多个数据库。
如果您需要同时连接到许多不同的数据库,那么您应该为每个数据库使用不同的连接池。将同一个池用于不同的数据库是没有任何意义的,因为与一个数据库的连接将永远无法重新用于另一个数据库。
如果您需要根据外部配置(例如命令行、属性文件)连接到不同的数据库,那么您应该根据环境设置安排使用不同的连接字符串。
你的应用服务器是什么?最好的解决方案是将"hardcode" 一些符号连接池名称放入应用程序中。然后您可以在每个环境中使用相同签名版本的 .jar/.war/.ear 文件。
要命名真实数据库,您可以在应用程序服务器级别使用 JNDI 映射。或者您也可以使用 tnsnames.ora/sqlnet.ora(默认域)映射,因为这是在 Oracle 世界中管理它的常用方法。