To implement this funtionality we added another distributed map from client to joined groups. This map is cleaned when a client leaves a group, a timed out client is detected by the associated backend or in the case that backend is shut down or crashes during the eviction of the clientID after the timeout configured in rtResourceDirectory.properties.

The content of the distributed map can be inspected via jmx as com.openexchange.realtime.DistributedGroupManager

Content of the new config file rtClientMapping.properties:

# Configuration file for the 'clientMapping' distributed map. Configuration
# is merely equal to the options available in Hazelcast, see
# http://www.hazelcast.com/docs.jsp for details.
#
# Please note that all configuration values must be equal on each node in the
# cluster.

# Number of backups. If 1 is set as the backup-count for example, then all
# entries of the map will be copied to another JVM for fail-safety. 0 means no
# backup.
com.openexchange.hazelcast.configuration.map.backu pCount=1

# Number of nodes with async backups. Async backups do not block operations
# and do not require acknowledgements. 0 means no backup. Any integer between
# 0 and 6. Default is 0, setting bigger than 6 has no effect.
com.openexchange.hazelcast.configuration.map.async BackupCount=0

# Can we read the local backup entries? Default value is false for strong
# consistency. Being able to read backup data will give you greater
# performance.
com.openexchange.hazelcast.configuration.map.readB ackupData=true

# The name of the map. Don't change this on your own.
com.openexchange.hazelcast.configuration.map.name= rtClientMapping-1