Class RequestNumQueries

java.lang.Object
de.bsvrz.dav.daf.main.impl.archive.request.RequestNumQueries
All Implemented Interfaces:
ArchiveNumQueriesResult, ArchiveQueryResult

public class RequestNumQueries extends Object implements ArchiveNumQueriesResult
Diese Klasse stellt ein Objekt zur Verfügung, über das eine Anfrage nach der Anzahl möglichen Archivanfragen (pro Applikation) gestartet werden kann. Diese Klasse wird von der Klasse StreamedArchiveRequester benutzt.
  • Constructor Details

  • Method Details

    • getMaximumArchiveQueriesPerApplication

      public int getMaximumArchiveQueriesPerApplication()
      Description copied from interface: ArchiveNumQueriesResult
      Gibt die im Archivsystem fest eingestellte maximale Anzahl an gleichzeitigen Archivanfragen pro Applikation zurück.
      Specified by:
      getMaximumArchiveQueriesPerApplication in interface ArchiveNumQueriesResult
      Returns:
      maximale Anzahl an gleichzeitigen Archivanfragen pro Applikation
    • getCurrentlyUsedQueries

      public int getCurrentlyUsedQueries()
      Description copied from interface: ArchiveNumQueriesResult
      Gibt die (aus Sicht des Archivsystems) aktuelle Anzahl der derzeit aktiven Archivanfragen dieser Applikation zurück.
      Specified by:
      getCurrentlyUsedQueries in interface ArchiveNumQueriesResult
      Returns:
      Aktuell verwendete Anzahl an Archivanfragen
    • getRemainingQueries

      public int getRemainingQueries()
      Description copied from interface: ArchiveNumQueriesResult
      Gibt die (aus Sicht des Archivsystems) aktuelle Anzahl der noch möglichen gleichzeitigen Archivanfragen dieser Applikation zurück. Theoretisch kann eine Applikation noch die zurückgegebene Anzahl an Archivanfragen stellen, ohne dass es zu Problemen kommt. Aufgrund von Timing-Problemen kann das aber nicht immer garantiert werden.
      Specified by:
      getRemainingQueries in interface ArchiveNumQueriesResult
      Returns:
      Noch unbenutzes Kontigent an möglichen Archivanfragen für diese Applikation.
    • isRequestSuccessful

      public boolean isRequestSuccessful() throws InterruptedException
      Diese Methode ist blockierend, bis die Antwort des Archivs vorliegt.
      Specified by:
      isRequestSuccessful in interface ArchiveQueryResult
      Returns:
      true = Die Anfrage konnte fehlerfrei bearbeitet werden; false = Während der Bearbeitung der Anfrage kam es zu einem Fehler, dieser kann mit getErrorMessage angezeigt werden
      Throws:
      InterruptedException - Der Thread, der den Auftrag bearbeitet, wurde abgebrochen
    • getErrorMessage

      public String getErrorMessage() throws InterruptedException
      Diese Methode liefert einen String mit der Fehlermeldung, die dazu geführt hat das die Informationsanfrage nicht ausgeführt werden konnte. Dieser Aufruf blockiert solange, bis ein Ergebnis des Archivsystems vorliegt.
      Specified by:
      getErrorMessage in interface ArchiveQueryResult
      Returns:
      String mit einer Fehlermeldung
      Throws:
      InterruptedException - Der Thread, der den Auftrag bearbeitet, wurde abgebrochen
    • aborted

      public void aborted(String errorMessage)
      Description copied from interface: ArchiveQueryResult
      Setzt eine Fehlermeldung und bewirkt, dass nicht weiter auf eine Antwort vom Archivsystem gewartet wird.
      Specified by:
      aborted in interface ArchiveQueryResult
      Parameters:
      errorMessage - Fehlermeldung, mit der die Anfrage terminiert wird.
    • sendRequestInfo

      public void sendRequestInfo()
      Diese Methode verschickt eine Archivinfoanfrage an das entsprechende Archivsystem und meldet sich wieder als Sender ab.
    • archiveResponse

      public void archiveResponse(Data data)
      Diese Methode wird aufgerufen, wenn die Antwort des Archivsystems empfangen wurde. Die Antwort wird analysiert und die betreffenden Objekte zur Verfügung gestellt, wartende Threads werden benachrichtigt.
    • getArchiveRequestID

      public ArchiveQueryID getArchiveRequestID()
      Returns:
      Eindeutige Identifikation der Archivanfrage (RequestInfo in diesem Fall)