Jgroup和weblogic:发件人不在表

时间:2017-08-28 13:02:25

标签: weblogic ehcache jgroups

我正在尝试为我的应用程序实现ehcache复制。以下是jar版本: 的Ehcache-jgroupsreplication:1.7 ehcache-core 2.5.2 jgroups 3.1.0

启动我的应用程序时,在服务器日志中获取以下行:

GMS:地址= ABC111-33601,群集= EH_CACHE,物理地址= 10.x.x.xx:1123

在应用程序日志中收到以下警告:

ABC111-33601:从ABC222-40262丢弃了消息1(发送者不在表[ABC111-33601]中),视图= [ABC111-33601 | 0] [ABC111-33601]

echache.xml是:

<?xml version="1.0" encoding="UTF-8"?>
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd"
    updateCheck="false">
    <diskStore path="java.io.tmpdir"/>

    <cacheManagerPeerProviderFactory
        class="net.sf.ehcache.distribution.jgroups.JGroupsCacheManagerPeerProviderFactory"
        properties="connect=TCP(bind_port=1123):
        TCPPING(initial_hosts=ABC111[1123],ABC222[1123],ABC333[1123];port_range=10;timeout=3000;num_initial_members=4):
        VERIFY_SUSPECT(timeout=1500):
                        pbcast.NAKACK(use_mcast_xmit=false;use_mcast_xmit_req=false;retransmit_timeout=3000):
                        pbcast.GMS(join_timeout=5000):
                        FRAG2(frag_size=60K)"
        propertySeparator="::" />
    <defaultCache
        maxElementsInMemory="1000"
        eternal="false"
        timeToIdleSeconds="120"
        timeToLiveSeconds="120"
        overflowToDisk="false"
        diskPersistent="false"
        diskExpiryThreadIntervalSeconds="120">              
       </defaultCache>
<cache name="com.abc.tariff"
        maxElementsInMemory="1000"
        eternal="false"
        overflowToDisk="false"
        timeToIdleSeconds="1800"
        timeToLiveSeconds="1800">
        <cacheEventListenerFactory
        class="net.sf.ehcache.distribution.jgroups.JGroupsCacheReplicatorFactory"
        properties="replicateAsynchronously=true, replicatePuts=true, replicateUpdates=true, replicateUpdatesViaCopy=false, replicateRemovals=true" />      
        </cache>
    <cache name="com.abc.customer"
        maxElementsInMemory="1000"
        eternal="false"
        overflowToDisk="false"
        timeToIdleSeconds="120"
        timeToLiveSeconds="180">
        <cacheEventListenerFactory
        class="net.sf.ehcache.distribution.jgroups.JGroupsCacheReplicatorFactory"
        properties="replicateAsynchronously=true, replicatePuts=true, replicateUpdates=true, replicateUpdatesViaCopy=false, replicateRemovals=true" />      
        </cache>
</ehcache>

ABC111,ABC222和ABC333不在weblogic群集中。

知道为什么警告即将发生,我的猜测是复制还没有因此而开始或有吗?

2 个答案:

答案 0 :(得分:0)

您的群集尚未形成。

警告说您收到了来自ABC222的消息,该消息声称位于同一群集中,但不在群组视图中。

你的配置看起来很奇怪,例如,UNICAST缺失,你没有故障检测协议,没有合并协议等。这是默认的JGroups配置ehcache配备吗?那将是非常错误的!

您可以使用probe(查看JGroups手册以获取详细信息)来确定群集是否正确形成。我的猜测是,向bind_addr添加正确的TCP可以解决此问题......

答案 1 :(得分:0)

在您提出建议后,我更改了以下设置:

<cacheManagerPeerProviderFactory
class="net.sf.ehcache.distribution.jgroups.JGroupsCacheManagerPeerProviderFactory"
properties="connect=TCP(bind_port=1123;bind_addr=10.x.x.58):
TCPPING(initial_hosts=10.x.x.58[1123],10.x.x.59[1123];port_range=10;timeout=3000;num_initial_members=2;break_on_coord_rsp=true):
MERGE2(min_interval=10000;max_interval=30000):
FD_SOCK:
FD(timeout=3000;max_tries=3):
VERIFY_SUSPECT(timeout=1500):
BARRIER:
pbcast.NAKACK2(use_mcast_xmit=false;discard_delivered_msgs=true):
UNICAST:
pbcast.STABLE(stability_delay=1000;desired_avg_gossip=50000;max_bytes=4M):
 pbcast.GMS(print_local_addr=true;join_timeout=5000;view_bundling=true):
UFC(max_credits=2M;min_threshold=0.4):
MFC(max_credits=2M;min_threshold=0.4):
FRAG2(frag_size=60K):
pbcast.STATE_TRANSFER"
propertySeparator="::" />

还在weblogics参数中添加了以下内容:

-Djava.net.preferIPv4Stack=true -Djgroups.resolve_dns=true -Djgroups.bind_addr=10.x.x.58 -Djgroups.tcpping.initial_hosts=10.x.x.58[1123],10.x.x.59[1123]

尝试运行问题:

java -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv6Addresses=false -classpath -cp E:/jgroup/jgroups-3.1.0.Final.jar org.jgroups.tests.Probe

-- send probe on /224.0.75.75:7500

1 (217 bytes):
local_addr=ABC111-65460 [XX-78af-fb20-ae58-XX]
cluster=EH_CACHE
physical_addr=ABC111.qaoneadr.local:1123
view=[ABC222-23806|1] [ABC222-23806, ABC111-65460]
version=3.1.0.Final

2 (247 bytes):
local_addr=ap-insight2t-47964 [bbc6c770-e344-ceaa-18a9-f690284ca154]
cluster=OSCacheBus_insight_II_Insight_SITE_cluster
view=[ap-insight3t-30967|697] [ap-insight3t-30967, ap-insight2t-47964]
physical_addr=10.XX.XX.32:7900
version=3.3.5.Final

3 (217 bytes):
local_addr=ABC222-23806 [XX-d700-a732-227a-XX]
cluster=EH_CACHE
physical_addr=ABC222.qaoneadr.local:1123
view=[ABC222-23806|1] [ABC222-23806, ABC111-65460]
version=3.1.0.Final

3 responses (3 matches, 0 non matches)

但仍然得到:

ABC111-65460:从ABC222-23806丢弃了消息1(发送者不在表[ABC111-65460]中),视图= [ABC111-65460 | 0] [ABC111-65460]