我将Keycloak服务器应用程序(基于WildFly 10.0.0.Final)部署到Pivotal Cloud Foundry,并将ClearDB服务用作关系数据库。
ClearDB有一个限制,它会关闭所有闲置90秒的连接。
为了不遇到这种情况,当Keycloak尝试使用封闭连接时,我添加了以下数据源配置(基于Pivotal recommendations):
<datasource jndi-name="java:jboss/datasources/KeycloakDS" pool-name="KeycloakDS" enabled="true" use-java-context="true">
<connection-url>jdbc:mysql://blah.cleardb.net/blah?user=blah&password=blah</connection-url>
<driver>mysql</driver>
<pool>
<min-pool-size>1</min-pool-size>
<max-pool-size>10</max-pool-size>
</pool>
<timeout>
<idle-timeout-minutes>1</idle-timeout-minutes>
</timeout>
<validation>
<validate-on-match>true</validate-on-match>
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/>
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter"/>
</validation>
</datasource>
但即使在应用此配置后,我在ClearDB管理控制台中看到空闲连接仅在90秒后关闭而在60秒(1分钟)之后关闭,因为它被指定为“idle-timeout-”分钟“参数。
我已经在他们的邮件列表中与Keycloak的人谈过,他们建议尝试this stackoverflow question的解决方案,但它没有帮助。他们还说,它看起来不像Keycloak问题,而是Wildfly的问题。
那么,你们中的任何人都面临过类似的情况吗?或者你可能有一些想法为什么这些空闲连接没有被关闭。
谢谢!