我有一個運行兩個服務器和一個locator的版本8.1.0的gemfire集羣。使用Pulse UI應用程序我可以看到集羣已啓動並正在運行。Pivotal Gemfire NoAvailableLocatorsException
從我的筆記本電腦中,我可以ping集羣正在運行的RHEL unix框的ip。
而且我能夠使用gfsh命令我的筆記本電腦成功連接到集羣:
gfsh>連接--locator =定位-IP [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類不同的方法。
編輯: 緩存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>
那麼,你重命名池bean,所以你指定了單個客戶區域上的池......。請注意,除非您配置了多個Pool,否則顯式命名ClientCache(默認爲「gemfireCache」)或Pool Bean(默認值爲「DEFAULT」)並不是必須的。 –
是的我意識到這一點...我編輯了問題以添加更多詳細信息 –
正確,但NoAvailableLocatorsException消息有點誤導。即異常消息正在呼叫2個單獨的定位器「[locator-host:15101,locator-ip/locator-ip:15101]」在同一個端口上,但在看似不同的「主機」上(例如「locator-host」和「locator -ip「)。 (附註:我猜你在這裏用實際名稱/ IP代替別名)。但是,您的Spring(Pool bean)配置僅聲明1 Locator( )...在locator-ip上運行的定位器在15101上偵聽。 –