KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > daffodilwoods > daffodildb > server > backup > StartScheduler


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 /**
20  * <p>Title:StartScheduler</p>
21  * <p>Description: This class is used to start the threads for all the Schedules entered
22  * by the user from the information stored in the SystemTable in SystemDatabase</p>
23
24  */

25
26 public class StartScheduler {
27
28   /**
29    * Starts the thread for all the schedules entere by the user for various databases.
30    * It extracts the information about schedules from the SystemDtabase SCHEDULEINFO table.
31    *
32    * @param serverSystem
33    * @throws DException
34    */

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 JavaDoc databaseName = CCzufDpowfsufs.getString(bytesGot[0].getBytes());
50             String JavaDoc scheduleName = CCzufDpowfsufs.getString(bytesGot[1].getBytes());
51             long timeIntervalForBackup = (CCzufDpowfsufs.getLong(bytesGot[2].
52                 getBytes())).longValue();
53             String JavaDoc backupType = CCzufDpowfsufs.getString(bytesGot[3].getBytes());
54             long lastBackupTime = (CCzufDpowfsufs.getLong(bytesGot[4].getBytes())).
55                 longValue();
56             String JavaDoc backupPath = CCzufDpowfsufs.getString(bytesGot[5].getBytes());
57             String JavaDoc 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 JavaDoc t = new Thread JavaDoc(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