WildFly Infinispan положить получить не работает должным образом - PullRequest
0 голосов
/ 27 апреля 2018

WildFly 10.0.0-финал

Infinispan 8.1.0-Final

Я работаю с 2-мя узлами одинаковой конфигурации standalone-full-ha

/subsystem=infinispan/cache-container=infinispan_cache:add( aliases=["infinispan_cache-alias"], default-cache=default_cache, start=LAZY)
/subsystem=infinispan/cache-container=infinispan_cache/transport=TRANSPORT/:add(lock-timeout=60000, stack=tcp)
/subsystem=infinispan/cache-container=infinispan_cache/replicated-cache=default_cache:add(mode=ASYNC)

Я получаю кеш таким образом

@Resource(lookup = "java:jboss/infinispan/cache/infinispan_cache/default_cache")
private org.infinispan.Cache<String, Object> cache;

Я использую putForExternalRead, тогда другой узел знает значение, используя get, с другой стороны, все идет хорошо, но когда я использую get из узла, который ставит значение, возвращает ноль.

cache.putForExternalRead("hola","Hola prueba");
Object o = cache.get("hola");//This o is null

1 Ответ

0 голосов
/ 04 апреля 2019

Решение состояло в том, чтобы правильно настроить Jgroups со стеком TCP и моим собственным кешем при пакетной транзакции SYNC

<subsystem xmlns="urn:jboss:domain:infinispan:4.0">
        ...
        <cache-container name="my_infinispan_cache" aliases="my_infinispan_cache-alias" default-cache="default_cache">
            <transport lock-timeout="60000"/>
            <replicated-cache name="default_cache" mode="SYNC">
                <locking isolation="READ_COMMITTED"/>
                <transaction locking="OPTIMISTIC" mode="BATCH"/>
                <eviction strategy="NONE" max-entries="-1"/>
                <expiration lifespan="-1" max-idle="-1"/>
            </replicated-cache>
        </cache-container>
    </subsystem>
    ...
    <subsystem xmlns="urn:jboss:domain:jgroups:4.0">
        <channels default="ee">
            <channel name="ee" stack="tcp"/>
        </channels>
        <stacks>           
            <stack name="udp">
                ...
            </stack>
            <stack name="tcp">
                <transport type="TCP" socket-binding="jgroups-tcp"/>
                <protocol type="MPING" socket-binding="jgroups-mping"/>
                <protocol type="MERGE3"/>
                <protocol type="FD_SOCK" socket-binding="jgroups-tcp-fd"/>
                <protocol type="FD"/>
                <protocol type="VERIFY_SUSPECT"/>
                <protocol type="pbcast.NAKACK2"/>
                <protocol type="UNICAST3"/>
                <protocol type="pbcast.STABLE"/>
                <protocol type="pbcast.GMS"/>
                <protocol type="MFC"/>
                <protocol type="FRAG2"/>
            </stack>
        </stacks>
    </subsystem>
...