バージョン 8.1.0 の gemfire クラスターを 2 つのサーバーと 1 つのロケーターで実行しています。Pulse UI アプリケーションを使用すると、クラスターが稼働中であることがわかります。
ラップトップから、クラスターが実行されている RHEL UNIX ボックスの IP に ping を実行できます。
また、ラップトップから gfsh コマンドを使用してクラスターに正常に接続できます。
gfsh>connect --locator=locator-ip[15101]`
しかし、以下の spring data gemfire キャッシュ xml を使用して、ラップトップで実行されているクライアント spring アプリケーション (spring data gemfire 1.5.0.RELEASE を使用) からクラスターに接続しようとしています。
クライアント キャッシュ 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 クライアント サーバー トポロジが NoAvailableLocatorsException をスローする
しかし、上記のエラーは ConnectionManagerImpl クラスの別のメソッドにあります。
編集: キャッシュ xml には以下の client-cache 宣言があります。
<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>