class org.apache.ignite.IgniteClientDisconnectedException

时间:2016-09-26 08:56:28

标签: caching gridgain ignite

我正在尝试填充在其他计算机上的群集上运行的Gridgain缓存。我在调用Gridgain上的方法时获取ClientDisconnectedException,并在调用Cache方法之后获取此方法。

这是我的缓存配置:

// 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 个答案:

答案 0 :(得分:1)

这通常在所有服务器节点停止时发生。您应该检查他们的日志以了解究竟发生了什么。

另请注意,当至少一台服务器恢复时,客户端将自动重新连接。 IgniteClientDisconnectedException具有reconnectFuture()方法,该方法返回将在重新连接发生时完成的未来,因此您可以阻止客户端,直到群集正常运行。