de.bsvrz.ars.ars.mgmt.tasks
Class ArchiveQueryTask
java.lang.Object
java.lang.Thread
de.bsvrz.ars.ars.mgmt.tasks.Task
de.bsvrz.ars.ars.mgmt.tasks.MultiTask
de.bsvrz.ars.ars.mgmt.tasks.QueryTask
de.bsvrz.ars.ars.mgmt.tasks.ArchiveQueryTask
- All Implemented Interfaces:
- SuspendableTask, ClientSenderInterface, StreamMultiplexerDirector, Runnable
public class ArchiveQueryTask
- extends QueryTask
- implements StreamMultiplexerDirector
Task fuer Bearbeitung von Archivanfragen.
Die Archivanfrage wird analysiert und in ihre Unterabfragen Query
zerlegt. Die Beantwortung erfolgt streambasiert mit einem Stream pro Unterabfrage.
- Author:
- beck et al. projects GmbH, Thomas Schäfer, Alexander Schmidt
Fields inherited from class de.bsvrz.ars.ars.mgmt.tasks.QueryTask |
atgQuery, bosResult, ddResponse, deserializer, gData, gResultData, MIN_CONTAINER_FILES, NA, NN, OA, ON, queryAppObj, queryIdx, sendingState, serializer, serializerVersion, syncObj, t_lsMax, tempMem |
Method Summary |
void |
dataRequest(SystemObject object,
DataDescription dataDescription,
byte state)
|
static int |
getBlockingFactorMux()
|
static int |
getBufferSizeMux()
|
protected void |
init()
Initialisiert den Task fuer eine neue Archivanfrage. |
void |
sendData(byte[] streamDataPacket)
|
static void |
setBlockingFactorMux(int bFMuxParam)
Ueber 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)
Ueber diese Methode kann die Parametrierung die Puffergroesse des StreamMultiplexers auf den parametrierten Wert setzen (Attribut "AnzahlBytes" in
Attributgruppe "ArchivEinstellung"). |
void |
streamAborted(int indexOfStream)
|
static void |
subscribeObjects(ArchiveManager archMgr,
InQueuesMgr.DataReceiver receiver)
Fuehrt alle notwendigen Anmeldungen durch. |
byte[] |
take(int indexOfStream)
|
protected void |
unsubscribeSender()
Meldet den Task als Sender fuer 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 java.lang.Thread |
activeCount, checkAccess, clone, 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 |
MAXIMUM_REQUESTS_PER_APPLICATION
public static final int MAXIMUM_REQUESTS_PER_APPLICATION
- Maximale Anzahl paralleler Archivanfragen je Applikation
- See Also:
- Constant Field Values
ArchiveQueryTask
public ArchiveQueryTask(ArchiveManager archiveMgr,
MultiTaskManager tMgr,
FlowControlTask flowCtrl)
- Erzeugt eine neue Query-Task.
- Parameters:
archiveMgr
- Archiv-VerwaltungtMgr
- Zugeordneter Task-ManagerflowCtrl
- Verwaltung der Flusskontrolle
subscribeObjects
public static void subscribeObjects(ArchiveManager archMgr,
InQueuesMgr.DataReceiver receiver)
- Fuehrt alle notwendigen Anmeldungen durch.
- Parameters:
archMgr
- Archiv-Verwaltungreceiver
- Empfaengerobjekt
setBlockingFactorMux
public static void setBlockingFactorMux(int bFMuxParam)
- Ueber 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)
- Ueber diese Methode kann die Parametrierung die Puffergroesse des StreamMultiplexers auf den parametrierten Wert setzen (Attribut "AnzahlBytes" in
Attributgruppe "ArchivEinstellung").
- Parameters:
bSMuxParam
- Parametrierte Puffergroesse des StreamMultiplexers
getBlockingFactorMux
public static int getBlockingFactorMux()
- See Also:
setBlockingFactorMux(int)
getBufferSizeMux
public static int getBufferSizeMux()
- See Also:
setBlockingFactorMux(int)
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.
- Specified by:
work
in class MultiTask
- See Also:
MultiTask.work()
sendData
public void sendData(byte[] streamDataPacket)
- Specified by:
sendData
in interface StreamMultiplexerDirector
- See Also:
StreamMultiplexerDirector.sendData(byte[])
take
public byte[] take(int indexOfStream)
- Specified by:
take
in interface StreamMultiplexerDirector
- See Also:
StreamMultiplexerDirector.take(int)
streamAborted
public void streamAborted(int indexOfStream)
- Specified by:
streamAborted
in interface StreamMultiplexerDirector
- See Also:
StreamMultiplexerDirector.streamAborted(int)
dataRequest
public void dataRequest(SystemObject object,
DataDescription dataDescription,
byte state)
- Specified by:
dataRequest
in interface ClientSenderInterface
- Overrides:
dataRequest
in class QueryTask
- See Also:
ClientSenderInterface.dataRequest(SystemObject, DataDescription, byte)
init
protected void init()
- Initialisiert den Task fuer eine neue Archivanfrage.
- Overrides:
init
in class QueryTask
unsubscribeSender
protected void unsubscribeSender()
- Meldet den Task als Sender fuer Archiv-Antworten an das angegebene Empfaenger-Applikations-Objekt ab. Deregistriert den StreamMultiplexer fuer den Empfang
von Flusskontroll-Steuerungspaketen.
- Overrides:
unsubscribeSender
in class QueryTask