连接失败后修改连接池属性

时间:2016-12-29 11:46:02

标签: java mysql database connection-pooling

配置

我的网络应用程序的连接池非常简单(在Java 8中编程,在Tomcat 8上运行)。我从外部资源检索连接的用户,密码和URL。这是我初始化数据源的方式:

{{1}}

此配置完全符合我的需求,它可以在与DB出现连接问题后重新连接。

问题

我目前的问题是我正在将我的数据库迁移到新服务器,因此我知道url连接字符串将会更改。如何动态强制池重建"使用新的连接字符串而无需重新启动我的应用程序?

我希望能够做到这样的事情:

  1. Web应用程序正在运行,已连接到数据库A.
  2. 我将数据库A迁移到数据库B.
  3. 更改我的网络应用获取连接字符串的外部资源,使其指向新数据库B.
  4. 从我的应用程序中删除对数据库A的访问权限。
  5. 应用程序意识到它无法建立与数据库A的连接,因此它尝试重新创建从外部资源检索新值的池,该外部资源现在包含到数据库B的连接字符串。
  6. 应用程序连接到数据库B并继续正常工作。
  7. 考虑选项

    我查看了拦截器,看看我是否可以通过实现自己的拦截器来实现所需的行为,但它似乎不是正确的方法。

    然后我选择了以下内容:每次在尝试从池中检索连接时捕获SQLException,只需重新创建整个数据源。虽然这可行,但至少可以说这个解决方案似乎很麻烦。

    问题

    当连接池无法连接到最初在其属性中设置的数据库时,可以尝试更改其连接字符串的最佳方法是什么?

0 个答案:

没有答案
相关问题