de.bsvrz.ars.ars.mgmt.tasks
Class QueryTask

java.lang.Object
  extended by java.lang.Thread
      extended by de.bsvrz.ars.ars.mgmt.tasks.Task
          extended by de.bsvrz.ars.ars.mgmt.tasks.MultiTask
              extended by de.bsvrz.ars.ars.mgmt.tasks.QueryTask
All Implemented Interfaces:
SuspendableTask, java.lang.Runnable
Direct Known Subclasses:
ArchiveInfoQueryTask, ArchiveQueryTask

public abstract class QueryTask
extends MultiTask

Oberklasse fuer Tasks, die Archivanfragen oder Archiv-Informationsanfragen bearbeiten.

Version:
$Revision: 1.2 $ / $Date: 2008/01/22 16:55:58 $ / ($Author: yvonnes $)
Author:
beck et al. projects GmbH, Alexander Schmidt

Nested Class Summary
protected static class QueryTask.SendingState
          Zustand der Sendesteuerung (Senden / Anhalten / Abbrechen).
 
Nested classes/interfaces inherited from class java.lang.Thread
java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler
 
Field Summary
protected static AttributeGroup atgQuery
          Attributgruppe fuer Archiv-Anfragen.
protected  java.io.ByteArrayOutputStream bosResult
          Wiederverwendbarer ByteArrayOutputStream.
protected static DataDescription ddResponse
          Datenidentifikation der Archiv-Antwort.
protected  Deserializer deserializer
          Der Deserialisierer aus DAF.
protected  Data gData
          Dieses Datenobjekt wird zum Senden des Ergebnisses verwendet
protected  ResultData gResultData
          Wird zum Senden verwendet (muss nur einmal angelegt werden)
static int MIN_CONTAINER_FILES
          Mindest-Anzahl an ContainerFile-Objekten, die der PersistenzManager fuer diesen Task vorhalten soll.
protected static ArchiveDataKind NA
          Datensatzart Nachgefordert Aktuell
protected static ArchiveDataKind NN
          Datensatzart Nachgefordert Nachgeliefert
protected static ArchiveDataKind OA
          Datensatzart Online Aktuell
protected static ArchiveDataKind ON
          Datensatzart Online Nachgeliefert
protected  SystemObject queryAppObj
          Applikations-Objekt des Absenders der Archiv-Anfrage.
protected  int queryIdx
          Anfrage-Index der anfragenden Applikation zur Archiv-Anfrage.
protected  QueryTask.SendingState sendingState
          Aktueller Zustand der Sendesteuerung.
protected  Serializer serializer
          Der Serialisierer aus DAF.
protected  int serializerVersion
          Serialisiererversion der anfragenden Applikation, mit der auch die Antwort erstellt wird.
protected  java.lang.Object syncObj
          Spezielles Objekt zur Synchronisiserung.
protected static long t_lsMax
          Maximale Dauer, um die der Loeschschutz automatisch verlaengert wird (gemessn ab Ende Vorhaltezeitraum)
protected  byte[] tempMem
          Speicher fuer das Abfragen der Indexe.
 
Fields inherited from class de.bsvrz.ars.ars.mgmt.tasks.MultiTask
resultData, taskMgr
 
Fields inherited from class de.bsvrz.ars.ars.mgmt.tasks.Task
archMgr, didTree, INDEX_MEMORY_SIZE, isTerminated, logger, persMgr, ringOfDeathListener, taskStepListeners
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Constructor Summary
QueryTask(ArchiveManager archiveMgr, MultiTaskManager tMgr)
          Konstruktor fuer den QueryTask.
 
Method Summary
protected  void createQueryData()
          Legt alle Datenstrukturen an, die zu Beginn der Anfrage ermittelt werden koennen.
 void dataRequest(SystemObject object, DataDescription dataDescription, byte state)
           
static void getObjectsFromDAV(ClientDavInterface davCon)
          In dieser Methode werden alle notwendigen Objekte von DAV geladen.
protected  void init()
          Initialisiert den Task fuer eine neue Anfrage.
 boolean isRequestSupported(SystemObject object, DataDescription dataDescription)
           
protected  ArchiveDataSpecification[] parseArchiveDataSpec(Deserializer ds)
          Interpretiert die empfangene Archivanfrage oder Archiv-Informationsanfrage und zerlegt sie in einzelne Unterabfragen vom Typ ArchiveDataSpecification.
protected  void sendResultData(byte[] resultBytes, int msgType)
          Sendet das uebergebene Byte-Array in einem Ergebnis-Datensatz (ResultData) an das Empfaenger-Applikations-Objekt.
static void setT_lsMax(long tlsMax)
           
protected  void subscribeSender()
          Meldet den Task als Sender fuer Archiv-Antworten an das angegebene Empfaenger-Applikations-Objekt an.
protected  void unsubscribeSender()
          Meldet den Task als Sender fuer Archiv-Antworten an das angegebene Empfaenger-Applikations-Objekt ab.
 
Methods inherited from class de.bsvrz.ars.ars.mgmt.tasks.MultiTask
doWork, getTaskIndex, run, setTaskIndex, work
 
Methods inherited from class de.bsvrz.ars.ars.mgmt.tasks.Task
addTaskStepListener, getArchMgr, isTaskTerminated, removeTaskStepListener, suspendTaskIfNecessary, terminateTask
 
