【问题标题】:KeyCloak is not able to communicate with DB all of sudden : throwing exceptionKeyCloak 突然无法与 DB 通信:抛出异常
【发布时间】:2020-03-21 13:56:38
【问题描述】:

KeyCloak 无法与我们的数据库通信并留下以下错误消息。但是,我们通过重新启动摆脱了这种情况。但似乎它经常发生。建议/解决方案会更好...

错误片段:

(Timer-2)SQL 错误:17008,SQLState:08003 2019-11-25 23:35:21,389 错误 [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (Timer-2) 关闭连接 2019-11-25 23:35:21,389 错误 [org.keycloak.services](Timer-2)KC-SERVICES0089:运行失败 计划任务 ClearExpiredEvents: javax.persistence.PersistenceException: org.hibernate.exception.JDBCConnectionException:无法准备 陈述 在 org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1692) 在 org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1602) 在 org.hibernate.jpa.internal.QueryImpl.getResultList(QueryImpl.java:492) 在 org.keycloak.models.jpa.JpaRealmProvider.getRealms(JpaRealmProvider.java:99) 在 org.keycloak.models.cache.infinispan.RealmCacheSession.getRealms(RealmCacheSession.java:459) 在 org.keycloak.services.scheduled.ClearExpiredEvents.run(ClearExpiredEvents.java:34) 在 org.keycloak.services.scheduled.ClusterAwareScheduledTaskRunner$1.call(ClusterAwareScheduledTaskRunner.java:56) 在 org.keycloak.services.scheduled.ClusterAwareScheduledTaskRunner$1.call(ClusterAwareScheduledTaskRunner.java:52) 在 org.keycloak.cluster.infinispan.InfinispanClusterProvider.executeIfNotExecuted(InfinispanClusterProvider.java:78) 在 org.keycloak.services.scheduled.ClusterAwareScheduledTaskRunner.runTask(ClusterAwareScheduledTaskRunner.java:52) 在 org.keycloak.services.scheduled.ScheduledTaskRunner.run(ScheduledTaskRunner.java:45) 在 org.keycloak.timer.basic.BasicTimerProvider$1.run(BasicTimerProvider.java:51) 在 java.util.TimerThread.mainLoop(Timer.java:555) 在 java.util.TimerThread.run(Timer.java:505) 引起:org.hibernate.exception.JDBCConnectionException:无法准备 声明

【问题讨论】:

  • 我们的数据源配置有什么问题吗? jdbc:oracle:thin:@ourDB :port/ORCLoracledbuser跨度>
  • 请检查如何在 SO 中提出任何问题,在您的问题中您没有提到您使用的是哪个数据库,Keyclok 版本?你升级钥匙斗篷了吗?您已经清楚地提到了您的问题并提供了适当的细节。
  • 你能编辑你的答案并剪切和粘贴所有的堆栈跟踪吗?堆栈跟踪的其余部分指出了根本原因。
  • 感谢大家花时间在这个线程上。但是,这个问题已经解决了..似乎keycloak有问题,最新的补丁更新解决了它。

标签: database jboss keycloak


【解决方案1】:

感谢大家花时间在这个线程上。不过,这个问题已经解决了..好像keycloak有问题,最新的补丁更新解决了。

【讨论】:

  • 嗨@Ravi Shank 在更新到哪个版本的 keycloak 后问题得到了解决?
【解决方案2】:

此连接池更改将起作用。

<datasource jndi-name="java:jboss/datasources/KeycloakDS" pool-name="KeycloakDS" enabled="true" use-java-context="true">
   <connection-url>jdbc:postgresql://host.docker.internal:5432/postgres_db</connection-url>
   <driver>postgresql</driver>
   <pool>
       <max-pool-size>100</max-pool-size>
   </pool>
   <security>
       <user-name>postgres_user</user-name>
       <password>postgres_password</password>
   </security>                 
   <validation>
        <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"></valid-connection-checker>
        <background-validation>true</background-validation>
        <background-validation-millis>120000</background-validation-millis>
   </validation>                
</datasource>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-30
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 2014-03-15
    • 2011-08-08
    • 1970-01-01
    相关资源
    最近更新 更多