|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectde.bsvrz.ars.ars.backup.plugins.FileSystemBackup
public class FileSystemBackup
Diese Klasse ist für die Sicherung von Containern auf dem Filesystem verantwortlich.
Field Summary | |
---|---|
protected java.lang.String |
backupBasePath
|
protected java.lang.String |
currentBackupPath
|
protected long |
currentSpaceOccupiedByContainerFiles
|
protected long |
currentSpaceOccupiedByZipfiles
|
protected Debug |
logger
|
protected static int |
MAX_CONTAINERS_PER_DIR
|
protected static int |
MAX_MEDIUM_SIZE_KB
|
static java.lang.String |
PROP_BACKUP_DIR
|
Fields inherited from interface de.bsvrz.ars.ars.backup.BackupModul |
---|
PROP_BACKUP_CONTAINER_PER_ZIP, PROP_BACKUP_MEDIUMSIZE |
Constructor Summary | |
---|---|
FileSystemBackup()
|
Method Summary | |
---|---|
void |
backupContainer(int mediumID,
long contID,
java.io.File contFile)
Mit dieser Methode wird festgelegt, dass ein Container auf dem angegebenen und vorher geöffneten Medium zu speichern ist. |
void |
closeMediumAfterBackup(int mediumID,
java.io.File indexFile)
Sobald auf einem Medium keine Kapazität für weitere Container mehr vorhanden ist, wird der aktuelle Backup-Lauf auf diesem Medium mit dieser Methode abgeschlossen. |
java.util.List<java.lang.String> |
getAllContFileNames(SuspendableTask task,
int mediumID,
int maxLimit)
Liefert die zuletzt gesicherten Container, die sich auf dem Mediums befinden. |
boolean |
hasMediumCapacity(int mediumID,
long containerSize,
int mediumIndexSize)
Liefert true, falls die noch zur Verfügung stehende Kapazität des angegebenen Mediums ausreicht, um einen Container der Größe fileSize und den Medienindex mit der momentanen Größe |
void |
initialize(java.util.Properties props)
Diese Methode dient dem Initialisieren des BackupModuls. |
void |
openMediumBeforeBackup(int mediumID,
java.lang.String backupRunID)
Diese Methode wird aufgerufen, bevor der erste Container auf dem Medium gesichert wird. |
java.io.InputStream |
restoreContainer(int mediumID,
java.lang.String contFileName)
Mit dieser Methode wird ein InputStream der Containerdaten des Containers mit Namen
contFile auf dem Medium mediumID erzeugt. |
java.lang.String |
toString()
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public static final java.lang.String PROP_BACKUP_DIR
protected static int MAX_CONTAINERS_PER_DIR
protected static int MAX_MEDIUM_SIZE_KB
protected Debug logger
protected long currentSpaceOccupiedByZipfiles
protected long currentSpaceOccupiedByContainerFiles
protected java.lang.String currentBackupPath
protected java.lang.String backupBasePath
Constructor Detail |
---|
public FileSystemBackup()
Method Detail |
---|
public void initialize(java.util.Properties props) throws java.lang.Exception
BackupModul
initialize
in interface BackupModul
java.lang.Exception
BackupModul.initialize(java.util.Properties)
public boolean hasMediumCapacity(int mediumID, long containerSize, int mediumIndexSize) throws BackupException
BackupModul
fileSize und den Medienindex mit der momentanen Größe indexSize
zu speichern.
Falls die Gesamtkapazität nicht durch den Medientyp eindeutig festgelegt ist, liefert das Backup-Modul einen
sinnvollen Wert. Beispiel: 1 GB pro Aktenschrank in Keydox, jedoch keinesfalls die Größe der gesamten Festplatte.
Ist das gewünschte Medium nicht im Zugriff, wird eine entsprechende Ausnahme ausgelöst.
- Specified by:
hasMediumCapacity
in interface BackupModul
- Returns:
- boolean
- Throws:
BackupException
- See Also:
BackupModul.hasMediumCapacity(int, long, int)
public void openMediumBeforeBackup(int mediumID, java.lang.String backupRunID) throws BackupException
BackupModul
[TanfArS]
kann es im Regelfall nicht auftreten, dass ein Container mehrmals auf demselben
Medium abgelegt ist, weil bereits gesicherte Container kein zweitesmal gesichert werden. Es ist dennoch notwendig
ein Verhalten für diesen Fall vorzugeben. Beim Wiederherstellen eines Containers wird daher der Container des
Mediums verwendet, der unter der alphabetisch größten backupRunID abgelegt wurde.
openMediumBeforeBackup
in interface BackupModul
mediumID
- ID des MediumsbackupRunID
- Zur Identifizierung des Sicherungslaufs falls mehrere Sicherungslaeufe auf einem Medium sind.
Bei der Wiederherstellung eines Containers werden die Sicherungslaeufe von der alphabetisch letzten
backupRunID beginnend bis zur alphabetisch ersten backupRunID nach dem angeforderten Container
durchsucht.
BackupException
BackupModul.openMediumBeforeBackup(int, java.lang.String)
public void backupContainer(int mediumID, long contID, java.io.File contFile) throws BackupException
BackupModul
BackupModul
kann den Parameter containerID
verwenden, um z.B. die Container-Dateien zu sortieren oder um
Hilfsdatenstrukturen für einen schnellen Zugriff anzulegen.
backupContainer
in interface BackupModul
BackupException
BackupModul.backupContainer(int, long, java.io.File)
public void closeMediumAfterBackup(int mediumID, java.io.File indexFile) throws BackupException
BackupModul
ContainerID
s enthält, die im aktuellen Backup-Lauf auf diesem Medium gesichert wurden. Diese
Datei wird auf dem Medium gespeichert. Die weiteren Aufgaben, die einzelne Implementierungen der
BackupModule-Schnittstelle hier zu erfüllen haben, sind unterschiedlich. Module, die sofort auf ein Medium
schreiben können (Wechselplatten) erfordern keine weiteren Schritte. Für Medien wie DVDs wird in dieser Methode
aus den gesammelten Containern ein Image erstellt und auf die DVD gebrannt; bei Keydox wird ein Logout
ausgeführt.
closeMediumAfterBackup
in interface BackupModul
BackupException
BackupModul.closeMediumAfterBackup(int, java.io.File)
public java.io.InputStream restoreContainer(int mediumID, java.lang.String contFileName) throws BackupException
BackupModul
InputStream
der Containerdaten des Containers mit Namen
contFile
auf dem Medium mediumID
erzeugt. Der BackupManager kopiert die Daten je
nach Vorgang ganz oder teilweise in das Archivsystem oder in ein temporäres Verzeichnis. Diese Methode wird zum
Wiederherstellen eines Containers, zum Abgleich/Wiederherstellung der Verwaltungsinformation und zur Verifikation
verwendet.
restoreContainer
in interface BackupModul
BackupException
BackupModul.restoreContainer(int, java.lang.String)
public java.util.List<java.lang.String> getAllContFileNames(SuspendableTask task, int mediumID, int maxLimit) throws BackupException
BackupModul
getAllContFileNames
in interface BackupModul
task
- Wird zum Anhalten des Backups benötigt, falls das Archivsystem in einen kritischen Bereich eintritt.mediumID
- MedienId des Mediums.maxLimit
- maximale Anzahl an zurueckgegebenen Containernamen. Wenn -1, dann ist das Ergebnis unlimitiert.
BackupException
BackupModul.getAllContFileNames(SuspendableTask, int, int)
public java.lang.String toString()
toString
in class java.lang.Object
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |