У меня есть кластер gemfire с версией 8.1.0, работающий с двумя серверами и локатором. Использование приложения Pulse UI Я вижу, что кластер запущен и работает.Pivotal Gemfire NoAvailableLocatorsException
Из моего ноутбука я могу выполнить ping ip-адрес блока unix RHEL, в котором работает кластер.
Кроме того, я смог успешно подключиться к кластеру с помощью команды gfsh из моего ноутбука:
gfsh> подключить --locator = локатор-ф [15101] `
Но я пытаюсь подключиться в кластере с клиентом яровой приложения (с помощью пружины gemfire данных 1.5.0.RELEASE) работает в моем ноутбуке, используя под яровой кэш gemfire данных XML:
XML-кэша клиента, как показано ниже:
<gfe:pool id="gemfire-pool" subscription-enabled="true" >
<gfe:locator host="locator-ip" port="locator-port"/>
</gfe:pool>
Но я получаю ниже исключение:
com.gemstone.gemfire.cache.client.NoAvailableLocatorsException: Unable to connect to any locators in the list [locator-host:15101, locator-ip/locator-ip:15101]
at com.gemstone.gemfire.cache.client.internal.AutoConnectionSourceImpl.findServer(AutoConnectionSourceImpl.java:136)
at com.gemstone.gemfire.cache.client.internal.ConnectionFactoryImpl.createClientToServerConnection(ConnectionFactoryImpl.java:206)
at com.gemstone.gemfire.cache.client.internal.pooling.ConnectionManagerImpl.borrowConnection(ConnectionManagerImpl.java:214)
вопрос всего напоминает была размещена
Gemfire client server topology throws NoAvailableLocatorsException
Но выше ошибка в другом методе в классе ConnectionManagerImpl.
EDIT: XML-кэш имеет под декларацией клиента кэша:
<util:properties id="gemfire-props">
<prop key="log-level">error</prop>
</util:properties>
<gfe:client-cache id="gemfireCache" pool-name="gemfire-pool" properties-ref="gemfire-props">
<gfe:client-region id="skuInfoRegionBean" pool-name="gemfire-pool"
name="SKU_INFO" shortcut="CACHING_PROXY">
</gfe:client-region>
Ну, вы переименовали пул пула, так что вы указали Пул на отдельном клиенте Регионы ... . Обратите внимание: строго не нужно явно указывать ClientCache (по умолчанию это «gemfireCache») или пул Pool (по умолчанию «DEFAULT»), если вы не настроили более 1 пула. –
Да, я знаю об этом ... Я отредактировал вопрос, чтобы добавить более подробно –
Правильно, но сообщение NoAvailableLocatorsException немного вводит в заблуждение. То естьсообщение «Исключение» вызывает 2 отдельных локатора «[локатор-хост: 15101, locator-ip/locator-ip: 15101]», прослушивающий один и тот же порт, но по-видимому разные «хосты» (например, «локатор-хост» и «локатор» -ip "). (Боковое замечание: я предполагаю, что вы заменили псевдонимы для фактических имен/IP-адресов, здесь). Тем не менее, ваша конфигурация Spring (Pool bean) только объявляет 1 локатор ( ) ... локатор работает на «locator-ip», прослушивая 15101. –