public class ArchiveBuffer extends ProcessingBuffer
MAX_THRESHOLD) erreicht, so stellt der Archivbuffer die arbeit ein, bis sich der Puffer wieder fast vollständig
(MIN_THRESHOLD) geleert hat.| Modifier and Type | Field and Description |
|---|---|
static int |
MAX_THRESHOLD
Anzahl Ausgangsdatensätze, die im Ausgangspuffer liegen.
|
static int |
MIN_THRESHOLD
Anzahl Ausgangsdatensätze, die mindestens im Ausgangspuffer liegen sollten.
|
static ArchiveQueryPriority |
PRIORITY
Anfragepriorität an das Archivsystem.
|
_buffer, _bufferResult, _connection, _dataSetBuilder, _debug, _done, _periods, _processingInformation, _realElements, _tempElements, INITIAL_RINGBUFFER_SIZE| Constructor and Description |
|---|
ArchiveBuffer(ClientDavInterface dav,
ProcessingInterface processor,
ConfigurationObject configAuth,
ProcessingInformation pi,
java.util.List<Tuple<java.lang.Long,java.lang.Long>> periods,
java.lang.String scriptName)
Startet den Online-ProcessingBuffer.
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
applyAggregations(java.util.List<BaseDataSet> baseData)
Führt die Aggregierungen durch.
|
int[] |
getLinkedAttributes()
Zeigt an welche Attribute durch die Aggregation
spalte zusammengefasst werden. |
boolean |
hasData()
Zeigt an ob Daten abgeholt werden können.
|
void |
init()
Sendet erste Anfragen an das Archivsystem.
|
boolean |
isDone()
Zeigt ob der Buffer noch weitere Daten liefern wird.
|
protected boolean |
isDoneCollecting()
Überprüft ob die Datensammlung abgeschlossen ist.
|
protected boolean |
isListAggregation()
Werden nicht aggregierte Daten versendet?
|
protected void |
processNewData(ValueProvider[] elements,
java.util.ArrayList<ValueProvider> winners)
Bereitet aus den Ergebnisdatensätzen die Ergebnisdaten auf.
|
protected void |
requestData()
Stellt Archivanfragen für alle realen Elemente mit den momentan engetragenen Werten von
_archiveUser |
void |
storeAggregatedData(byte status)
Falls Aggregationsdatensätze vorhanden sind, werden sie in den Ausgangspuffer gelegt.
|
IntermediateDataSet |
take()
Liefert einen Ausgangsdatensatz zurück.
|
abort, applyPostFilter, getInsertEmpty, getProtocolType, getResult, getScriptName, getTimeStampOrigin, getWinners, isAbort, isAggregate, nextInterval, notifyProcessor, run, setAggregate, setDone, setTempAttributes, size, storeDataSetactiveCount, 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, yieldpublic static final ArchiveQueryPriority PRIORITY
public static int MAX_THRESHOLD
public static int MIN_THRESHOLD
public ArchiveBuffer(ClientDavInterface dav, ProcessingInterface processor, ConfigurationObject configAuth, ProcessingInformation pi, java.util.List<Tuple<java.lang.Long,java.lang.Long>> periods, java.lang.String scriptName) throws FailureException
init() sollte unverzüglich nach
Erzeugen des Objekts aufgerufen werden.dav - Verbindung zum Datenverteilerprocessor - Objekt das die Datenaufbereitung durchführt. Wird jedes Mal benachrichtigt, wenn ein Ausgangsdatensatz vorliegt.configAuth - Konfigurationsverantwortlicher, dessen Archivsystem verwendet wird.pi - Informationen zur Datenaufbereitung. Die Zeitbereiche müssen bereits sortiert und zusammengefasst sein!periods - Zeitbereiche, in denen der Archivbuffer Daten sammeln soll. Inhalt wird geändert!scriptName - Bezeichnung des Skripts zur Verwendung in Fehlerausgaben.FailureException - Fehler bei der Kommunikation mit der Konfigurationpublic void init()
throws FailureException,
java.lang.InterruptedException
ProcessingBuffer.abort() aufgerufen.init in class ProcessingBufferFailureException - Fehler bei der Archivanfrage.java.lang.InterruptedException - Warten auf Archivantwort wurde unterbrochen.ProcessingBuffer.init()public boolean applyAggregations(java.util.List<BaseDataSet> baseData)
ProcessingBufferProcessingBuffer.isAggregate() true liefert.applyAggregations in class ProcessingBufferbaseData - Werte des Ausgangsdatensatz. Einträge können von der Methode geändert werden.true: Der Ausgangsdatensatz soll nachgefiltert und ausgegeben werden.de.bsvrz.pua.prot.processing.ProcessingBuffer#applyAggregations(java.util.Listprotected void requestData()
throws FailureException,
java.lang.InterruptedException
_archiveUserFailureException - Fehler bei der Archivanfrage.java.lang.InterruptedException - Warten auf Antwortdatensatz wurde unterbrochen.protected boolean isDoneCollecting()
throws FailureException,
java.lang.InterruptedException
isDoneCollecting in class ProcessingBufferTrue falls die Datensammlung abgeschlossen ist. Überprüft zudem, wieviele Elemente sich in der Warteschlange befinden. Ist die
Warteschlange bereits über MAX_THRESHOLD gefüllt, so wird der ArchivBuffer angehalten, bis die Queue wieder fast vollständig (MIN_THRESHOLD) geelert ist.FailureException - Fehler bei der Archivanfrage. Es wird eine Archivanfrage gestellt, wenn Daten für ein weiteres Intervall angefragt werden.java.lang.InterruptedException - Warten auf Antwortdatensatz wurde unterbrochen.ProcessingBuffer.isDoneCollecting()public boolean isDone()
ProcessingBufferisDone in class ProcessingBuffertrue falls noch weitere Daten zu erwarten sind.ProcessingBuffer.isDone()public boolean hasData()
hasData in class ProcessingBuffertrue falls Daten mittels take() abgeholt werden können.public IntermediateDataSet take() throws java.lang.InterruptedException
ProcessingBuffertake in class ProcessingBufferjava.lang.InterruptedException - Warten auf Ausgangsdatensatz wurde unterbrochen.ProcessingBuffer.take()protected boolean isListAggregation()
ProcessingBufferisListAggregation in class ProcessingBuffertrue falls Liste eine der ausgewählten die Aggregationsanwendungen ist.ProcessingBuffer.isListAggregation()public int[] getLinkedAttributes()
spalte zusammengefasst werden. Zusammengehörige Spalten werden duch die gleichen Nummern
gekennzeichnet.null falls die spalten Aggregation nicht verwendet wird.public void storeAggregatedData(byte status)
ProcessingBufferstoreAggregatedData in class ProcessingBufferstatus - Status, den der Aggregationsdatensatz erhalten soll.ProcessingBuffer.storeAggregatedData(byte)protected void processNewData(ValueProvider[] elements, java.util.ArrayList<ValueProvider> winners) throws FailureException, java.lang.InterruptedException
ProcessingBufferprocessNewData in class ProcessingBufferelements - Liste aller Datenlieferanten.winners - Rückgabe: Liste der Datensätze mit minimalem, nicht aufgefüllten Datenzeitstempel. (Es sollte eine leere ArrayList übergeben werden)FailureException - Fehler bei der Aufbereitung.java.lang.InterruptedException - Aufbereitung wurde unterbrochen.de.bsvrz.pua.prot.processing.ProcessingBuffer#processNewData(de.bsvrz.pua.prot.processing.ValueProvider[],java.util.ArrayList