Package de.bsvrz.ars.ars.backup
Klasse BackupAdapter
java.lang.Object
de.bsvrz.ars.ars.backup.BackupAdapter
- Alle implementierten Schnittstellen:
BackupImplementation
Diese Klasse adaptiert ein altes
BackupModul
auf die neue Schnittstelle BackupImplementation
.
Da die neue Implementierung on-the-fly die Medien-ID einträgt, das alte Interface aber dateibasiert arbeitet, muss eine temporäre Kopie der Datei angelegt werden.
-
Konstruktorübersicht
KonstruktorenModifiziererKonstruktorBeschreibungprotected
BackupAdapter
(BackupModul delegate) Erstellt eine neue BackupAdapter -
Methodenübersicht
Modifizierer und TypMethodeBeschreibungboolean
backupContainer
(int mediumID, Container containerData) Mit dieser Methode wird festgelegt, dass ein Container auf dem angegebenen und vorher geöffneten Medium zu speichern ist.void
closeMediumAfterBackup
(int mediumID, File indexFile) Sobald auf einem Medium keine Kapazität für weitere Container mehr vorhanden ist, oder sonst am Ende des Backups, wird der aktuelle Backup-Lauf auf diesem Medium mit dieser Methode abgeschlossen.getAllContFileNames
(de.bsvrz.ars.ars.mgmt.tasks.AbstractTask task, int mediumID) Liefert die zuletzt gesicherten Container, die sich auf dem Mediums befinden.void
openMediumBeforeBackup
(int mediumID, String backupRunID) Diese Methode wird aufgerufen, bevor der erste Container auf dem Medium gesichert wird.restoreContainer
(int mediumID, String contFileName) Mit dieser Methode wird einInputStream
der Containerdaten des Containers mit NamencontFile
auf dem MediummediumID
erzeugt.
-
Konstruktordetails
-
BackupAdapter
Erstellt eine neue BackupAdapter- Parameter:
delegate
- Altes Backup-Modul- Löst aus:
IOException
-
-
Methodendetails
-
openMediumBeforeBackup
Beschreibung aus Schnittstelle kopiert:BackupImplementation
Diese Methode wird aufgerufen, bevor der erste Container auf dem Medium gesichert wird. Mit dem Parameter backupRunID können mehrere Backup-Läufe, die dasselbe Medium verwenden, unterschieden werden. Laut Spezifikation in[TanfArS]
kann es im Regelfall nicht auftreten, dass ein Container mehrmals auf demselben Medium abgelegt ist, weil bereits gesicherte Container kein zweites mal 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.- Angegeben von:
openMediumBeforeBackup
in SchnittstelleBackupImplementation
- Parameter:
mediumID
- ID des MediumsbackupRunID
- Zur Identifizierung des Sicherungslaufs falls mehrere Sicherungsläufe auf einem Medium sind. Bei der Wiederherstellung eines Containers werden die Sicherungsläufe von der alphabetisch letzten backupRunID beginnend bis zur alphabetisch ersten backupRunID nach dem angeforderten Container durchsucht.- Löst aus:
BackupException
- Die Implementierung kann bei Schreibfehlern, etc. hiermit Exceptions erzeugen, um das Archivsystem über den Fehlschlag zu informieren.
-
backupContainer
Beschreibung aus Schnittstelle kopiert:BackupImplementation
Mit dieser Methode wird festgelegt, dass ein Container auf dem angegebenen und vorher geöffneten Medium zu speichern ist. Ob dies sofort geschieht oder später ist Sache der Implementierung. DasBackupModul
kann den ParametercontainerData
verwenden, um z.B. die Container-Dateien zu sortieren oder um Hilfsdatenstrukturen für einen schnellen Zugriff anzulegen.Diese Methode sollte true zurück geben, wenn der Container erfolgreich auf dem Medium ergänzt wurde, oder false, wenn er nicht mehr auf das Medium passt. In dem Fall wird der
BackupTask
das Medium schließen, das nächste Medium mitBackupImplementation.openMediumBeforeBackup(int, String)
öffnen/anlegen und dann diese Methode mit dem gleichen Container erneut aufrufen.- Angegeben von:
backupContainer
in SchnittstelleBackupImplementation
- Parameter:
mediumID
- Medien-ID, auf die der Container gesichert werden soll. Sofern die Medien-Id inBackupImplementation.openMediumBeforeBackup(int, String)
gemerkt wurde oder die Container alle inBackupImplementation.closeMediumAfterBackup(int, File)
gesichert werden, kann dieser Parameter möglicherweise ignoriert werden.containerData
- Klasse, mit der man Infos über den Container abrufen kann, sowie eineMethode für die eigentliche Kopier-Aktion
. Das Objekt kann zwischengespeichert werden, bis das Medium inBackupImplementation.closeMediumAfterBackup(int, File)
abgeschlossen wird. Danach sind die enthaltenen Informationen möglicherweise ungültig.- Gibt zurück:
- true wenn der Container noch auf das Medium gepasst hat, sonst false
- Löst aus:
BackupException
- Die Implementierung kann bei Schreibfehlern, etc. hiermit Exceptions erzeugen um das Archivsystem über den Fehlschlag zu informieren.
-
closeMediumAfterBackup
Beschreibung aus Schnittstelle kopiert:BackupImplementation
Sobald auf einem Medium keine Kapazität für weitere Container mehr vorhanden ist, oder sonst am Ende des Backups, wird der aktuelle Backup-Lauf auf diesem Medium mit dieser Methode abgeschlossen. Der Parameter übergibt eine Indexdatei, die alleContainerID
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 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.- Angegeben von:
closeMediumAfterBackup
in SchnittstelleBackupImplementation
- Parameter:
mediumID
- Medien-IDindexFile
- Indexdatei, die die ContainerIDs enthält- Löst aus:
BackupException
- Die Implementierung kann bei Schreibfehlern, etc. hiermit Exceptions erzeugen um das Archivsystem über den Fehlschlag zu informieren.
-
restoreContainer
Beschreibung aus Schnittstelle kopiert:BackupImplementation
Mit dieser Methode wird einInputStream
der Containerdaten des Containers mit NamencontFile
auf dem MediummediumID
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.- Angegeben von:
restoreContainer
in SchnittstelleBackupImplementation
- Parameter:
mediumID
- Medien-IDcontFileName
- Dateiname des wiederherzustellenden Containers- Gibt zurück:
- InputStream
- Löst aus:
BackupException
- Die Implementierung kann bei Lesefehlern, etc. hiermit Exceptions erzeugen um das Archivsystem über den Fehlschlag zu informieren.
-
getAllContFileNames
public List<String> getAllContFileNames(de.bsvrz.ars.ars.mgmt.tasks.AbstractTask task, int mediumID) throws BackupException Beschreibung aus Schnittstelle kopiert:BackupImplementation
Liefert die zuletzt gesicherten Container, die sich auf dem Mediums befinden.Wird für den Abgleich von Verwaltungsinformationen benoetigt.
- Angegeben von:
getAllContFileNames
in SchnittstelleBackupImplementation
- Parameter:
task
- Wird zum Anhalten des Backups benötigt, falls das Archivsystem in einen kritischen Bereich eintritt.mediumID
- MedienId des Mediums.- Gibt zurück:
- Liste mit den Filenames der Container.
- Löst aus:
BackupException
- Die Implementierung kann bei Lesefehlern, etc. hiermit Exceptions erzeugen um das Archivsystem über den Fehlschlag zu informieren.
-