Я рассматриваю документацию для RemoteCache, RemoteCacheManager, Lifecycle Start и Lifecycle Stop.RemoteCache, RemoteCacheManager и жизненный цикл
Мне сложно понять, что именно делают методы start() и stop().
Причина, по которой я спрашиваю, заключается в том, что я пытаюсь удаленно останавливать и запускать конкретный кеш. Я хочу сделать это, чтобы я мог наблюдать за тем, как работают мои приложения во время остановленного/начального состояния. я пишу тест, который удаленно останавливает кеш. Когда это произойдет, я создаю симулированный вызов, чтобы увидеть, как мое программное обеспечение ведет себя сейчас, когда кеш отключен.
Я попытался вызвать функции stop() и start() в RemoteCache и RemoteCacheManager на конкретном экземпляре, но никакие исключения, по-видимому, не возникают из-за зависимости infinispan. Таким образом, это заставляет меня поверить, что я неправильно истолковываю цель этих двух методов.
Моя программа звонит удаленный кэш с кодом, который выглядит следующим образом:
final RemoteCache<String, String> cache = remoteCacheManager.getCache(CACHE_NAME);
if (cache != null) {
if (cache.containsKey(key)) {
// Do something
} else {
// Do something else
}
} else {
throw new Exception("cache null");
}
Мой тест звонит удаленный кэш с некоторым кодом, как это:
final Properties props = new Properties();
props.put(ConfigurationProperties.SERVER_LIST, serverList);
props.put(ConfigurationProperties.SO_TIMEOUT, 5000);
props.put(ConfigurationProperties.CONNECT_TIMEOUT, 5000);
rmtCacheMgr = new RemoteCacheManager(props, true);
В тесте я может выполнить что-то подобное, чтобы остановить удаленный кеш:
rmtCacheMgr.close();
Конечно, если моя мягкая ware call getCache, и я установил, что кеш остановился во время моего теста, он должен бросить какое-то исключение или подать жалобу на какой-то уровень, нет?
Anup, мой вопрос не обязательно заключается в том, как настроить диспетчер удаленного кэша, а что делать с методами start и stop? Разумеется, диспетчер удаленного кэша должен иметь возможность напрямую взаимодействовать с сетью данных босса, нет? – angryip
-start() и stop() - метод Lifecycle. Чтобы иметь возможность использовать RemoteCache, сначала необходимо запустить RemoteCacheManager: помимо других вещей, это создает соединения с серверами Hot Rod. Запуск RemoteCacheManager можно выполнить либо при создании, передав start == true в конструктор, либо используя конструктор, который сделает это для вас (см. Документацию C-tor); или после построения, вызвав RemoteCacheManager.start(). –
Это «дорогой» объект, так как он управляет набором постоянных TCP-соединений с серверами Hot Rod. Рекомендуется иметь только один экземпляр этого на JVM и кэшировать его между вызовами на сервер (т. Е. Операции remoteCache). -RemoteCacheManager.stop() необходимо явно вызывать, чтобы освободить все ресурсы (например, потоки, TCP-соединения). –