1 23 24 package org.continuent.sequoia.controller.virtualdatabase.protocol; 25 26 import java.io.Serializable ; 27 import java.util.ArrayList ; 28 import java.util.List ; 29 30 import org.continuent.hedera.common.Member; 31 import org.continuent.sequoia.common.jmx.management.BackendInfo; 32 import org.continuent.sequoia.common.log.Trace; 33 import org.continuent.sequoia.controller.backend.DatabaseBackend; 34 import org.continuent.sequoia.controller.virtualdatabase.DistributedVirtualDatabase; 35 36 43 public class NotifyEnableBackend extends DistributedVirtualDatabaseMessage 44 { 45 private static final long serialVersionUID = 5783006534850234709L; 46 47 private BackendInfo backendInfo; 48 49 54 public NotifyEnableBackend(BackendInfo backendInfo) 55 { 56 this.backendInfo = backendInfo; 57 } 58 59 63 public Serializable handleMessageMultiThreaded( 64 DistributedVirtualDatabase dvdb, Member sender, 65 Object handleMessageSingleThreadedResult) 66 { 67 Trace logger = dvdb.getLogger(); 68 List remoteBackends = (List ) dvdb.getBackendsPerController().get(sender); 69 if (remoteBackends == null) 70 { logger.warn("No information has been found for remote controller " 74 + sender); 75 remoteBackends = new ArrayList (); 76 dvdb.addBackendPerController(sender, remoteBackends); 77 } 78 DatabaseBackend enabledBackend = backendInfo.getDatabaseBackend(dvdb); 79 int size = remoteBackends.size(); 80 boolean backendFound = false; 81 for (int i = 0; i < size; i++) 82 { 83 DatabaseBackend remoteBackend = (DatabaseBackend) remoteBackends.get(i); 84 if (remoteBackend.equals(enabledBackend)) 85 { 86 logger.info("Backend " + remoteBackend.getName() 87 + " enabled on controller " + sender); 88 remoteBackends.set(i, enabledBackend); 89 backendFound = true; 90 break; 91 } 92 } 93 if (!backendFound) 94 { 95 logger.warn("Updating backend list with unknown backend " 96 + enabledBackend.getName() + " enabled on controller " + sender); 97 remoteBackends.add(enabledBackend); 98 } 99 return null; 100 } 101 102 106 public Object handleMessageSingleThreaded(DistributedVirtualDatabase dvdb, 107 Member sender) 108 { 109 return null; 110 } 111 112 } | Popular Tags |