Относительно к этому вопросу Я установил клиентское приложение Spring Data Geode с
@EnableClusterDefinedRegions(clientRegionShortcut=ClientRegionShortcut.CACHING_PROXY)
и, убедившись, что все классы подключены автоматически, затем с помощью @Resource
регионы сервера Geode настроены и созданы на клиенте.
@Resource(name = "request")
private Region<String, Request> request;
Я могу поставить и получить регионы, как это. Однако, когда я пытаюсь зарегистрировать интерес к ключу на сервере, обновления от других клиентов к серверу получает клиент весенней загрузки. Код интереса регистра:
request.registerInterestForAllKeys();
request.getAttributesMutator().addCacheListener(new myListener());
Журналы показывают, что интерес добавляется к региону:
DEBUG [main] org.apach.geode.inter.cache.GemFireCacheImpl 4388 registerInterestStarted: registerInterestsStarted: new count = 1
TRACE [main] org.apach.geode.inter.InternalDataSerializer 2194 basicWriteObject: basicWriteObject: KEYS_VALUES
TRACE [main] org.apach.geode.inter.InternalDataSerializer 1535 writeDSFID: writeDSFID 37 class=class org.apache.geode.internal.cache.tier.sockets.InterestResultPolicyImpl
TRACE [main] org.apach.geode.cache.clien.inter.OpExecutorImpl 568 executeOnQueuesAndReturnPrimaryResult: sending org.apache.geode.cache.client.internal.RegisterInterestOp$RegisterInterestOpImpl@5e1a7d3 to backups: []
TRACE [main] org.apach.geode.cache.clien.inter.OpExecutorImpl 584 executeOnQueuesAndReturnPrimaryResult: sending org.apache.geode.cache.client.internal.RegisterInterestOp$RegisterInterestOpImpl@5e1a7d3 to primary: Connection[1.2.3.4:40404]@613231852
TRACE [main] org.apach.geode.cache.clien.inter.AbstractOp 85 attemptSend: Sending op=RegisterInterestOp$RegisterInterestOpImpl using Connection[1.2.3.4:40404]@613231852
Когда другой клиент добавляет или изменяет значение в регионе сервера, это событие не является добираемся до весеннего загрузочного клиента. CacheListenerAdapter с обычными переопределениями afterCreate
и afterUpdate
не вызывается.
Вариант использования - регистрация и отмена регистрации на множестве различных ключей на лету.
Если я использую пружину Загрузите само приложение, чтобы поместить его в локальный регион, затем вызывается обработчик события . Так что проблема не в весеннем загрузочном коде, это проблема регистрации пула соединений и сервера.