Java 在运行时重新配置Tomcat数据库连接

Java 在运行时重新配置Tomcat数据库连接,java,tomcat,database-connection,jdbc-odbc,Java,Tomcat,Database Connection,Jdbc Odbc,我正在开发一个遗留Java web应用程序,它部署在Tomcat容器中,可以访问来自不同供应商Oracle、MS SQL和DB2的多个数据库。目前,连接是通过Oracle JDBC-ODBC网桥驱动程序建立的,数据源是在操作系统级别的Windows Server 2008上配置的 我的团队最近建议迁移到特定于供应商的JDBC4驱动程序,顺便说一下,这些驱动程序可用于所有使用的数据库,但是,尽管性能和功能方面存在众所周知的缺点,而且Oracle在其网站上明确表示JDBC-ODBC桥不适合生产,如果

我正在开发一个遗留Java web应用程序,它部署在Tomcat容器中,可以访问来自不同供应商Oracle、MS SQL和DB2的多个数据库。目前,连接是通过Oracle JDBC-ODBC网桥驱动程序建立的,数据源是在操作系统级别的Windows Server 2008上配置的

我的团队最近建议迁移到特定于供应商的JDBC4驱动程序,顺便说一下,这些驱动程序可用于所有使用的数据库,但是,尽管性能和功能方面存在众所周知的缺点,而且Oracle在其网站上明确表示JDBC-ODBC桥不适合生产,如果没有其他驱动程序可用,这是最后的选择,我们面临来自当前开发人员和负责操作系统的团队的严重抵制

我被告知其中一个要求是能够在运行时重新配置数据库连接。目前,只需在应用程序运行时编辑Windows ODBC工具中配置的数据源即可完成此操作。据我所知,这是容器管理的JNDI数据源不可能做到的。而且,这对我来说相当危险,因为应用程序在重新配置过程中处于不一致的状态


我现在的问题是,在运行时重新配置数据源是否是一种建议的做法,如果是这样的话,我们是否可以使用本世纪的技术来实现这一点,这意味着JDBC4优于JNDI?

Glassfish允许动态重新配置连接池:我们在谈论什么样的重新配置?例如,连接的数量,或者连接本身的目的地,这意味着更改JDBC URL并重新连接?我指的是连接本身的目的地。我认为可以通过JMX在线配置C3P9和新的Tomcat池,而不是DBCP-但我不确定在应用程序运行时更改db目的地听起来很糟糕主意这一要求要么是虚构的,要么是错误的。更改数据源的通常过程是更改上下文XML中的配置,例如,然后重新启动以获取更改。我会再次挑战开发者的理性。