Why do these Hazelcast warnings appear?

I use Hazelcast to cache JMS themes.

Everything works fine to a certain extent. After about 30-40 minutes of work, I begin to receive:

WARNING: [192.168.3.102]:5701 [devGroup] RedoLog{key=Data{partitionHash=-1465305045} size= 10, operation=CONCURRENT_MAP_PUT_IF_ABSENT, target=Address[192.168.3.102]:5701, targetConnected=false, redoCount=910, migrating=null partition=Partition [186]{ 0:Address[192.168.3.102]:5701 } } 

As I understood from reading the dev forums, these are Redo warnings, meaning that Hazelcast cannot connect to the specified instance target=Address[192.168.3.102]:5701 to distribute the cache.

However, the strange thing is that my configuration has only one node, which is the current server instance:

 INFO: [192.168.3.102]:5701 [devGroup] Members [1] { Member [192.168.3.102]:5701 this } 

I use spring to configure it:

 <hz:hazelcast id="hazelcastInstance"> <hz:config> <hz:group name="devGroup" password="pass"/> <hz:properties> <hz:property name="hazelcast.merge.first.run.delay.seconds">5</hz:property> <hz:property name="hazelcast.merge.next.run.delay.seconds">5</hz:property> </hz:properties> <hz:network port="5701" port-auto-increment="true"> <hz:join> <hz:multicast enabled="false" /> <hz:tcp-ip enabled="true"> <hz:members>192.168.3.102</hz:members> </hz:tcp-ip> </hz:join> <hz:symmetric-encryption enabled="true" algorithm="PBEWithMD5AndDES" salt="thesalt" password="thepass" iteration-count="19"/> <hz:asymmetric-encryption enabled="false" key-password="thekeypass" key-alias="local" store-type="JKS" store-password="thestorepass" store-path="keystore"/> </hz:network> </hz:config> </hz:hazelcast> 

I am using Hazelcast 2.1, spring 3.1 and Tomcat 7

So does anyone know why I am getting warnings?

Thanks,


To respond to comments:

I use it as follows:

 final ConcurrentMap<K, V> cachedMap = getHazelcast().getMap(region); cachedMap.putIfAbsent(key, value); 

The getHazelcast() method returns the entered HazelcastInstance via spring (the one specified in the above configuration, I checked the bean id and it seems to be good).


Update 2.

Maximum size added on map:

 final MapConfig mapConfig = hazelcast.getConfig().getMapConfig(region); .... val is calculated here .... mapConfig.getMaxSizeConfig().setSize(val); 

val cannot be less than 25000

I tried without adjusting the size, but I still get warnings.

I also use map.values(SqlPredicate("")) to get values ​​by date.

+4
source share
1 answer

If there is a max-size for the card, put operations after the card reaches the max-size value will go into the redo loop until the card size is reduced to the maximum size in order to be able to insert a new record,

Either you must remove any value from the card, or you must define some kind of eviction for this card. I mean, you can define one or more of the following:

  • set eviction-policy and eviction-percentage
  • set a time-to-live-seconds
  • set a max-idle-seconds

For more information, see Hazelcast Card Ejection.

+5
source

All Articles