简体   繁体   中英

Error in JGROUPs for EhCache, drop message sender not in table

I have four nodes in a cluster, and I need synchronize them. When node BRJGSD309173 tried send a messages through JGROUPs to BRJGSD333007, the server BRJGSD333007 informed the message below:

11:34:07,759 WARN [org.jgroups.protocols.pbcast.NAKACK] (Incoming-2,maestroCacheManager,BRJGSD333007-24075) BRJGSD333007-24075: dropped message 4787 from BRJGSD309173-7667 (sender not in table [BRJGSD333007-24075]), view=[BRJGSD333007-24075|0] [BRJGSD333007-24075]

The follow configuration of eh jgroups_tcp.xml

<?xml version='1.0'?>
 <config>
     <TCP bind_port="7800" 
          max_bundle_size="5M" />
     <TCPPING timeout="3000"
              initial_hosts="brjgsm10.weg.net[7800],brjgsm11.weg.net[7800],brjgsd309173.weg.net[7800],brjgsd333007.weg.net[7800]"
              port_range="10"
              num_initial_members="5"/>
     <VERIFY_SUSPECT timeout="1500"  />
     <pbcast.NAKACK use_mcast_xmit="false"
                    retransmit_timeout="300,600,1200,2400,4800"
                discard_delivered_msgs="true"/>
     <pbcast.STABLE stability_delay="1000" desired_avg_gossip="50000" max_bytes="400000"/>
     <pbcast.GMS print_local_addr="true" join_timeout="5000" view_bundling="true"/>
 </config>

And a fragment of ehcache.xml

<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    updateCheck="false" xsi:noNamespaceSchemaLocation="ehcache.xsd" name="maestroCacheManager">
...
    <cache 
        name="objectServiceExecute"
        maxEntriesLocalHeap="100000" 
        eternal="false" >
        <cacheEventListenerFactory
              class="net.sf.ehcache.distribution.jgroups.JGroupsCacheReplicatorFactory"
              properties="replicateAsynchronously=true, replicatePuts=true,
              replicateUpdates=true, replicateUpdatesViaCopy=true, replicateRemovals=true" />
    </cache>

    <diskStore 
        path="java.io.tmpdir/ehcache" />

    <cacheManagerPeerProviderFactory
        class="net.sf.ehcache.distribution.jgroups.JGroupsCacheManagerPeerProviderFactory"
        properties="file=jgroups_tcp.xml"
        propertySeparator=";" 
    /> 

    <cache 
        name="org.hibernate.cache.internal.StandardQueryCache" 
        maxElementsInMemory="10000000" 
        eternal="true" 
        memoryStoreEvictionPolicy="LRU" />

    <defaultCache 
        maxElementsInMemory="10000000" 
        eternal="true"
        memoryStoreEvictionPolicy="LRU" >
        <cacheEventListenerFactory
              class="net.sf.ehcache.distribution.jgroups.JGroupsCacheReplicatorFactory"
              properties="replicateAsynchronously=true, replicatePuts=true,
              replicateUpdates=true, replicateUpdatesViaCopy=true, replicateRemovals=true" />
    </defaultCache>

</ehcache>

This is a very stange JGroups configuration! You're missing failure detection protocols, UNICAST3 and MERFGE3 etc!

The error above means that you received a message from a member not in the cluster, so it was consequently dropped. Why the member was not in the cluster is unclear, perhaps it didn't join correctly. Since you don't have any failure detection protocols, it can't have been suspected and expelled.

I suggest copy tcp.xml shipped with JGroups and replace TCPPING with your TCPPING config. Also make sure you set bind_addr in TCP , to make sure JGroups binds to the correct interface.

Hope this helps, Cheers

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM