【问题标题】:How to handle re-connects to the DB with ActiveJDBC如何使用 ActiveJDBC 处理重新连接到数据库
【发布时间】:2018-04-25 15:59:37
【问题描述】:

我有一个生产中的 Spring Boot Java 应用程序,它使用 ActiveJDBC 访问 MariaDB 数据库。

如果在启动时应用程序在数据库服务器之前启动,或者如果数据库服务器崩溃并重新启动,应用程序不会重新建立与数据库的连接。

ActiveJDBC 版本为 1.4.13,如果可能的话,我宁愿不升级它,以避免可能的损坏。 db 参数是使用database.properties 文件配置的,通常使用模式是:

try {
    Base.open();
    ...
} finally {
    Base.close();
}

有没有办法绕过这个问题,而无需监视和重新启动应用程序?也许使用连接池?如果是这种情况,是否有任何文档或示例?

【问题讨论】:

    标签: java activejdbc


    【解决方案1】:

    如果您在 database.properties 文件中使用直接 JDBC 连接,则每次执行 Base.open() 时都会打开一个新连接。这意味着任何断开的旧连接都不再相关。如果您使用 JDNI 池,例如:

    production.jndi=java:comp/env/jdbc/acme
    

    然后您要配置容器的池,以确保池提供的每个连接在池提供与您的应用程序的连接之前都是有效的。如何做到这一点取决于您的容器/池的实现和文档。

    无论如何,我认为您不会有问题。

    【讨论】:

      猜你喜欢
      • 2018-09-07
      • 1970-01-01
      • 2015-03-07
      • 2015-03-09
      • 1970-01-01
      • 1970-01-01
      • 2012-03-02
      • 2017-09-05
      • 2023-04-02
      相关资源
      最近更新 更多