Экземпляр Hazelcast не активен при доступе к распределенной карте

#java #hazelcast

Вопрос:

Я запускаю приложение, которое использует Hazelcast во встроенном режиме. Периодически наблюдая эту проблему при доступе к кэшу , приложение выдает ошибку «Экземпляр Hazelcast не активен».

Файлы кода выглядят следующим образом :

 public DistributedServiceProvider() {
            
        LOGGER.info("DistributedServiceProvider: "   type);

       if ("hazelcast".equalsIgnoreCase(type)) {
            hazelcastInstance = HazelcastConfig.getInstance();
        } else {
            throw new Exception(NOT_CONFIGURED);
        }
    }

    public IMap getMap(String name) { 
        if (hazelcastInstance != null) {
            return hazelcastInstance.getMap(name);
        }
        throw new RuntimeException(NOT_INITIALIZED);
    }
 

При запуске приложения и выполнении некоторых вариантов использования периодически возникает следующая ошибка.

 An exception has occurred. Method:: compareIRTrackerRedemptions[null, Fri Apr 30 00:00:00 EDT 2021, Mon May 31 00:00:00 EDT 2021, true]
    Root Cause: com.hazelcast.core.HazelcastInstanceNotActiveException: Hazelcast instance is not active!
        at com.hazelcast.instance.impl.HazelcastInstanceProxy.getOriginal(HazelcastInstanceProxy.java:315)
        at com.hazelcast.instance.impl.HazelcastInstanceProxy.getMap(HazelcastInstanceProxy.java:95)
        at deshaw.descap.server.cache.provider.DistributedServiceProvider.getMap(DistributedServiceProvider.java:52)
        at deshaw.descap.server.cache.BasicCache.getData(BasicCache.java:100)
        at deshaw.descap.server.cache.FundCaches$FundCache.get(FundCaches.java:185)
 

Комментарии:

1. Есть ли еще какие-либо com.hazelcast.* сообщения в журналах, предшествующих исключению ? Поскольку ваш hazelcastInstance не равен нулю, вы обычно ожидаете этого только в том случае, если что-то отключит его с помощью Hazelcast.shutdownAll() или одного из других механизмов выключения.

2. @NeilStevenson Я действительно исследовал это под углом , но, к сожалению, вокруг этого ничего не было. Это только журналы вокруг com.hazelcast.* , остальные-трассировка стека приложений. все, что вы могли бы предложить в конфигурации hazelcast, что могло бы прояснить ситуацию.

3. Попробуйте настроить системное свойство hazelcast.logging.type в соответствии с используемым вами РЕГИСТРАТОРОМ. Если уровень ведения com.hazelcast журнала-это ИНФОРМАЦИЯ , вы получите более подробную информацию.