@@ -1007,6 +1007,15 @@ private synchronized void refresh(boolean force) throws IOException {
10071007 return ;
10081008 }
10091009
1010+ for (ServerGroup serverGroup : memcachedInstancesByServerGroup .keySet ()) {
1011+ if (!instances .containsKey (serverGroup )) {
1012+ if (log .isDebugEnabled ()) log .debug ("\n \t App : " + _appName + "\n \t ServerGroup : " + serverGroup
1013+ + " does not exist or is not enabled or is out of service. We will shutdown this client and remove it." );
1014+ serverGroupDisabled (serverGroup );
1015+ }
1016+ }
1017+
1018+
10101019 boolean updateAllEVCacheWriteClients = false ;
10111020 for (Entry <ServerGroup , EVCacheServerGroupConfig > serverGroupEntry : instances .entrySet ()) {
10121021 final ServerGroup serverGroup = serverGroupEntry .getKey ();
@@ -1022,16 +1031,7 @@ private synchronized void refresh(boolean force) throws IOException {
10221031 if (discoveredHostsInServerGroup .size () == 0 && memcachedInstancesByServerGroup .containsKey (serverGroup )) {
10231032 if (log .isDebugEnabled ()) log .debug ("\n \t App : " + _appName + "\n \t ServerGroup : " + serverGroup
10241033 + " has no active servers. Cleaning up this ServerGroup." );
1025- final List <EVCacheClient > clients = memcachedInstancesByServerGroup .remove (serverGroup );
1026- memcachedReadInstancesByServerGroup .remove (serverGroup );
1027- memcachedWriteInstancesByServerGroup .remove (serverGroup );
1028- setupAllEVCacheWriteClientsArray ();
1029- for (EVCacheClient client : clients ) {
1030- if (log .isDebugEnabled ()) log .debug ("\n \t App : " + _appName + "\n \t ServerGroup : " + serverGroup
1031- + "\n \t Client : " + client + " will be shutdown in 30 seconds." );
1032- client .shutdown (30 , TimeUnit .SECONDS );
1033- client .getConnectionObserver ().shutdown ();
1034- }
1034+ serverGroupDisabled (serverGroup );
10351035 continue ;
10361036 }
10371037
@@ -1220,11 +1220,10 @@ public void run() {
12201220 void shutdown () {
12211221 if (log .isDebugEnabled ()) log .debug ("EVCacheClientPool for App : " + _appName + " and Zone : " + _zone + " is being shutdown." );
12221222 _shutdown = true ;
1223- for (List <EVCacheClient > instancesInAZone : memcachedInstancesByServerGroup .values ()) {
1224- for (EVCacheClient client : instancesInAZone ) {
1225- client .shutdown (30 , TimeUnit .SECONDS );
1226- client .getConnectionObserver ().shutdown ();
1227- }
1223+
1224+ for (ServerGroup serverGroup : memcachedInstancesByServerGroup .keySet ()) {
1225+ if (log .isDebugEnabled ()) log .debug ("\n SHUTDOWN\n \t App : " + _appName + "\n \t ServerGroup : " + serverGroup );
1226+ serverGroupDisabled (serverGroup );
12281227 }
12291228 setupMonitoring ();
12301229 }
0 commit comments