1 package com.daffodilwoods.daffodildb.server.backup; 2 3 import com.daffodilwoods.daffodildb.server.serversystem.ServerSystem; 4 import com.daffodilwoods.daffodildb.server.datasystem.persistentsystem.DatabaseConstants; 5 import com.daffodilwoods.daffodildb.server.datasystem.persistentsystem.PersistentDatabase; 6 import com.daffodilwoods.daffodildb.server.datasystem.mergesystem.MergeDatabase; 7 import com.daffodilwoods.daffodildb.server.datasystem.indexsystem.IndexDatabase; 8 import com.daffodilwoods.database.resource.DException; 9 import com.daffodilwoods.daffodildb.server.datadictionarysystem.SystemTables; 10 import com.daffodilwoods.daffodildb.server.datasystem.interfaces._Table; 11 import com.daffodilwoods.daffodildb.server.datasystem.persistentsystem.PersistentTable; 12 import com.daffodilwoods.daffodildb.server.datasystem.persistentsystem.DatabaseUserTableIterator; 13 import com.daffodilwoods.daffodildb.server.datasystem.interfaces._DataTable; 14 import com.daffodilwoods.database.utility.P; 15 import com.daffodilwoods.daffodildb.utils.byteconverter.CCzufDpowfsufs; 16 import com.daffodilwoods.daffodildb.utils.BufferRange; 17 import com.daffodilwoods.daffodildb.utils.comparator.CTusjohJoTfotjujwfDpnqbsbups; 18 19 25 26 public class StartScheduler { 27 28 35 36 public StartScheduler(ServerSystem serverSystem) throws DException{ 37 try { 38 PersistentDatabase systemDatabase = (PersistentDatabase) ( (IndexDatabase) ( ( 39 MergeDatabase) serverSystem.getMergeDatabase(DatabaseConstants. 40 SYSTEMDATABASE)).getFileDatabase()).getUnderLyingDatabase(); 41 if (systemDatabase.getVersionHandler().isBackUpSupported()) { 42 _Table table = systemDatabase.getTable(SystemTables.SCHEDULEINFO); 43 DatabaseUserTableIterator tableIterator = (DatabaseUserTableIterator) ( ( 44 _DataTable) table).getIterator(); 45 if (tableIterator.first()) { 46 do { 47 BufferRange[] bytesGot = (BufferRange[]) tableIterator. 48 getColumnValues(); 49 String databaseName = CCzufDpowfsufs.getString(bytesGot[0].getBytes()); 50 String scheduleName = CCzufDpowfsufs.getString(bytesGot[1].getBytes()); 51 long timeIntervalForBackup = (CCzufDpowfsufs.getLong(bytesGot[2]. 52 getBytes())).longValue(); 53 String backupType = CCzufDpowfsufs.getString(bytesGot[3].getBytes()); 54 long lastBackupTime = (CCzufDpowfsufs.getLong(bytesGot[4].getBytes())). 55 longValue(); 56 String backupPath = CCzufDpowfsufs.getString(bytesGot[5].getBytes()); 57 String databaseNameForBackup = CCzufDpowfsufs.getString(bytesGot[6]. 58 getBytes()); 59 Scheduler schedule = new Scheduler(serverSystem, databaseName, 60 scheduleName, lastBackupTime, 61 timeIntervalForBackup, 62 backupType, 63 backupPath, 64 databaseNameForBackup); 65 serverSystem.addScheduleInScheduleList(schedule); 66 67 Thread t = new Thread (schedule); 68 t.start(); 69 } 70 while (tableIterator.next()); 71 } 72 } 73 } 74 catch (DException ex) { 75 if (!ex.getDseCode().equalsIgnoreCase("DSE959")) 76 throw ex; 77 } 78 } 79 80 } 81 | Popular Tags |