|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjava.lang.Thread
de.bsvrz.ars.ars.mgmt.tasks.Task
de.bsvrz.ars.ars.mgmt.tasks.SingleTask
de.bsvrz.ars.ars.mgmt.tasks.SingleClientSenderTask
de.bsvrz.ars.ars.mgmt.tasks.BackupTask
public class BackupTask
Task zur Durchführung eines Sicherungslaufs.
Nested Class Summary | |
---|---|
static class |
BackupTask.BackupResultData
Diese Klasse sieht aus wie ein ResultData, wird aber nur intern verwendet, um einen über den Scheduler angestoßenen Sicherungslauf von einem extern angestoßenen zu unterscheiden |
private static class |
BackupTask.BackupResultDataHolder
Holder-Objekt, dass eine statische BackupResultData-Instanz (threadsicher) bereitstellt |
private static class |
BackupTask.ContainerEntry
Immutable Klasse, die eine ContainerID mit der zugehörigen ContainerLocation, also dem Speicherort (der Datenidentifikation) verknüpft. |
private class |
BackupTask.ContainerLocation
Immutable Klasse, die speichert, an welchem Ort sich eine bestimmte ContainerID befindet. |
private class |
BackupTask.DataIdentificationHelper
Hilfsklasse, die zu einem Verzeichnis sowohl die passende DataIdentNode als auch die zugehörige BackupTask.ContainerLocation ermittelt. |
Nested classes/interfaces inherited from class java.lang.Thread |
---|
Thread.State, Thread.UncaughtExceptionHandler |
Field Summary | |
---|---|
private static BackupModul |
_backupModul
das verwendete Backupmodul |
private static int |
_currentBackupMediumID
die immer aktuell gehaltene backupMediumID |
private File |
_currentIndexFile
Datei, in der die momentan auf dem Medium gesicherten Indexdaten abgelegt sind |
private File |
_indexFileDir
Temporäres Verzeichnis in dem _currentIndexFile abgelegt ist |
private LongTermTaskStatePublisher.Task |
_longTermTaskStatePublisherTask
Objekt, dem Informationen zum aktuellen Zustand der Task und dem Fortschritt von langwierigen Arbeiten übergeben werden. |
private File |
_tmpFile
Temporäre Datei die zur Erzeugung des temporären Verzeichnisses +_indexFileDir benutzt wird. |
static String |
INDEXFILE_NAME
Name der Datei, in der alle Indexdaten des momentanen Mediums temporär abgelegt werden |
Fields inherited from class de.bsvrz.ars.ars.mgmt.tasks.SingleClientSenderTask |
---|
atgQuery, ddResponse, deserializer, queryAppObj, queryIdx, SENDCONTROL_TIMEOUT, serializerVersion, syncObj |
Fields inherited from class de.bsvrz.ars.ars.mgmt.tasks.Task |
---|
archMgr, didTree, INDEX_MEMORY_SIZE, isTerminated, logger, persMgr, ringOfDeathListener, taskStepListeners |
Fields inherited from class java.lang.Thread |
---|
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY |
Fields inherited from interface de.bsvrz.dav.daf.main.ClientSenderInterface |
---|
START_SENDING, STOP_SENDING, STOP_SENDING_NO_RIGHTS, STOP_SENDING_NOT_A_VALID_SUBSCRIPTION |
Constructor Summary | |
---|---|
BackupTask(ArchiveManager archiveMgr,
RingOfDeathListener rodl,
RingBuffer<ResultData> inputData,
LongTermTaskStatePublisher longTermTaskStatePublisher)
Erstellt einen neuen BackupTask |
Method Summary | |
---|---|
private void |
backupContainerList(ArrayList<BackupTask.ContainerEntry> containerList,
String backupRunID)
Sichert alle angegebenen Container. |
private void |
clearCurrentIndexFile()
|
private void |
closeBackup(ArrayList<BackupTask.ContainerEntry> containerList)
|
private ArrayList<BackupTask.ContainerEntry> |
containerWalk()
Laeuft rekursiv durch ein Verzeichnis und laedt die Container in den Index. |
private void |
deleteFile(File file)
Löscht eine Datei un gibt eine Warnung aus, wenn das Löschen fehlschlägt |
private void |
disposeIndices()
Löscht die Indexdateien und sonstige temporäre Dateien und Verzeichnisse |
int |
estimateIndexSize(int countSavedContainers)
Schätzt die Indexgröße für eine angegebene Zahl Einträge. |
static BackupModul |
getBackupModul()
Gibt das verwendete Backupmodul zurück |
static BackupTask.BackupResultData |
getBackupResultData()
Gibt einen BackupTask.BackupResultData -Dummy zurück |
private List<Long> |
getContainerIDsToBackup(File didDir)
Ermittelt, welche Container in einem Verzeichnis gesichert werden sollen. |
static List<Long> |
getContainerIDsToBackupStatic(File didDir,
PersistenceManager persistenceManager,
Task task)
Ermittelt, welche Container in einem Verzeichnis gesichert werden sollen. |
static int |
getLastUsedMediumID()
Gibt die zuletzt verwendete MedienID zurück |
private void |
increaseMediumID()
Erhöht die MedienID um 1 |
private void |
initIndices()
Erstellt das temporäre Verzeichnis für die Indexdatei und erstellt eine leere Indexdatei |
private void |
markContainer(long containerId,
BackupTask.ContainerLocation containerLocation,
boolean toBeMarkedAsSaved)
Markiert einen Container als gesichert bzw. |
private void |
requestBackupMedium(int backupMediumID,
String backupRunID)
Mit dieser Methode wird der Operator aufgefordert, ein bestimmtes Medium einzulegen. |
private void |
rollbackChanges(ArrayList<BackupTask.ContainerEntry> containerList)
|
void |
run()
|
void |
runBackup()
Startet den Sicherungslauf |
static void |
setBackupModul(String propertiesFile)
Setzt das zu verwendende Backup-Modul. |
static void |
setLastUsedMediumID(int mediumID)
Setzt die zuletzt verwendete MedienID. |
private void |
tryRequestBackupMedium(String backupRunID)
|
protected void |
work(ResultData resultData)
Diese Methode ist zu ueberschreiben, um die konkrete Aufgabe der Task zu implementieren. |
Methods inherited from class de.bsvrz.ars.ars.mgmt.tasks.SingleClientSenderTask |
---|
dataRequest, getObjectsFromDAV, init, isRequestSupported, parseArchiveDataSpec, sendErrorResponse, sendErrorResponse, sendSuccessResponse, sendSuccessResponse, subscribeSender, unsubscribeSender |
Methods inherited from class de.bsvrz.ars.ars.mgmt.tasks.Task |
---|
addTaskStepListener, getArchMgr, isTaskTerminated, removeTaskStepListener, suspendTaskIfNecessary, terminateTask |
Methods inherited from class java.lang.Thread |
---|
activeCount, checkAccess, clone, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield |
Methods inherited from class java.lang.Object |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
private static BackupModul _backupModul
public static final String INDEXFILE_NAME
private static int _currentBackupMediumID
private File _currentIndexFile
private File _indexFileDir
_currentIndexFile
abgelegt ist
private File _tmpFile
+_indexFileDir
benutzt wird.
private final LongTermTaskStatePublisher.Task _longTermTaskStatePublisherTask
Constructor Detail |
---|
public BackupTask(ArchiveManager archiveMgr, RingOfDeathListener rodl, RingBuffer<ResultData> inputData, LongTermTaskStatePublisher longTermTaskStatePublisher)
archiveMgr
- Archivmanagerrodl
- RingOfDeathListenerinputData
- EingangswarteschlangelongTermTaskStatePublisher
- siehe LongTermTaskStatePublisher
Method Detail |
---|
public void run()
run
in interface Runnable
run
in class SingleTask
Runnable.run()
protected void work(ResultData resultData)
SingleTask
work
in class SingleTask
resultData
- Zu verarbeitender Datensatz aus der Eingangswarteschlangepublic void runBackup() throws BackupException
BackupException
- Fehler beim Backupprivate void tryRequestBackupMedium(String backupRunID) throws BackupException
BackupException
private ArrayList<BackupTask.ContainerEntry> containerWalk() throws PersistenceException
PersistenceException
- Fehler in der Persistenzprivate List<Long> getContainerIDsToBackup(File didDir) throws PersistenceException
didDir
- Verzeichnis, welches geprüft wird
PersistenceException
- Fehler in der Persistenzpublic static List<Long> getContainerIDsToBackupStatic(File didDir, PersistenceManager persistenceManager, Task task) throws PersistenceException
didDir
- Verzeichnis, welches geprüft wirdpersistenceManager
- PersistenceManagertask
- Task
PersistenceException
- Fehler in der Persistenzprivate void backupContainerList(ArrayList<BackupTask.ContainerEntry> containerList, String backupRunID) throws BackupException
containerList
- Liste mit Containern, welche gesichert werden sollenbackupRunID
- ID des Backuplaufes
BackupException
- Fehler beim Backupprivate void closeBackup(ArrayList<BackupTask.ContainerEntry> containerList) throws BackupException
BackupException
private void clearCurrentIndexFile() throws BackupException
BackupException
private void rollbackChanges(ArrayList<BackupTask.ContainerEntry> containerList) throws BackupException
BackupException
private void requestBackupMedium(int backupMediumID, String backupRunID) throws BackupException
backupMediumID
- MediumIDbackupRunID
- ID des Backupvorgangs
BackupException
- Medium nicht verfügbarprivate void markContainer(long containerId, BackupTask.ContainerLocation containerLocation, boolean toBeMarkedAsSaved) throws BackupException
containerId
- ContainerIDcontainerLocation
- Speicherort des ContainerstoBeMarkedAsSaved
- falls true, wird der Container als saved markiert, ansonsten als unsaved
BackupException
- Fehler bei der Durchführung des Auftragsprivate void initIndices() throws IOException
IOException
- IO-Fehler beim Vorgangprivate void disposeIndices()
private void deleteFile(File file)
file
- Datei die gelöscht werden sollpublic int estimateIndexSize(int countSavedContainers)
countSavedContainers
- Anzahl der Container
private void increaseMediumID()
public static void setBackupModul(String propertiesFile) throws BackupException
propertiesFile
- Datei in dem das zu verwendende Modul gespeichert ist.
BackupException
- Fehler beim Vorgangpublic static BackupModul getBackupModul()
public static int getLastUsedMediumID()
public static void setLastUsedMediumID(int mediumID)
mediumID
- zuletzt verwendete MedienIDpublic static BackupTask.BackupResultData getBackupResultData()
BackupTask.BackupResultData
-Dummy zurück
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |