ArchiveRequestManager
public class StreamedArchiveRequester extends java.lang.Object implements ArchiveRequestManager
StreamedRequestManager
empfangen, aber an den richtigen StreamedArchiveRequester weitergeleitet). Für jede anfragende Applikation wird ein solches Objekt
erzeugt.Constructor | Description |
---|---|
StreamedArchiveRequester(ClientDavInterface archiveConnection,
int timeOutArchiveRequest,
SystemObject archiveSystem,
short defaultSimulationVariant) |
Dieser Konstruktor erzeugt ein StreamedArchiveRequester Objekt und meldet sich gleichzeitig auf der übergebenen Verbindung als Sender für Anfragen an.
|
Modifier and Type | Method | 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. |
void |
dataReceiver(Data data) |
Diese Methode analisiert die Daten und ruft die passenden Methoden auf, die die Daten weiter reichen oder verarbeiten um sie dann weiter zu reichen.
|
ArchiveQueryResult |
deleteData(java.util.List<ArchiveInformationResult> dataDisposedToDelete,
boolean deleteImmediately) |
Beauftragt das Archivsystem die angegebenen Zeitbereiche ohne Rücksicht auf den mit
ArchiveRequestManager.increaseDeleteTime(java.util.List<de.bsvrz.dav.daf.main.archive.ArchiveInformationResult>, long) festgelegten Wert zu
löschen. |
ArchiveQueryResult |
deleteDataSimulationVariant(short simulationVariant) |
Diese Methode beauftragt das Archivsystem alle Daten, die zu einer bestimmten Simulationsvariante gehören, zu löschen.
|
ArchiveNumQueriesResult |
getNumArchiveQueries() |
Gibt Informationen über die Anzahl Anfragen zurück, die eine Applikation gleichzeitig stellen darf.
|
ArchiveQueryResult |
increaseDeleteTime(java.util.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
ArchiveRequestManager.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) |
Diese Methode stellt eine Anfrage an das Archiv.
|
ArchiveDataQueryResult |
request(ArchiveQueryPriority priority,
java.util.List<ArchiveDataSpecification> specs) |
Diese Methode stellt eine Anfrage an das Archiv.
|
ArchiveQueryResult |
requestData(long startTime,
long endTime,
java.util.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(java.util.Collection<ArchiveInformationResult> requiredData,
java.util.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(java.util.List<ArchiveDataSpecification> specs) |
Start einer Archivinformationsanfrage an das Archivsystem.
|
ArchiveQueryResult |
restorePersistentData(java.util.List<ArchiveInformationResult> requiredData) |
Diese Methode beauftragt das Archivsystem bestimmten Daten, die sich nicht im direkten Zugriff befinden, von der Sicherung wieder in den direkten Zugriff
des Archivsystems zu bringen.
|
ArchiveQueryResult |
savePersistentData() |
Beauftragt das Archivsystem Archivdaten der Sicherung
ArchiveFileSaver zu übergeben. |
void |
setReceiveBufferSize(int numberOfBytes) |
Die Puffergröße (in Byte) des Empfängers auf einen anderen Wert als den default Wert setzen.
|
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
ArchiveRequestManager.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 |
waitForConnection() |
public StreamedArchiveRequester(ClientDavInterface archiveConnection, int timeOutArchiveRequest, SystemObject archiveSystem, short defaultSimulationVariant)
archiveConnection
- Eine Verbindung auf der Datensätze verschickt werden sollenarchiveSystem
- Das Archiv, für das die Datensätze bestimmt sindpublic ArchiveDataQueryResult request(ArchiveQueryPriority priority, java.util.List<ArchiveDataSpecification> specs) throws java.lang.IllegalStateException
request
in interface ArchiveRequestManager
priority
- Mit welcher Priorität soll die Anfrage beantwortet werden (hohe, mittlere, niedrige Priorität)specs
- Eine Liste von Objekten, die alle Informationen enthalten, die zur Bearbeitung der Archivanfrage nötig sind. Für jedes Objekt der Liste wird
ein Stream bereitgestellt, der die geforderten Informationen enthält.Wird eine leere Liste übergeben, wird das Objekt, das die Antwort auf
diese Anfrage enthält, ein Array mit Streams zurückgegbene, das ebenfalls leer ist.specs
leer, ist das Array, das die Streams
darstellt, ebenfalls leer.java.lang.IllegalStateException
- Das Archiv, an das die Anfrage gestellt wurde, kann nicht erreicht werden, die Anfrage wird verworfen.public ArchiveDataQueryResult request(ArchiveQueryPriority priority, ArchiveDataSpecification spec) throws java.lang.IllegalStateException
request
in interface ArchiveRequestManager
priority
- Mit welcher Priorität soll die Anfrage beantwortet werden (hohe, mittlere, niedrige Priorität)spec
- Ein Objekt, das alle Informationen enthält, die zur Bearbeitung der Archivanfrage nötig sind.java.lang.IllegalStateException
- Das Archiv, an das die Anfrage gestellt wurde, kann nicht erreicht werden, die Anfrage wird verworfen.public void setReceiveBufferSize(int numberOfBytes)
setReceiveBufferSize
in interface ArchiveRequestManager
numberOfBytes
- public void dataReceiver(Data data)
data
- Datensatz eines Archivspublic ArchiveInfoQueryResult requestInfo(ArchiveDataSpecification spec)
requestInfo
in interface ArchiveRequestManager
spec
- Spezifikation der Archivdaten zu denen Information gewünscht werden.public void subscribeReceiver(DatasetReceiverInterface receiver, SystemObject object, DataDescription dataDescription, ReceiveOptions options, HistoryTypeParameter historyType, long history)
ArchiveRequestManager
subscribeReceiver
in interface ArchiveRequestManager
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 liegenpublic void unsubscribeReceiver(DatasetReceiverInterface receiver, SystemObject object, DataDescription dataDescription)
ArchiveRequestManager
ArchiveRequestManager.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.unsubscribeReceiver
in interface ArchiveRequestManager
object
- System-Objekt für die die spezifizierten Daten angemeldet wurdendataDescription
- Beschreibende Informationen zu den angemeldeten Datenpublic ArchiveInfoQueryResult requestInfo(java.util.List<ArchiveDataSpecification> specs)
requestInfo
in interface ArchiveRequestManager
specs
- Liste mit Spezifikationen der Archivdaten zu denen Information gewünscht werdenpublic ArchiveNumQueriesResult getNumArchiveQueries()
ArchiveRequestManager
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.getNumArchiveQueries
in interface ArchiveRequestManager
public ArchiveQueryResult savePersistentData()
ArchiveRequestManager
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.savePersistentData
in interface ArchiveRequestManager
public ArchiveQueryResult requestData(java.util.Collection<ArchiveInformationResult> requiredData, java.util.Collection<SystemObject> requestedArchives)
ArchiveRequestManager
requestData
in interface ArchiveRequestManager
requiredData
- Datenidentifikation(en), die nachgefordert werden sollen. Jede Datenidentifikation speichert zusätzlich 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.public ArchiveQueryResult requestData(long startTime, long endTime, java.util.Collection<SystemObject> requestedArchives)
ArchiveRequestManager
requestData
in interface ArchiveRequestManager
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 werdenpublic ArchiveQueryResult restorePersistentData(java.util.List<ArchiveInformationResult> requiredData)
restorePersistentData
in interface ArchiveRequestManager
requiredData
- Zeitbereiche, die wieder in den direkten Zugriff des Archivsystems gebracht werden sollenpublic ArchiveQueryResult deleteDataSimulationVariant(short simulationVariant)
deleteDataSimulationVariant
in interface ArchiveRequestManager
simulationVariant
- Simulationsvariante von der alle Daten aus dem Archivsystem entfernt werden sollenpublic ArchiveQueryResult increaseDeleteTime(java.util.List<ArchiveInformationResult> requiredData, long timePeriod)
ArchiveRequestManager
increaseDeleteTime
in interface ArchiveRequestManager
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)public ArchiveQueryResult deleteData(java.util.List<ArchiveInformationResult> dataDisposedToDelete, boolean deleteImmediately)
ArchiveRequestManager
ArchiveRequestManager.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 geachtet 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.
deleteData
in interface ArchiveRequestManager
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 entferntpublic ArchiveQueryResult archiveFileSaverAlignment(int volumeIdTypB)
ArchiveRequestManager
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).archiveFileSaverAlignment
in interface ArchiveRequestManager
volumeIdTypB
- Eindeutige Identifikation eines Speichermediums Typ Bpublic void waitForConnection()
public boolean isArchiveAvailable()
ArchiveRequestManager
isArchiveAvailable
in interface ArchiveRequestManager
public void addArchiveAvailabilityListener(ArchiveAvailabilityListener listener)
ArchiveRequestManager
listener
wird benachrichtigt sobald sich die Erreichbarkeit des Archivsystems über den Datenverteiler ändert.addArchiveAvailabilityListener
in interface ArchiveRequestManager
listener
- Objekt, das benutzt wird um Änderungen der Erreichbarkeit des Archivsystems über den Datenverteiler anzuzeigenpublic void removeArchiveAvailabilityListener(ArchiveAvailabilityListener listener)
ArchiveRequestManager
ArchiveRequestManager.addArchiveAvailabilityListener(de.bsvrz.dav.daf.main.archive.ArchiveAvailabilityListener)
übergeben wurde, wird nicht mehr benachrichtigt sobald sich die Erreichbarkeit des Archivsystems
über den Datenverteiler ändert.removeArchiveAvailabilityListener
in interface ArchiveRequestManager
listener
- Objekt, das nicht mehr benachrichtigt werden soll, wenn sich die Erreichbarkeit des Archivsystems über den Datenverteiler ändert