[ https://issues.apache.org/jira/browse/IGNITE-2786?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16170087#comment-16170087 ]
Bruno Barin commented on IGNITE-2786: ------------------------------------- Hey, Wouldn't be enough to implement CacheErrorHandler with something like this: {code:java} public class IgniteCacheErrorHandler implements CacheErrorHandler { private final SpringCacheManager springCacheManager; public IgniteCacheErrorHandler(SpringCacheManager springCacheManager) { this.springCacheManager = springCacheManager; } @Override public void handleCacheGetError(RuntimeException e, Cache cache, Object o) { if (e instanceof IllegalStateException) { logger.error("Failed to retrieve value from Cache, node seems to be in an inconsistent state. Restarting node.", e); springCacheManager.restartNode(); } else { throw e; } } @Override public void handleCachePutError(RuntimeException e, Cache cache, Object o, Object o1) { throw e; } @Override public void handleCacheEvictError(RuntimeException e, Cache cache, Object o) { throw e; } @Override public void handleCacheClearError(RuntimeException e, Cache cache) { throw e; } {code} And on SpringCacheManager add a restart method: {code:java} public void restartNode() { caches.entrySet().forEach(entry -> { caches.get(entry.getKey()).clear(); caches.remove(entry.getKey()); ignite.destroyCache(entry.getKey()); }); try { restart(); } catch (IgniteCheckedException e) { logger.error("Failed to restart ignite node",e); } } private void restart() throws IgniteCheckedException { stop(); start(); } private void start() throws IgniteCheckedException { if (cfgPath != null && cfg != null) { throw new IllegalArgumentException("Both 'configurationPath' and 'configuration' are " + "provided. Set only one of these properties if you need to start a Ignite node inside of " + "SpringCacheManager. If you already have a node running, omit both of them and set" + "'igniteInstanceName' property."); } if (cfgPath != null) ignite = IgniteSpring.start(cfgPath, springCtx); else if (cfg != null) ignite = IgniteSpring.start(cfg, springCtx); else ignite = Ignition.ignite(igniteInstanceName); } private void stop() { ignite.close(); } {code} > SpringCache doesn't survive client reconnect > -------------------------------------------- > > Key: IGNITE-2786 > URL: https://issues.apache.org/jira/browse/IGNITE-2786 > Project: Ignite > Issue Type: Improvement > Components: cache > Affects Versions: 1.5.0.final > Reporter: Valentin Kulichenko > > After a client disconnects and reconnects with new ID, Spring caching can't > be used, because existing cache instance are closed. -- This message was sent by Atlassian JIRA (v6.4.14#64029)