Connecting two Keycloak 24 cluster


After upgrading from Keycloak 17 to Keycloak 24 i am trying to connect our two dockerized keycloaks on server A to share a cache with the two dockerized keycloaks on server B.

We did this until now with TCPPING by configuring a jgroup stack along with a server-tag in the infinispan-cache.xml. Although the Infinispan JGroups configuration linked in Keycloak caching documentation lists the server tag configuration, keycloaks infinispan does not parse the tag and i am not able to find it in the Schema.

Please advice on how to properly share a cache between instances on different servers, is JDBC_PING the way to go?

Thank you very much in advance.

I would recommend JDBC_PING. That discussion you linked to is a good starting place.

I used to use TCPPING to achieve this prior to Keycloak 24. Does it mean that starting with Keycloak 24, TCPPING won’t work anymore?

I did not manage to get TCPPING to work, while tcp packets are reaching the docker container during startup from the other nodes, infinispan does not act on it. Regarding JDBC_PING i have the issue that nodes on different VMs override each others entries in the database jgroupsping table.
When i add custom queries to the cache.xml oracle is not able to fill in the values correctly, placeholders marked with ? will not receive the actual values but only the index of the value like :1 :2 or :3.