2015-09-28 54 views
0

我有一個運行兩個服務器和一個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> 

回答

0

這是一個網絡issue.It工程,當我嘗試從辦公室,但不通過vpn在家工作。

0

您運行的是什麼版本春數據的GemFire的GemFire的?另外,如果您可以共享連接到運行RHEL服務器的羣集的配置GemFire ClientCache(&池)的Spring配置,那將會很有幫助。

我的理解是,您的羣集正在「遠程」RHEL UNIX計算機上運行,​​並且您的客戶端正在從筆記本電腦運行,對嗎?

根據您Gfsh connect命令語法,你的Spring配置需要類似於...

<gfe:pool ...> 
    <gfe:locator host="locator-ip" port="15101"/> 
</gfe:pool> 

<gfe:client-cache/> 

... 

NoAvailableLocatorsException消息似乎奇特......「無法連接到任何定位器列表[locator-host:15101,locator-ip/locator-ip:15101]「並不完全正確。

+0

那麼,你重命名池bean,所以你指定了單個客戶區域上的池...... 。請注意,除非您配置了多個Pool,否則顯式命名ClientCache(默認爲「gemfireCache」)或Pool Bean(默認值爲「DEFAULT」)並不是必須的。 –

+0

是的我意識到這一點...我編輯了問題以添加更多詳細信息 –

+0

正確,但NoAvailableLocatorsException消息有點誤導。即異常消息正在呼叫2個單獨的定位器「[locator-host:15101,locator-ip/locator-ip:15101]」在同一個端口上,但在看似不同的「主機」上(例如「locator-host」和「locator -ip「)。 (附註:我猜你在這裏用實際名稱/ IP代替別名)。但是,您的Spring(Pool bean)配置僅聲明1 Locator()...在locator-ip上運行的定位器在15101上偵聽。 –