Methods inherited from class java.lang.Thread
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

OA

protected static ArchiveDataKind OA
Datensatzart Online Aktuell


ON

protected static ArchiveDataKind ON
Datensatzart Online Nachgeliefert


NA

protected static ArchiveDataKind NA
Datensatzart Nachgefordert Aktuell


NN

protected static ArchiveDataKind NN
Datensatzart Nachgefordert Nachgeliefert


MIN_CONTAINER_FILES

public static final int MIN_CONTAINER_FILES
Mindest-Anzahl an ContainerFile-Objekten, die der PersistenzManager fuer diesen Task vorhalten soll.

See Also:
Constant Field Values

sendingState

protected QueryTask.SendingState sendingState
Aktueller Zustand der Sendesteuerung.


syncObj

protected java.lang.Object syncObj
Spezielles Objekt zur Synchronisiserung. Immer dieses anstatt this verwenden!


tempMem

protected byte[] tempMem
Speicher fuer das Abfragen der Indexe.


queryAppObj

protected SystemObject queryAppObj
Applikations-Objekt des Absenders der Archiv-Anfrage.


atgQuery

protected static AttributeGroup atgQuery
Attributgruppe fuer Archiv-Anfragen.


ddResponse

protected static DataDescription ddResponse
Datenidentifikation der Archiv-Antwort.


queryIdx

protected int queryIdx
Anfrage-Index der anfragenden Applikation zur Archiv-Anfrage.


serializerVersion

protected int serializerVersion
Serialisiererversion der anfragenden Applikation, mit der auch die Antwort erstellt wird.


gData

protected Data gData
Dieses Datenobjekt wird zum Senden des Ergebnisses verwendet


gResultData

protected ResultData gResultData
Wird zum Senden verwendet (muss nur einmal angelegt werden)


bosResult

protected java.io.ByteArrayOutputStream bosResult
Wiederverwendbarer ByteArrayOutputStream.


serializer

protected Serializer serializer
Der Serialisierer aus DAF.


deserializer

protected Deserializer deserializer
Der Deserialisierer aus DAF.


t_lsMax

protected static long t_lsMax
Maximale Dauer, um die der Loeschschutz automatisch verlaengert wird (gemessn ab Ende Vorhaltezeitraum)

Constructor Detail

QueryTask

public QueryTask(ArchiveManager archiveMgr,
                 MultiTaskManager tMgr)
Konstruktor fuer den QueryTask.

Parameters:
archiveMgr - Der Archiv-Manager.
tMgr - Der MultiTaskManager.
Method Detail

init

protected void init()
Initialisiert den Task fuer eine neue Anfrage.


getObjectsFromDAV

public static void getObjectsFromDAV(ClientDavInterface davCon)
                              throws ConfigurationException
In dieser Methode werden alle notwendigen Objekte von DAV geladen.

Parameters:
davCon - Verbindung zum Datenverteiler
Throws:
ConfigurationException

setT_lsMax

public static void setT_lsMax(long tlsMax)
See Also:
t_lsMax

isRequestSupported

public boolean isRequestSupported(SystemObject object,
                                  DataDescription dataDescription)
See Also:
ClientSenderInterface#isRequestSupported(SystemObject, DataDescription)

dataRequest

public void dataRequest(SystemObject object,
                        DataDescription dataDescription,
                        byte state)
See Also:
ClientSenderInterface#dataRequest(SystemObject, DataDescription, byte)

subscribeSender

protected void subscribeSender()
                        throws ConfigurationException,
                               OneSubscriptionPerSendData
Meldet den Task als Sender fuer Archiv-Antworten an das angegebene Empfaenger-Applikations-Objekt an. Registriert den StreamMultiplexer fuer den Empfang von Flusskontroll-Steuerungspaketen.

Parameters:
receiver - Empfaenger-Applikations-Objekt
Throws:
OneSubscriptionPerSendData
ConfigurationException

unsubscribeSender

protected void unsubscribeSender()
Meldet den Task als Sender fuer Archiv-Antworten an das angegebene Empfaenger-Applikations-Objekt ab.


createQueryData

protected void createQueryData()
                        throws NoSuchVersionException
Legt alle Datenstrukturen an, die zu Beginn der Anfrage ermittelt werden koennen.

Throws:
NoSuchVersionException

sendResultData

protected void sendResultData(byte[] resultBytes,
                              int msgType)
Sendet das uebergebene Byte-Array in einem Ergebnis-Datensatz (ResultData) an das Empfaenger-Applikations-Objekt.

Parameters:
resultBytes - Zu versendendes Byte-Array
msgType - ArchivNachrichtenTyp wie definiert in MessageType

parseArchiveDataSpec

protected ArchiveDataSpecification[] parseArchiveDataSpec(Deserializer ds)
                                                   throws java.io.IOException
Interpretiert die empfangene Archivanfrage oder Archiv-Informationsanfrage und zerlegt sie in einzelne Unterabfragen vom Typ ArchiveDataSpecification.

Parameters:
ds - Deserialisierer mit der Anfrage.
Returns:
Feld von Unterabfragen vom Typ ArchiveDataSpecification.
Throws:
java.io.IOException


Copyright © 2005-2008 beck et al. projects GmbH All Rights Reserved.