/** * Not yet sure what to do here. * <p> * @param ex * @param msg * @throws IOException */ private void handleException( Exception ex, String msg ) throws IOException { log.error( "Disabling lateral cache due to error " + msg, ex ); lateralCacheService = new ZombieCacheServiceNonLocal<K, V>( lateralCacheAttributes.getZombieQueueMaxSize() ); // may want to flush if region specifies // Notify the cache monitor about the error, and kick off the recovery // process. monitor.notifyError(); // could stop the net search if it is built and try to reconnect? if ( ex instanceof IOException ) { throw (IOException) ex; } throw new IOException( ex.getMessage() ); }
/** * Not yet sure what to do here. * <p> * @param ex * @param msg * @throws IOException */ private void handleException( Exception ex, String msg ) throws IOException { log.error( "Disabling lateral cache due to error " + msg, ex ); lateralCacheService = new ZombieCacheServiceNonLocal<K, V>( lateralCacheAttributes.getZombieQueueMaxSize() ); // may want to flush if region specifies // Notify the cache monitor about the error, and kick off the recovery // process. monitor.notifyError(); // could stop the net search if it is built and try to reconnect? if ( ex instanceof IOException ) { throw (IOException) ex; } throw new IOException( ex.getMessage() ); }
/** * Nothing right now. This should setup a zombie and initiate recovery. * <p> * @param ex * @param msg * @param eventName * @throws IOException */ @Override protected void handleException( Exception ex, String msg, String eventName ) throws IOException { // we should not switch if the existing is a zombie. if ( !( getRemoteCacheService() instanceof ZombieCacheServiceNonLocal ) ) { String message = "Disabling remote cache due to error: " + msg; logError( cacheName, "", message ); log.error( message, ex ); setRemoteCacheService( new ZombieCacheServiceNonLocal<K, V>( getRemoteCacheAttributes().getZombieQueueMaxSize() ) ); monitor.notifyError( this ); } if ( ex instanceof IOException ) { throw (IOException) ex; } throw new IOException( ex.getMessage() ); }
/** * Verify that a remove event gets added and then is sent to the service passed to propagate. * <p> * @throws Exception */ public void testRemoveThenWalk() throws Exception { // SETUP MockRemoteCacheService<String, String> service = new MockRemoteCacheService<String, String>(); ZombieCacheServiceNonLocal<String, String> zombie = new ZombieCacheServiceNonLocal<String, String>( 10 ); String cacheName = "testRemoveThenWalk"; String key = "myKey"; // DO WORK zombie.remove( cacheName, key, 123l ); zombie.propagateEvents( service ); // VERIFY assertEquals( "Updated element is not as expected.", key, service.lastRemoveKey ); }
/** * Verify that a removeAll event gets added and then is sent to the service passed to propagate. * <p> * @throws Exception */ public void testRemoveAllThenWalk() throws Exception { // SETUP MockRemoteCacheService<String, String> service = new MockRemoteCacheService<String, String>(); ZombieCacheServiceNonLocal<String, String> zombie = new ZombieCacheServiceNonLocal<String, String>( 10 ); String cacheName = "testRemoveThenWalk"; // DO WORK zombie.removeAll( cacheName, 123l ); zombie.propagateEvents( service ); // VERIFY assertEquals( "Updated element is not as expected.", cacheName, service.lastRemoveAllCacheName); } }
/** * Verify that a remove event gets added and then is sent to the service passed to propagate. * <p> * @throws Exception */ public void testRemoveThenWalk() throws Exception { // SETUP MockCacheServiceNonLocal<String, String> service = new MockCacheServiceNonLocal<String, String>(); ZombieCacheServiceNonLocal<String, String> zombie = new ZombieCacheServiceNonLocal<String, String>( 10 ); String cacheName = "testRemoveThenWalk"; String key = "myKey"; // DO WORK zombie.remove( cacheName, key, 123l ); zombie.propagateEvents( service ); // VERIFY assertEquals( "Updated element is not as expected.", key, service.lastRemoveKey ); }
/** * Verify that a removeAll event gets added and then is sent to the service passed to propagate. * <p> * @throws Exception */ public void testRemoveAllThenWalk() throws Exception { // SETUP MockCacheServiceNonLocal<String, String> service = new MockCacheServiceNonLocal<String, String>(); ZombieCacheServiceNonLocal<String, String> zombie = new ZombieCacheServiceNonLocal<String, String>( 10 ); String cacheName = "testRemoveThenWalk"; // DO WORK zombie.removeAll( cacheName, 123l ); zombie.propagateEvents( service ); // VERIFY assertEquals( "Updated element is not as expected.", cacheName, service.lastRemoveAllCacheName ); } }
/** * Verify that a remove event gets added and then is sent to the service passed to propagate. * <p> * @throws Exception */ public void testRemoveThenWalk() throws Exception { // SETUP MockCacheServiceNonLocal<String, String> service = new MockCacheServiceNonLocal<String, String>(); ZombieCacheServiceNonLocal<String, String> zombie = new ZombieCacheServiceNonLocal<String, String>( 10 ); String cacheName = "testRemoveThenWalk"; String key = "myKey"; // DO WORK zombie.remove( cacheName, key, 123l ); zombie.propagateEvents( service ); // VERIFY assertEquals( "Updated element is not as expected.", key, service.lastRemoveKey ); }
/** * Verify that a removeAll event gets added and then is sent to the service passed to propagate. * <p> * @throws Exception */ public void testRemoveAllThenWalk() throws Exception { // SETUP MockCacheServiceNonLocal<String, String> service = new MockCacheServiceNonLocal<String, String>(); ZombieCacheServiceNonLocal<String, String> zombie = new ZombieCacheServiceNonLocal<String, String>( 10 ); String cacheName = "testRemoveThenWalk"; // DO WORK zombie.removeAll( cacheName, 123l ); zombie.propagateEvents( service ); // VERIFY assertEquals( "Updated element is not as expected.", cacheName, service.lastRemoveAllCacheName ); } }
/** * Verify that a remove event gets added and then is sent to the service passed to propagate. * <p> * @throws Exception */ public void testRemoveThenWalk() throws Exception { // SETUP MockRemoteCacheService<String, String> service = new MockRemoteCacheService<String, String>(); ZombieCacheServiceNonLocal<String, String> zombie = new ZombieCacheServiceNonLocal<String, String>( 10 ); String cacheName = "testRemoveThenWalk"; String key = "myKey"; // DO WORK zombie.remove( cacheName, key, 123l ); zombie.propagateEvents( service ); // VERIFY assertEquals( "Updated element is not as expected.", key, service.lastRemoveKey ); }
/** * Verify that a removeAll event gets added and then is sent to the service passed to propagate. * <p> * @throws Exception */ public void testRemoveAllThenWalk() throws Exception { // SETUP MockRemoteCacheService<String, String> service = new MockRemoteCacheService<String, String>(); ZombieCacheServiceNonLocal<String, String> zombie = new ZombieCacheServiceNonLocal<String, String>( 10 ); String cacheName = "testRemoveThenWalk"; // DO WORK zombie.removeAll( cacheName, 123l ); zombie.propagateEvents( service ); // VERIFY assertEquals( "Updated element is not as expected.", cacheName, service.lastRemoveAllCacheName); } }
/** * Verify that an update event gets added and then is sent to the service passed to propagate. * <p> * @throws Exception */ public void testUpdateThenWalk() throws Exception { // SETUP MockRemoteCacheService<String, String> service = new MockRemoteCacheService<String, String>(); ZombieCacheServiceNonLocal<String, String> zombie = new ZombieCacheServiceNonLocal<String, String>( 10 ); String cacheName = "testUpdate"; // DO WORK ICacheElement<String, String> element = new CacheElement<String, String>( cacheName, "key", "value" ); zombie.update( element, 123l ); zombie.propagateEvents( service ); // VERIFY assertEquals( "Updated element is not as expected.", element, service.lastUpdate ); }
/** * Verify that nothing is added if the max is set to 0. * <p> * @throws Exception */ public void testUpdateThenWalk_zeroSize() throws Exception { // SETUP MockRemoteCacheService<String, String> service = new MockRemoteCacheService<String, String>(); ZombieCacheServiceNonLocal<String, String> zombie = new ZombieCacheServiceNonLocal<String, String>( 0 ); String cacheName = "testUpdate"; // DO WORK ICacheElement<String, String> element = new CacheElement<String, String>( cacheName, "key", "value" ); zombie.update( element, 123l ); zombie.propagateEvents( service ); // VERIFY assertNull( "Nothing should have been put to the service.", service.lastUpdate ); }
/** * Verify that an update event gets added and then is sent to the service passed to propagate. * <p> * @throws Exception */ public void testUpdateThenWalk() throws Exception { // SETUP MockCacheServiceNonLocal<String, String> service = new MockCacheServiceNonLocal<String, String>(); ZombieCacheServiceNonLocal<String, String> zombie = new ZombieCacheServiceNonLocal<String, String>( 10 ); String cacheName = "testUpdate"; // DO WORK ICacheElement<String, String> element = new CacheElement<String, String>( cacheName, "key", "value" ); zombie.update( element, 123l ); zombie.propagateEvents( service ); // VERIFY assertEquals( "Updated element is not as expected.", element, service.lastUpdate ); }
/** * Verify that nothing is added if the max is set to 0. * <p> * @throws Exception */ public void testUpdateThenWalk_zeroSize() throws Exception { // SETUP MockRemoteCacheService<String, String> service = new MockRemoteCacheService<String, String>(); ZombieCacheServiceNonLocal<String, String> zombie = new ZombieCacheServiceNonLocal<String, String>( 0 ); String cacheName = "testUpdate"; // DO WORK ICacheElement<String, String> element = new CacheElement<String, String>( cacheName, "key", "value" ); zombie.update( element, 123l ); zombie.propagateEvents( service ); // VERIFY assertNull( "Nothing should have been put to the service.", service.lastUpdate ); }
/** * Verify that an update event gets added and then is sent to the service passed to propagate. * <p> * @throws Exception */ public void testUpdateThenWalk() throws Exception { // SETUP MockCacheServiceNonLocal<String, String> service = new MockCacheServiceNonLocal<String, String>(); ZombieCacheServiceNonLocal<String, String> zombie = new ZombieCacheServiceNonLocal<String, String>( 10 ); String cacheName = "testUpdate"; // DO WORK ICacheElement<String, String> element = new CacheElement<String, String>( cacheName, "key", "value" ); zombie.update( element, 123l ); zombie.propagateEvents( service ); // VERIFY assertEquals( "Updated element is not as expected.", element, service.lastUpdate ); }
/** * Verify that nothing is added if the max is set to 0. * <p> * @throws Exception */ public void testUpdateThenWalk_zeroSize() throws Exception { // SETUP MockCacheServiceNonLocal<String, String> service = new MockCacheServiceNonLocal<String, String>(); ZombieCacheServiceNonLocal<String, String> zombie = new ZombieCacheServiceNonLocal<String, String>( 0 ); String cacheName = "testUpdate"; // DO WORK ICacheElement<String, String> element = new CacheElement<String, String>( cacheName, "key", "value" ); zombie.update( element, 123l ); zombie.propagateEvents( service ); // VERIFY assertNull( "Nothing should have been put to the service.", service.lastUpdate ); }
/** * Verify that nothing is added if the max is set to 0. * <p> * @throws Exception */ public void testUpdateThenWalk_zeroSize() throws Exception { // SETUP MockCacheServiceNonLocal<String, String> service = new MockCacheServiceNonLocal<String, String>(); ZombieCacheServiceNonLocal<String, String> zombie = new ZombieCacheServiceNonLocal<String, String>( 0 ); String cacheName = "testUpdate"; // DO WORK ICacheElement<String, String> element = new CacheElement<String, String>( cacheName, "key", "value" ); zombie.update( element, 123l ); zombie.propagateEvents( service ); // VERIFY assertNull( "Nothing should have been put to the service.", service.lastUpdate ); }
/** * Verify that an update event gets added and then is sent to the service passed to propagate. * <p> * @throws Exception */ public void testUpdateThenWalk() throws Exception { // SETUP MockRemoteCacheService<String, String> service = new MockRemoteCacheService<String, String>(); ZombieCacheServiceNonLocal<String, String> zombie = new ZombieCacheServiceNonLocal<String, String>( 10 ); String cacheName = "testUpdate"; // DO WORK ICacheElement<String, String> element = new CacheElement<String, String>( cacheName, "key", "value" ); zombie.update( element, 123l ); zombie.propagateEvents( service ); // VERIFY assertEquals( "Updated element is not as expected.", element, service.lastUpdate ); }
/** * Verify that when we call fix events queued in the zombie are propagated to the new service. * <p> * @throws Exception */ public void testUpdateZombieThenFix() throws Exception { // SETUP ZombieCacheServiceNonLocal<String, String> zombie = new ZombieCacheServiceNonLocal<String, String>( 10 ); // set the zombie RemoteCache<String, String> remoteCache = new RemoteCache<String, String>( cattr, zombie, listener, monitor ); String cacheName = "testUpdate"; // DO WORK ICacheElement<String, String> element = new CacheElement<String, String>( cacheName, "key", "value" ); remoteCache.update( element ); // set the new service, this should call propagate remoteCache.fixCache( service ); // VERIFY assertTrue( "The element should be in the serialized warapper.", service.lastUpdate instanceof ICacheElementSerialized ); ICacheElement<String, String> result = SerializationConversionUtil .getDeSerializedCacheElement( (ICacheElementSerialized<String, String>) service.lastUpdate, remoteCache .getElementSerializer() ); assertEquals( "Wrong element updated.", element.getVal(), result.getVal() ); }