Configuration du cache client -L'événement afterCreate est déclenché même en cas de mise à jour -Comment les événements fonctionnent dans Gemfire?
<region name="test" refid="PROXY">
<region-attributes>
<cache-listener>
<class-name>com.test.cache.SimpleCacheListener</class-name>
</cache-listener>
</region-attributes>
</region>
Pour la configuration du côté client ci-dessus, je l'ai utilisé un CacheListener qui écoute d'événement pour ce cache "test".
Le problème auquel je suis confronté est même lors d'un événement de mise à jour, c'est-à-dire en mettant une valeur différente pour la même clé dans le cache, un événement afterCreate est déclenché.
à-dire
region.put("test key","test value")
et
region.put("test key","test updated value")
à la fois de générer un afterCreateEvent dans Listener.
ÉDITÉ
Permettez-moi d'être peu plus clair sur ce que je veux obtenir here.I veux que mon côté client à notifier tout en faisant une entrée si cette entrée est déjà là dans le serveur de cache ou ne pas.
par exemple. Si l'entrée [Test, Value] existe déjà sur le Cache Server pour une région, alors en faisant un put [Test, Value1], le client doit savoir qu'il s'agit d'une mise à jour et cela doit être fait indépendamment du fait que cette entrée existe dans cache du client ou non.
J'ai essayé quelque chose comme this-
<region name="test" refid="PROXY" >
<region-attributes data-policy="normal">
<!-- <region-attributes> -->
<subscription-attributes interest-policy="all"/>
<cache-listener>
<class-name>com.cache.test.SimpleCacheListener</class-name>
</cache-listener>
</region-attributes>
</region>
Après avoir fait des changements ci-dessus, il détecte les événements de mise à jour, mais seulement si le même client vient de faire une entrée et essayer le mettre à jour et non pour les entrées créées précédemment.
S'il vous plaît aidez-moi et faites-moi savoir si quelque chose me manque.
Veuillez vérifier le commentaire EDITED. – schhajed