public class StreamedArchiveRequester extends Object implements ArchiveRequestManager
StreamedRequestManager empfangen, aber an den richtigen StreamedArchiveRequester weitergeleitet). Für jede anfragende Applikation wird ein solches Objekt
erzeugt.| Constructor and 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 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. |
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(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(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,
List<ArchiveDataSpecification> specs)
Diese Methode stellt eine Anfrage an das Archiv.
|
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)
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. |
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, List<ArchiveDataSpecification> specs) throws IllegalStateException
request in interface ArchiveRequestManagerpriority - 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.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 IllegalStateException
request in interface ArchiveRequestManagerpriority - 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.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 ArchiveRequestManagernumberOfBytes - public void dataReceiver(Data data)
data - Datensatz eines Archivspublic ArchiveInfoQueryResult requestInfo(ArchiveDataSpecification spec)
requestInfo in interface ArchiveRequestManagerspec - Spezifikation der Archivdaten zu denen Information gewünscht werden.public void subscribeReceiver(DatasetReceiverInterface receiver, SystemObject object, DataDescription dataDescription, ReceiveOptions options, HistoryTypeParameter historyType, long history)
ArchiveRequestManagersubscribeReceiver in interface ArchiveRequestManagerreceiver - 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)
ArchiveRequestManagerArchiveRequestManager.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 ArchiveRequestManagerobject - System-Objekt für die die spezifizierten Daten angemeldet wurdendataDescription - Beschreibende Informationen zu den angemeldeten Datenpublic ArchiveInfoQueryResult requestInfo(List<ArchiveDataSpecification> specs)
requestInfo in interface ArchiveRequestManagerspecs - Liste mit Spezifikationen der Archivdaten zu denen Information gewünscht werdenpublic ArchiveNumQueriesResult getNumArchiveQueries()
ArchiveRequestManagerArchiveQueryResult.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 ArchiveRequestManagerpublic ArchiveQueryResult savePersistentData()
ArchiveRequestManagerArchiveFileSaver 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 ArchiveRequestManagerpublic ArchiveQueryResult requestData(Collection<ArchiveInformationResult> requiredData, Collection<SystemObject> requestedArchives)
ArchiveRequestManagerrequestData in interface ArchiveRequestManagerrequiredData - 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.public ArchiveQueryResult requestData(long startTime, long endTime, Collection<SystemObject> requestedArchives)
ArchiveRequestManagerrequestData in interface ArchiveRequestManagerstartTime - 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(List<ArchiveInformationResult> requiredData)
restorePersistentData in interface ArchiveRequestManagerrequiredData - Zeitbereiche, die wieder in den direkten Zugriff des Archivsystems gebracht werden sollenpublic ArchiveQueryResult deleteDataSimulationVariant(short simulationVariant)
deleteDataSimulationVariant in interface ArchiveRequestManagersimulationVariant - Simulationsvariante von der alle Daten aus dem Archivsystem entfernt werden sollenpublic ArchiveQueryResult increaseDeleteTime(List<ArchiveInformationResult> requiredData, long timePeriod)
ArchiveRequestManagerincreaseDeleteTime in interface ArchiveRequestManagerrequiredData - 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(List<ArchiveInformationResult> dataDisposedToDelete, boolean deleteImmediately)
ArchiveRequestManagerArchiveRequestManager.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.deleteData in interface ArchiveRequestManagerdataDisposedToDelete - 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)
ArchiveRequestManagerArchiveFileSaver 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 ArchiveRequestManagervolumeIdTypB - Eindeutige Identifikation eines Speichermediums Typ Bpublic boolean isArchiveAvailable()
ArchiveRequestManagerisArchiveAvailable in interface ArchiveRequestManagerpublic void addArchiveAvailabilityListener(ArchiveAvailabilityListener listener)
ArchiveRequestManagerlistener wird benachrichtigt sobald sich die Erreichbarkeit des Archivsystems über den Datenverteiler ändert.addArchiveAvailabilityListener in interface ArchiveRequestManagerlistener - Objekt, das benutzt wird um Änderungen der Erreichbarkeit des Archivsystems über den Datenverteiler anzuzeigenpublic void removeArchiveAvailabilityListener(ArchiveAvailabilityListener listener)
ArchiveRequestManagerArchiveRequestManager.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 ArchiveRequestManagerlistener - Objekt, das nicht mehr benachrichtigt werden soll, wenn sich die Erreichbarkeit des Archivsystems über den Datenverteiler ändert