Package de.bsvrz.ars.ars.mgmt.tasks
Class ArchiveQueryTask
java.lang.Object
de.bsvrz.ars.ars.mgmt.tasks.Task
de.bsvrz.ars.ars.mgmt.tasks.AbstractTask
de.bsvrz.ars.ars.mgmt.tasks.RepeatingTask
de.bsvrz.ars.ars.mgmt.tasks.QueueTask<de.bsvrz.dav.daf.main.ResultData>
de.bsvrz.ars.ars.mgmt.tasks.MultiTask
de.bsvrz.ars.ars.mgmt.tasks.QueryTask
de.bsvrz.ars.ars.mgmt.tasks.ArchiveQueryTask
- All Implemented Interfaces:
de.bsvrz.dav.daf.main.ClientSenderInterface
Task für Bearbeitung von Archivanfragen.
Die Archivanfrage wird analysiert und in ihre Unterabfragen Query
zerlegt. Die Beantwortung erfolgt streambasiert mit einem Stream pro Unterabfrage.
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from class de.bsvrz.ars.ars.mgmt.tasks.QueryTask
QueryTask.SendingState
-
Field Summary
Fields inherited from class de.bsvrz.ars.ars.mgmt.tasks.QueryTask
atgQuery, bosResult, ddResponse, deserializer, gData, gResultData, queryAppObj, queryIdx, sendingState, serializer, serializerVersion, syncObj
Fields inherited from class de.bsvrz.ars.ars.mgmt.tasks.MultiTask
resultData
Fields inherited from class de.bsvrz.ars.ars.mgmt.tasks.Task
_debug, _shouldTerminate
Fields inherited from interface de.bsvrz.dav.daf.main.ClientSenderInterface
START_SENDING, STOP_SENDING, STOP_SENDING_NO_RIGHTS, STOP_SENDING_NOT_A_VALID_SUBSCRIPTION
-
Constructor Summary
ConstructorsConstructorDescriptionArchiveQueryTask
(ArchiveManager archiveMgr, MultiTaskManager tMgr, FlowControlTask flowCtrl, int maximumRequestsPerApplication) Erzeugt einen neuen Query-Task. -
Method Summary
Modifier and TypeMethodDescriptionprotected void
cleanUp()
Wird garantiert aufgerufen, nachdem der Task vollständig terminiert wurde.void
dataRequest
(de.bsvrz.dav.daf.main.config.SystemObject object, de.bsvrz.dav.daf.main.DataDescription dataDescription, byte state) static int
static int
protected void
init()
Initialisiert den Task für eine neue Archivanfrage.static void
setBlockingFactorMux
(int bFMuxParam) Über diese Methode kann die Parametrierung den Blocking-Faktor des StreamMultiplexers auf den parametrierten Wert setzen (Attribut "AnzahlBlocks" in Attributgruppe "ArchivEinstellung").static void
setBufferSizeMux
(int bSMuxParam) Über diese Methode kann die Parametrierung die PufferGröße des StreamMultiplexers auf den parametrierten Wert setzen (Attribut "AnzahlBytes" in Attributgruppe "ArchivEinstellung").static void
subscribeObjects
(ArchiveManager archMgr, InQueuesMgr.DataReceiver receiver) Fuehrt alle notwendigen Anmeldungen durch.void
Terminiert den Task.protected void
Meldet den Task als Sender für Archiv-Antworten an das angegebene Empfaenger-Applikations-Objekt ab.void
work()
Diese Methode ist zu überschreiben, um die konkrete Aufgabe der Task zu implementieren.Methods inherited from class de.bsvrz.ars.ars.mgmt.tasks.QueryTask
createQueryData, getObjectsFromDav, isRequestSupported, parseArchiveDataSpec, sendResultData, subscribeSender, waitForSendControl
Methods inherited from class de.bsvrz.ars.ars.mgmt.tasks.MultiTask
setTaskIndex, work
Methods inherited from class de.bsvrz.ars.ars.mgmt.tasks.RepeatingTask
execute, getArchMgr
Methods inherited from class de.bsvrz.ars.ars.mgmt.tasks.AbstractTask
addTaskStepListener, getName, getState, isAlive, isTerminated, join, removeTaskStepListener, setName, start, taskStepDone
Methods inherited from class de.bsvrz.ars.ars.mgmt.tasks.Task
getDidTree, getPersistenceManager, shouldTerminate, suspendTaskIfNecessary
-
Constructor Details
-
ArchiveQueryTask
public ArchiveQueryTask(ArchiveManager archiveMgr, MultiTaskManager tMgr, FlowControlTask flowCtrl, int maximumRequestsPerApplication) Erzeugt einen neuen Query-Task.- Parameters:
archiveMgr
- Archiv-VerwaltungtMgr
- Zugeordneter Task-ManagerflowCtrl
- Verwaltung der FlusskontrollemaximumRequestsPerApplication
- Maximale Anzahl von gleichzeitigen Anfragen pro Applikation
-
-
Method Details
-
subscribeObjects
Fuehrt alle notwendigen Anmeldungen durch.- Parameters:
archMgr
- Archiv-Verwaltungreceiver
- Empfaengerobjekt
-
setBlockingFactorMux
public static void setBlockingFactorMux(int bFMuxParam) Über diese Methode kann die Parametrierung den Blocking-Faktor des StreamMultiplexers auf den parametrierten Wert setzen (Attribut "AnzahlBlocks" in Attributgruppe "ArchivEinstellung").- Parameters:
bFMuxParam
- Parametrierter Blocking-Faktor des StreamMultiplexers
-
setBufferSizeMux
public static void setBufferSizeMux(int bSMuxParam) Über diese Methode kann die Parametrierung die PufferGröße des StreamMultiplexers auf den parametrierten Wert setzen (Attribut "AnzahlBytes" in Attributgruppe "ArchivEinstellung").- Parameters:
bSMuxParam
- Parametrierte PufferGröße des StreamMultiplexers
-
getBlockingFactorMux
public static int getBlockingFactorMux()- See Also:
-
getBufferSizeMux
public static int getBufferSizeMux()- See Also:
-
work
public void work()Description copied from class:MultiTask
Diese Methode ist zu überschreiben, um die konkrete Aufgabe der Task zu implementieren. In der Methode soll keine weitere Synchronisation stattfinden. -
dataRequest
public void dataRequest(de.bsvrz.dav.daf.main.config.SystemObject object, de.bsvrz.dav.daf.main.DataDescription dataDescription, byte state) - Specified by:
dataRequest
in interfacede.bsvrz.dav.daf.main.ClientSenderInterface
- Overrides:
dataRequest
in classQueryTask
- See Also:
-
ClientSenderInterface.dataRequest(SystemObject, DataDescription, byte)
-
terminateTask
public void terminateTask()Description copied from class:QueueTask
Terminiert den Task. Diese Methode fügt zusätzlich in die Queue einen speziellen Token ein, mit dem der Aufruf von_queue.take()
in derQueueTask.step()
-Methode aufgeweckt wird, falls die Methode dort gerade auf einen neuen Auftrag warten.- Overrides:
terminateTask
in classQueueTask<de.bsvrz.dav.daf.main.ResultData>
-
cleanUp
protected void cleanUp()Description copied from class:AbstractTask
Wird garantiert aufgerufen, nachdem der Task vollständig terminiert wurde. Dieser Code wird im selben Thread ausgeführt, wie der eigentliche TaskTut standardmäßig nichts, kann überschrieben werden um Daten aufzuräumen, Abmeldungen durchzuführen usw.
- Overrides:
cleanUp
in classAbstractTask
-
init
protected void init()Initialisiert den Task für eine neue Archivanfrage. -
unsubscribeSender
protected void unsubscribeSender()Meldet den Task als Sender für Archiv-Antworten an das angegebene Empfaenger-Applikations-Objekt ab. Deregistriert den StreamMultiplexer für den Empfang von Flusskontroll-Steuerungspaketen.- Overrides:
unsubscribeSender
in classQueryTask
-