当前位置: 首页 > 知识库问答 >
问题:

Spring重试连接直到数据源可用

酆茂才
2023-03-14
app_1       | 2018-05-27 14:15:03.415  INFO 1 --- [           main]
com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Starting...
app_1       | 2018-05-27 14:15:06.770 ERROR 1 --- [           main]
com.zaxxer.hikari.pool.HikariPool        : HikariPool-1 - Exception during pool initialization
app_1       | com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:
Communications link failure

有一些方法可以在application.properties文件中配置数据源,使应用程序重新连接到数据库,如这里和这里所回答的。但这对到数据源的启动连接不起作用。

如何使SpringBoot应用程序在启动时以给定的间隔重试连接到数据库,直到成功连接到数据库?

共有1个答案

包永新
2023-03-14

将Hikaricp的InitializationFailTimeout属性设置为0(零)或负数。如本文所述:

InitializationFailTimeout

此属性控制如果池不能成功地植入初始连接,池是否会“快速失败”。任何正数都被认为是尝试获取初始连接的毫秒数;应用程序线程将在此期间被阻塞。如果在此超时发生之前无法获取连接,则将引发异常。此超时在ConnectionTimeout期间之后应用。如果该值为零(0),则HikariCP将尝试获取并验证连接。如果获得了连接,但验证失败,则会引发异常,池不会启动。但是,如果无法获取连接,则池将启动,但稍后获取连接的努力可能会失败。小于零的值将绕过任何初始连接尝试,池将在尝试在后台获取连接时立即启动。因此,以后获取连接的努力可能会失败。默认值:1

 类似资料:
  • 我正在尝试使用Simba jdbc驱动程序从Spring boot连接BigQuery,但我得到了以下异常。感谢任何输入。我不确定为什么sping-boot正在寻找证明。我能够连接简单的java主类,但我只在Spring boot时收到此错误。 原因:org。springframework。豆。工厂BeanCreationException:创建名为“org”的bean时出错。springfram

  • 问题:当我的spring应用程序运行时,同时数据库服务器停止/重新启动,然后db连接丢失并且从未恢复。 com.mysql.jdbc.exceptions.jdbc4.mysqlnontransientConnectionException:连接关闭后不允许任何操作。 服务mysql启动 问题:如何告诉spring在连接丢失后自动重新连接? 这是我的配置:

  • 我有一个Spring Boot v 1.5.1。使用PostgreSQL 9.6作为数据源的RELEASE应用程序。即使在空闲时,我的应用程序也会保持与Postgres的连接,但如果连接丢失,则应用程序不会重新连接,而是抛出: 虽然我没有使用JPA,而且我相信我使用的是spring boot starter附带的Tomcat池,但我已经阅读并尝试了这里和这里讨论的建议,但运气不佳。在我的属性文件中

  • Tableau可以与广泛使用的所有可访问数据源连接。它可以链接到Excel文件,PDF文件,文本文件等。它还可以使用其ODBC连接器连接到各种数据库。Tableau可以连接到Web连接器和服务器。 Tableaus本机连接器可以连接到以下类型的数据源: 文件系统:如Microsoft Excel,CSV等。 云系统:例如Google bigQuery,Windows Azure等。 关系系统:如M

  • 我无法连接到两个数据源使用在JDNI与Spring Boot。 生成以下stacktrace: 我做错了什么?

  • 问题内容: 你好, 我正在使用android开发我的第一个应用程序。该应用程序将必须连接到在线数据库以存储用户数据。 我正在寻找包含MySQL数据库的云存储。但是,我的App可以直接连接到该MySQL数据库并从中推入和拉出数据吗?还是我需要做其他事情? 非常感谢您的任何建议, 问题答案: 是的,你可以这么做。 您需要的材料: 网络服务器 Web服务器中存储的数据库 还有一点Android知识:)