Keycloak 在启动期间重试数据库连接

Keycloak retry database connection during startup

我在一台配置为连接到远程 PostgreSQL 数据库的服务器上安装了 Keycloak,数据库和 Keycloak 服务器在早上同时启动,但数据库需要多一点时间才能可用,这会阻止 Keycloak服务从开始:

WARN  [org.jboss.jca.core.connectionmanager.pool.strategy.OnePool] (ServerService Thread Pool -- 63) IJ000604: Throwable while attempting to get a new connection: null: javax.resource.ResourceException: IJ031084: Unable to create connection

我尝试将以下几行添加到 standalone.xml,但它似乎只是在 Keycloak 已经启动且数据库重新启动时防止崩溃:

<validation>
  <check-valid-connection-sql>select 1</check-valid-connection-sql>
  <validate-on-match>false</validate-on-match>
  <background-validation>true</background-validation>
  <background-validation-millis>15000</background-validation-millis>
</validation>

如果有人正在寻找解决方案并正在使用 systemd,我最终将这两行添加到 [Service] 块中的 keycloak.service 文件中:

Restart=always
RestartSec=5min