1 22 23 package org.continuent.sequoia.controller.virtualdatabase.protocol; 24 25 import java.io.IOException ; 26 import java.io.Serializable ; 27 28 import org.continuent.hedera.common.Member; 29 import org.continuent.sequoia.common.exceptions.BackupException; 30 import org.continuent.sequoia.common.exceptions.ControllerException; 31 import org.continuent.sequoia.common.exceptions.VirtualDatabaseException; 32 import org.continuent.sequoia.common.jmx.management.DumpInfo; 33 import org.continuent.sequoia.controller.backup.Backuper; 34 import org.continuent.sequoia.controller.backup.DumpTransferInfo; 35 import org.continuent.sequoia.controller.virtualdatabase.DistributedVirtualDatabase; 36 37 48 public class InitiateDumpCopy extends DistributedVirtualDatabaseMessage 49 { 50 private static final long serialVersionUID = 4674422809133556752L; 51 52 private DumpInfo dumpInfo; 53 private DumpTransferInfo dumpTransferInfo; 54 55 57 63 public InitiateDumpCopy(DumpInfo dumpInfo, DumpTransferInfo dumpTransferInfo) 64 { 65 this.dumpInfo = dumpInfo; 66 this.dumpTransferInfo = dumpTransferInfo; 67 } 68 69 74 public DumpInfo getDumpInfo() 75 { 76 return dumpInfo; 77 } 78 79 84 public String getDumpCheckpointName() 85 { 86 return dumpInfo.getCheckpointName(); 87 } 88 89 94 public String getDumpName() 95 { 96 return dumpInfo.getDumpName(); 97 } 98 99 105 public DumpTransferInfo getDumpTransferInfo() 106 { 107 return dumpTransferInfo; 108 } 109 110 114 public Serializable handleMessageMultiThreaded( 115 DistributedVirtualDatabase dvdb, Member sender, 116 Object handleMessageSingleThreadedResult) 117 { 118 try 119 { 120 if (!dvdb.isDumpNameAvailable(dumpInfo.getDumpName())) 122 return new ControllerException("Remote dump '" + dumpInfo.getDumpName() 123 + "' already exists."); 124 125 if (dumpTransferInfo != null) 127 { 128 Backuper backuper = dvdb.getRequestManager().getBackupManager() 129 .getBackuperByFormat(dumpInfo.getDumpFormat()); 130 131 backuper.fetchDump(dumpTransferInfo, dumpInfo.getDumpPath(), dumpInfo 132 .getDumpName()); 133 } 134 135 dvdb.getRecoveryLog().setDumpInfo(dumpInfo); 137 } 138 catch (IOException e) 139 { 140 return new ControllerException(e); 141 } 142 catch (BackupException e) 143 { 144 return new ControllerException(e); 145 } 146 catch (VirtualDatabaseException e) 147 { 148 return new ControllerException(e); 149 } 150 return null; 151 } 152 153 157 public Object handleMessageSingleThreaded(DistributedVirtualDatabase dvdb, 158 Member sender) 159 { 160 return null; 161 } 162 163 } | Popular Tags |