public interface ArchiveRequestManager
ClientDavInterface.getArchive()
zur Verfügung gestellt.Modifier and Type | Method and Description |
---|---|
void |
addArchiveAvailabilityListener(ArchiveAvailabilityListener listener)
Das übergebene Objekt
listener wird benachrichtigt sobald sich die Erreichbarkeit des Archivsystems über den Datenverteiler ändert. |
ArchiveQueryResult |
archiveFileSaverAlignment(int volumeIdTypB)
Beauftragt das Archivsystem seine Informationen zu gespeicherten Daten mit einem Speichermedium Typ B
ArchiveFileSaver abzugleichen. |
ArchiveQueryResult |
deleteData(List<ArchiveInformationResult> dataDisposedToDelete,
boolean deleteImmediately)
Beauftragt das Archivsystem die angegebenen Zeitbereiche ohne Rücksicht auf den mit
increaseDeleteTime(java.util.List<de.bsvrz.dav.daf.main.archive.ArchiveInformationResult>, long) festgelegten Wert zu
löschen. |
ArchiveQueryResult |
deleteDataSimulationVariant(short simulationVariant)
Beauftragt das Archivsystem Archivdaten, die zu einer Simulation gehören, aus dem Archivsystem zu löschen.
|
ArchiveNumQueriesResult |
getNumArchiveQueries()
Gibt Informationen über die Anzahl Anfragen zurück, die eine Applikation gleichzeitig stellen darf.
|
ArchiveQueryResult |
increaseDeleteTime(List<ArchiveInformationResult> requiredData,
long timePeriod)
Beauftragt das Archivsystem den Löschzeitpunkt der angegebenen Zeitbereiche zu verlängern.
|
boolean |
isArchiveAvailable()
Stellt fest ob das Archivsystem über den Datenverteiler derzeit erreichbar ist.
|
void |
removeArchiveAvailabilityListener(ArchiveAvailabilityListener listener)
Das Objekt, das mit
addArchiveAvailabilityListener(de.bsvrz.dav.daf.main.archive.ArchiveAvailabilityListener) übergeben wurde, wird nicht mehr benachrichtigt sobald sich die Erreichbarkeit des Archivsystems
über den Datenverteiler ändert. |
ArchiveDataQueryResult |
request(ArchiveQueryPriority priority,
ArchiveDataSpecification spec)
Ruft Archivdaten von einem Archivsystem mit Hilfe eines Ergebnisdatenstroms ab.
|
ArchiveDataQueryResult |
request(ArchiveQueryPriority priority,
List<ArchiveDataSpecification> specs)
Ruft Archivdaten von einem Archivsystem mit Hilfe mehrerer Ergebnisdatenströme ab.
|
ArchiveQueryResult |
requestData(Collection<ArchiveInformationResult> requiredData,
Collection<SystemObject> requestedArchives)
Beauftragt das Archivsystem fehlende Daten von anderen Archivsystemen anzufordern und diese dann als "nachgefordert" zu speichern und bei Archivanfragen zur
Verfügung zu stellen.
|
ArchiveQueryResult |
requestData(long startTime,
long endTime,
Collection<SystemObject> requestedArchives)
Beauftragt das Archivsystem fehlende Daten von anderen Archivsystemen anzufordern und diese dann als "nachgefordert" zu speichern und bei Archivanfragen zur
Verfügung zu stellen.
|
ArchiveInfoQueryResult |
requestInfo(ArchiveDataSpecification spec)
Start einer Archivinformationsanfrage an das Archivsystem.
|
ArchiveInfoQueryResult |
requestInfo(List<ArchiveDataSpecification> specs)
Start einer Archivinformationsanfrage an das Archivsystem.
|
ArchiveQueryResult |
restorePersistentData(List<ArchiveInformationResult> requiredData)
Start der Wiederherstellung von Datensätzen, die der Sicherung übergeben wurden (siehe
savePersistentData() ). |
ArchiveQueryResult |
savePersistentData()
Beauftragt das Archivsystem Archivdaten der Sicherung
ArchiveFileSaver zu übergeben. |
void |
setReceiveBufferSize(int numberOfBytes)
Spezifiziert die Größe des Empfangspuffers je Archivanfrage, die mit nachfolgenden
request Aufrufen erzeugt werden. |
void |
subscribeReceiver(DatasetReceiverInterface receiver,
SystemObject object,
DataDescription dataDescription,
ReceiveOptions options,
HistoryTypeParameter historyType,
long history)
Die Implementation dieser Methode meldet sich als Empfänger von aktuellen Daten an.
|
void |
unsubscribeReceiver(DatasetReceiverInterface receiver,
SystemObject object,
DataDescription dataDescription)
Die Implementation dieser Methode meldet einen Empfänger ab, der mit der Methode
subscribeReceiver(de.bsvrz.dav.daf.main.archive.DatasetReceiverInterface, de.bsvrz.dav.daf.main.config.SystemObject, de.bsvrz.dav.daf.main.DataDescription, de.bsvrz.dav.daf.main.ReceiveOptions, de.bsvrz.dav.daf.main.archive.HistoryTypeParameter, long) angemeldet wurde. |
void setReceiveBufferSize(int numberOfBytes)
request
Aufrufen erzeugt werden. Der angegebene Parameter
ist eine grobe Vorgabe für alle Streams einer Archivanfrage zusammen und muss von einer Implementierung nicht exakt berücksichtigt werden, sondern sollte in
der sendeseitigen Blockbildung und in der Flusskontrolle so berücksichtigt werden, dass die Summe der vom Archivsystem gesendeten aber noch nicht von der
anfragenden Applikation abgerufenen Bytes in der angegebenen Größenordnung liegt. Der Defaultwert ist 0 mit der Bedeutung, das die Größe durch einen
entsprechenden Parameter des Archivsystems festgelegt wird.numberOfBytes
- Grobe Vorgabe bezüglich der Anzahl zu puffernden Bytes pro Archivanfrage oder 0, wenn keine Vorgabe seitens der Empfangsapplikation
gemacht werden soll und statt dessen ein entsprechender Parameter des Archivsystems verwendet werden soll.ArchiveDataQueryResult request(ArchiveQueryPriority priority, ArchiveDataSpecification spec) throws IllegalStateException
spec
spezifizierten Daten ein Stream von Ergebnisdatensätzen erwartet.priority
- Priorität der Anfragespec
- Spezifikation der gewünschten Archivdaten. Ein Objekt der Klasse ArchiveDataSpecification
IllegalStateException
- Das Archivsystem ist nicht erreichbar.ArchiveDataQueryResult request(ArchiveQueryPriority priority, List<ArchiveDataSpecification> specs) throws IllegalStateException
specs
jeweils ein Stream von
Ergebnisdatensätzen erwartet.priority
- Priorität der Anfragespecs
- Liste mit Spezifikationen der gewünschten Archivdaten.IllegalStateException
- Das Archivsystem ist nicht erreichbar.ArchiveInfoQueryResult requestInfo(ArchiveDataSpecification spec) throws IllegalStateException
ArchiveDataSpecification
zurück.
Dieses Objekt ist eine Referenz auf den Eingabeparameter spec
.spec
- Spezifikation der Archivdaten zu denen Informationen gewünscht werden.IllegalStateException
- Das Archivsystem ist nicht erreichbar.void subscribeReceiver(DatasetReceiverInterface receiver, SystemObject object, DataDescription dataDescription, ReceiveOptions options, HistoryTypeParameter historyType, long history)
receiver
- Objekt, das Methoden zur Verfügung stellt um den Strom aus historischen und aktuellen Daten entgegen zu nehmenobject
- System-Objekt für die die spezifizierten Daten anzumelden sinddataDescription
- Beschreibende Informationen zu den anzumeldenden Datenoptions
- Für die Anmeldung zu verwendende OptionenhistoryType
- HistoryTypeParameter.TIME
= Der Parameter history
bezieht sich auf einen Zeitraum, der vor den aktuellen
Daten liegen soll (in ms); HistoryTypeParameter.INDEX
= Der Parameter history
bezieht sich auf die Anzahl
Datensätze, die mindestens vor den aktuellen Daten liegen sollenhistory
- Zeitraum der Archivdaten in Millisekunden, die vor den ersten aktuellen Datensätzen liegenvoid unsubscribeReceiver(DatasetReceiverInterface receiver, SystemObject object, DataDescription dataDescription)
subscribeReceiver(de.bsvrz.dav.daf.main.archive.DatasetReceiverInterface, de.bsvrz.dav.daf.main.config.SystemObject, de.bsvrz.dav.daf.main.DataDescription, de.bsvrz.dav.daf.main.ReceiveOptions, de.bsvrz.dav.daf.main.archive.HistoryTypeParameter, long)
angemeldet wurde.receiver
- object
- System-Objekt für die die spezifizierten Daten angemeldet wurdendataDescription
- Beschreibende Informationen zu den angemeldeten DatenArchiveInfoQueryResult requestInfo(List<ArchiveDataSpecification> specs) throws IllegalStateException
ArchiveDataSpecification
zurück.
Diese Objekte sind Referenzen auf Einträge des Übergabeparameters specs
.specs
- Liste mit Spezifikationen der Archivdaten zu denen Informationen gewünscht werdenIllegalStateException
- Das Archivsystem ist nicht erreichbar.ArchiveQueryResult savePersistentData() throws IllegalStateException
ArchiveFileSaver
zu übergeben. Eine Applikation
ruft diese Methode auf, um alle Archivdaten, die gesichert werden können, zu sichern. Eine Implementierung dieser Methode sollte ohne zu blockieren ein
Objekt zurückliefern über das asynchron auf das Ergebnis der Anfrage zugegriffen werden kann.IllegalStateException
- Das Archivsystem ist nicht erreichbar.ArchiveQueryResult restorePersistentData(List<ArchiveInformationResult> requiredData) throws IllegalStateException
savePersistentData()
). Diese Methode
wird von einer Applikation aufgerufen, die Datensätze benötgt, die sich nicht im direkten Zugriff des Archivsystems befinden, sondern bereits der Sicherung
übergeben wurden und später gelöscht wurden (siehe deleteDataSimulationVariant(short)
, deleteData(java.util.List<de.bsvrz.dav.daf.main.archive.ArchiveInformationResult>, boolean)
).
Eine Implementierung dieser Methode sollte ohne zu blockieren ein Objekt zurückliefern über das asynchron auf das Ergebnis des Auftrags zugegriffen werden
kann.requiredData
- Eine Liste von Zeitbereichen/Indexbereichen, die Wiederhergestellt werden müssen.IllegalStateException
- Das Archivsystem ist nicht erreichbar.ArchiveQueryResult deleteDataSimulationVariant(short simulationVariant) throws IllegalStateException
savePersistentData()
). Die
Methode wird von einer Applikation aufgerufen, um nicht mehr benötigte Datensätze, die zu einer Simulation gehören, aus dem Archivsystem zu löschen.simulationVariant
- Simulationsvariante, ganzzahliger Wert zwischen 1,...,999IllegalStateException
- Das Archivsystem ist nicht erreichbar.ArchiveQueryResult increaseDeleteTime(List<ArchiveInformationResult> requiredData, long timePeriod)
requiredData
- Zeitbereiche, die länger im direkten Zugriff des Archivsystems bleiben sollentimePeriod
- Zeitspanne, die die ausgewählten Daten länger im direkten Zugriff des Archivsystem bleiben sollen (in ms)ArchiveQueryResult deleteData(List<ArchiveInformationResult> dataDisposedToDelete, boolean deleteImmediately)
increaseDeleteTime(java.util.List<de.bsvrz.dav.daf.main.archive.ArchiveInformationResult>, long)
festgelegten Wert zu
löschen. Das Löschen der Zeitbereiche wird dabei in zwei Varianten unterteilt. In der ersten Variante werden die Zeitbereiche umgehend aus dem direkten
Zugriff des Archivsystems entfernt. In der zweiten Variante werden die Zeitbereiche nur als "zu löschend" markiert, sobald das "automatische Löschen" des
Archivsystems angstoßen wird (dies geschieht zyklisch), werden die Zeitbereiche entfernt.
Bei allen Löschoperationen, die durch diesen Methodenaufruf ausgelöst werden, muss darauf geachtete werden, dass der Vorhaltezeitraum der Zeitbereiche
abgelaufen sein muss und das die Zeitbereiche gesichert wurden, falls diese gesichert werden sollten. Wird gegen eine diese Forderungen verstossen, wird der
angegebene Zeitbereich nicht gelöscht.dataDisposedToDelete
- Zeitbereich(e), die gelöscht werden sollendeleteImmediately
- true = Variante 1, die Zeitbereiche werden umgehend aus dem direkten Zugriff des Archivsystems entfernt; false = Variante 2, die
Zeitbereiche werden nur als "zu löschend" markiert und später aus dem direkten Zugriff des Archivsystems entferntArchiveQueryResult archiveFileSaverAlignment(int volumeIdTypB)
ArchiveFileSaver
abzugleichen. Dies kann nötig werden, wenn die eindeutigen Identifizierungen der
Speichermedien von Typ B durch die Sicherung geändert wurden (Beispiel: Die Daten wurden vorher auf CD gespeichert, nun werden die Daten auf DVD gespeichert
und die alten Datenbestände auf DVD umkopiert, somit fallen mehrere CD´s auf eine DVD und die eindeutigen Identifizierungen der CD´s sind nutzlos. Die
eindeutigen Identifizierungen der CD´s wurde aber vom Archivsystem gespeichert und müssen folglich abgeglichen werden).volumeIdTypB
- Eindeutige Identifikation eines Speichermediums Typ Bboolean isArchiveAvailable()
void addArchiveAvailabilityListener(ArchiveAvailabilityListener listener)
listener
wird benachrichtigt sobald sich die Erreichbarkeit des Archivsystems über den Datenverteiler ändert.listener
- Objekt, das benutzt wird um Änderungen der Erreichbarkeit des Archivsystems über den Datenverteiler anzuzeigenvoid removeArchiveAvailabilityListener(ArchiveAvailabilityListener listener)
addArchiveAvailabilityListener(de.bsvrz.dav.daf.main.archive.ArchiveAvailabilityListener)
übergeben wurde, wird nicht mehr benachrichtigt sobald sich die Erreichbarkeit des Archivsystems
über den Datenverteiler ändert.listener
- Objekt, das nicht mehr benachrichtigt werden soll, wenn sich die Erreichbarkeit des Archivsystems über den Datenverteiler ändertArchiveQueryResult requestData(Collection<ArchiveInformationResult> requiredData, Collection<SystemObject> requestedArchives)
requiredData
- Datenidentifikation(en), die nachgefordert werden sollen. Jede Datenidentifikation speichert zusätlich den Zeitbereich, in dem
Daten zu dieser Datenidentifikation angefordert werden soll. Es muss mindestens eine Datenidentifikation vorhanden sein.requestedArchives
- Archivsystem(e), bei denen Daten angefordert werden. Ist diese Liste leer werden alle Archivsystem angefragt, die beim
automatischen Nachfordern angefragt werden.ArchiveQueryResult requestData(long startTime, long endTime, Collection<SystemObject> requestedArchives)
startTime
- Startzeitpunkt, ab dem Daten nachgefordert werdenendTime
- Endzeitpunkt, bis zu dem Daten nachgefordert werdenrequestedArchives
- Archivsysteme die angefragt werden. Ist die Liste leer werden alle Archivsysteme angefragt, die beim automatischen Nachfordern
angefragt werdenArchiveNumQueriesResult getNumArchiveQueries()
ArchiveQueryResult.isRequestSuccessful()
liefert false zurück und es gibt eine entsprechende Fehlermeldung) kann davon ausgegangen werden,
dass eine ältere Archivsystem-Version eingesetzt wird und maximal 5 gleichzeitige Anfragen pro Applikation zulässig sind.