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
我在一台配置为连接到远程 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