Hi all,
I deploy Keycloak server app to Cloud Foundry and use ClearDB service as
relational database for Keycloak.
ClearDB has a restriction, that it closes all connections, that are idle
for 90 seconds.
To not run into the situation, when Keycloak tries to use closed
connection, I've added following datasource configuration (based on Pivotal
recommendations
<
https://discuss.pivotal.io/hc/en-us/articles/230433268-Suggested-Configur...
):
- - - - - - - - -
<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>
- - - - - - - - -
But even after applying this configuration I see in the ClearDB management
console that idle connections are closed only after 90 seconds and not
after 60 seconds (1 minute) as it's specified with "idle-timeout-minutes"
parameter.
So, have anybody of you faced similar situation? Or maybe you have some
ideas why these idle connections are not being closed.
Thanks.
Kir