我正在研究部署在Tomcat容器中的旧Java Web应用程序,并访问来自不同供应商(Oracle,MS SQL,DB2)的多个数据库。目前,通过Oracle JDBC-ODBC桥驱动程序建立连接,并在操作系统级别(Windows Server 2008)上配置数据源。
我的团队最近建议迁移到特定于供应商的JDBC4驱动程序(顺便提一下,这些驱动程序适用于所有使用过的数据库),但是尽管性能和功能存在众所周知的缺点,并且Oracle在其网站上明确指出JDBC -ODBC桥不适合生产,如果没有其他驱动程序可以作为最后的手段,我们遇到了来自当前开发人员和负责操作系统的团队的一些严重阻力。
有人告诉我,其中一个要求是能够在运行时重新配置数据库连接。目前,只需在应用程序运行时编辑Windows ODBC工具中配置的数据源即可完成此操作。据我所知,这是容器管理(JNDI)数据源无法实现的。此外,由于应用程序在重新配置过程中处于不一致状态,因此对我来说听起来相当危险。
我现在的问题是,如果在运行时重新配置数据源是一种建议的做法,如果是这样,我们有什么办法可以使用本世纪的技术来实现这一点,这意味着JDBC4优于JNDI?