[Fixed] Coherence, загрузка данных на ноде с localstorage=false

May 24, 2011 18:47

Добрый вечер!
Второй день вожусь с проблемой, истоки которой никак не могу понять.

На одной виртуалке (внутри клауда) поднят Coherence-кластер из 2-х нод

Конфигурация 1-ой ноды:
tangosol.coherence.cluster=testCluster
tangosol.coherence.clusteraddress=239.235.253.228
tangosol.coherence.clusterport=6270
tangosol.coherence.distributed.backupcount=1
tangosol.coherence.distributed.localstorage=true
tangosol.coherence.distributed.threads=4
tangosol.coherence.invocation.threads=4
tangosol.coherence.localport=8083
tangosol.coherence.localport.adjust=false
tangosol.coherence.log=log4j
tangosol.coherence.machine=testMachine
tangosol.coherence.management=all
tangosol.coherence.management.remote=true
tangosol.coherence.member=Node1
tangosol.coherence.mode=dev
tangosol.coherence.priority=5
tangosol.coherence.role=StorageNode
tangosol.coherence.ttl=4
tangosol.coherence.wka=localhost
tangosol.coherence.wka.port=8083

Конфигурация 2-ой ноды:
tangosol.coherence.cluster=testCluster
tangosol.coherence.clusteraddress=239.235.253.228
tangosol.coherence.clusterport=6270
tangosol.coherence.distributed.backupcount=1
tangosol.coherence.distributed.localstorage=false
tangosol.coherence.distributed.threads=4
tangosol.coherence.invocation.threads=4
tangosol.coherence.localport=8084
tangosol.coherence.localport.adjust=false
tangosol.coherence.log=log4j
tangosol.coherence.machine=testMachine
tangosol.coherence.management=all
tangosol.coherence.management.remote=true
tangosol.coherence.member=Node2
tangosol.coherence.mode=dev
tangosol.coherence.priority=5
tangosol.coherence.role=ServiceNode
tangosol.coherence.ttl=4
tangosol.coherence.wka=localhost
tangosol.coherence.wka.port=8083

Проблема:
Если грузить данные в кэщи на 2-ой ноде (ServiceNode), то ничего не происходит - кэши остаются пустыми. При этом процесс протекает нормально, никаких исключений нигде не бросается (в том числе самим Кохеренсом).
Но при попытке получить какой-либо объект из кэша на 2-ой ноде, инициируется загрузка этого объекта через read through на 1-ой ноде, он нормально грузится, попадает в кэш и возвращается.

Если грузить данные на 1-ой ноде (StorageNode), то всё хорошо - данные в кэши попадают.

Кластер, поднятый на физических машинах в той же конфигурации, работает нормально.

Предполагаю, что сообщения от 2-ой ноды не доходят до 1-ой. Вот только как это отследить и определить, кто их блокирует?

Буду благодарен за помощь или наводки.

UPDATE: чудеса отменяются, Coherence работает. Проблема оказалась в нашем коде: выставлялось неправильное значение одного property, о котором давно забыли, в результате объекты в кэш просто не клались.

Надо распечатать и повесить на рабочем месте табличку "Сначала код, потом предположения" :-)

java

Previous post Next post
Up