2016-09-26 2 views
0

他のマシンのクラスタで実行されているGridgainキャッシュにデータを格納しようとしています。私は、Gridgainキャッシュのメソッドを呼び出して、キャッシュ上にputメソッドを呼び出した後にこのメソッドを呼び出す際に、ClientDisconnectedExceptionを取得しています。ここでclass org.apache.ignite.IgniteClientDisconnectedException

は私のキャッシュの設定です:

// DPH cache 
     CacheConfiguration<K,V> DPHCacheCfg = new CacheConfiguration<>(DPH_CACHE); 
     DPHCacheCfg.setCacheMode(CacheMode.PARTITIONED); // Default. 
     DPHCacheCfg.setIndexedTypes(String.class, DPH.class); 
     DPHCacheCfg.setOffHeapMaxMemory(10 * 1024L * 1024L * 1024L); 
     DPHCacheCfg.setMemoryMode(CacheMemoryMode.ONHEAP_TIERED); 
     FifoEvictionPolicy evctPolicy = new FifoEvictionPolicy(); 
     DPHCacheCfg.setEvictionPolicy(evctPolicy); 

彼女は私がキャッシュにデータを入れる方法です:

DPHCache.put(K、V);ここで、Vはあるオブジェクトです。特定の回数のパットの後、私は以下の例外を抱えています。

avax.cache.CacheException: class org.apache.ignite.IgniteClientDisconnectedException: Operation has been cancelled (client node disconnected). 
    at org.apache.ignite.internal.processors.cache.GridCacheUtils.convertToCacheException(GridCacheUtils.java:1615) 
    at org.apache.ignite.internal.processors.cache.IgniteCacheProxy.cacheException(IgniteCacheProxy.java:1955) 
    at org.apache.ignite.internal.processors.cache.IgniteCacheProxy.put(IgniteCacheProxy.java:1155) 
    at com.elsevier.elssie.datafabric.LoadQuetzal.populateDPH(LoadQuetzal.java:246) 
    at com.elsevier.elssie.datafabric.LoadQuetzal.main(LoadQuetzal.java:163) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:497) 
    at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:294) 
    at java.lang.Thread.run(Thread.java:745) 
Caused by: class org.apache.ignite.IgniteClientDisconnectedException: Operation has been cancelled (client node disconnected). 
    at org.apache.ignite.internal.util.IgniteUtils$14.apply(IgniteUtils.java:829) 
    at org.apache.ignite.internal.util.IgniteUtils$14.apply(IgniteUtils.java:827) 
    ... 11 more 
Caused by: class org.apache.ignite.internal.IgniteClientDisconnectedCheckedException: Operation has been cancelled (client node disconnected). 
    at org.apache.ignite.internal.processors.cache.GridCacheMvccManager.disconnectedError(GridCacheMvccManager.java:406) 
    at org.apache.ignite.internal.processors.cache.GridCacheMvccManager.onDisconnected(GridCacheMvccManager.java:382) 
    at org.apache.ignite.internal.processors.cache.GridCacheSharedContext.onDisconnected(GridCacheSharedContext.java:151) 
    at org.apache.ignite.internal.processors.cache.GridCacheProcessor.onDisconnected(GridCacheProcessor.java:934) 
    at org.apache.ignite.internal.IgniteKernal.onDisconnected(IgniteKernal.java:3023) 
    at org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$4.onDiscovery(GridDiscoveryManager.java:588) 
    at org.apache.ignite.spi.discovery.tcp.ClientImpl$MessageWorker.notifyDiscovery(ClientImpl.java:2058) 
    at org.apache.ignite.spi.discovery.tcp.ClientImpl$MessageWorker.notifyDiscovery(ClientImpl.java:2039) 
    at org.apache.ignite.spi.discovery.tcp.ClientImpl$MessageWorker.body(ClientImpl.java:1435) 
    at org.apache.ignite.spi.IgniteSpiThread.run(IgniteSpiThread.java:62) 

答えて

1

これは通常、すべてのサーバーノードが停止したときに発生します。正確に何が起こったのかを理解するためにログを確認する必要があります。

少なくとも1台のサーバーが戻ったら、クライアントは自動的に再接続することにも注意してください。 IgniteClientDisconnectedExceptionには、再接続が発生したときに完了する未来を返すメソッドreconnectFuture()があります。そのため、クラスターが機能するまでクライアントをブロックすることができます。