首页 > 解决方案 > 如何使用 ActiveJDBC 处理重新连接到数据库

问题描述

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

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

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

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

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

标签: javaactivejdbc

解决方案


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

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

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

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


推荐阅读