public class Processing extends BasicFlowControl implements ProcessingInterface
| Modifier and Type | Field and Description |
|---|---|
private boolean |
_abort
Zeigt ob die Protokollerstellung abgebrochen wurde.
|
private ArchiveBuffer |
_archiveBuffer
Fordert Daten vom Archivsystem an.
|
private AtlMeta |
_atlMeta
Metainformationen zum Skript.
|
private ConfigurationObject |
_configAuth
Konfigurationsverantwortlicher für Anfragen an das Archivsystem.
|
private int[] |
_dataIdentifications
Erlaubt schnellen Zugriff auf die unterschiedlichen Datenidentifikationen, die als Spalten Skript verwendet werden.
|
private DataManagerInterface |
_dataManager
Verbindung zum Daten Manager.
|
private static Debug |
_debug
Debug-Ausgaben
|
private long |
_finalPeriod
Ende der letzten Periode.
|
private JobState |
_jobState |
private OnlineBuffer |
_onlineBuffer
Sammelt dirket vom Dav empfangene Online-Daten.
|
private ProcessingInformation |
_pi
Informationen zur Datenaufbereitung.
|
private ProcessingParameter |
_pp
Auftragsparameter
|
private long |
_protocolId
Protokoll-Id
|
private ProtocolOutputStream |
_protocolOutput
Objekt zum Speichern des Protokolls.
|
private boolean |
_saveProtocol
Zeigt an ob das Protokoll gespeichert werden soll.
|
private boolean |
_send
Sollen die Ergebnisdatensätze auf den Dav gelegt werden?
|
private PuaSender |
_sender
Objekt zum Versand der Daten
|
private SerializerUtil |
_serializer
Objekt zum Zippen und Serialisieren der Ergebnisdaten.
|
private byte |
_status
Status der Datenaufbereitung
|
private java.lang.Thread |
_thread
Der Thread der den Vorgang ausführt.
|
private boolean |
sendFailureWasLogged
Zeigt an, dass ein Sendefehler bereits geloggt wurde.
|
private static long |
SUSPEND_ARCHIVE
Falls der Online Buffer mehr Ausgangsdatensätze bereithält als
SUSPEND_ARCHIVE wird die Verarbeitung von Archivdaten unterbrochen, um die
Ausgangsdatensätze vom OnlineBuffer abzusenden. |
_maxDelay, _pause| Constructor and Description |
|---|
Processing(PuaSender sender,
DataManagerInterface dataManager,
SerializerUtil serializer,
long protocolId,
ProcessingParameter pp,
ProcessingInformation pi,
AtlMeta atlMeta,
ConfigurationObject configAuth,
long maxDelay,
int timeout,
long initialFlowControl)
Erzeugt ein Objekt zur Datenaufbereitung.
|
| Modifier and Type | Method and Description |
|---|---|
void |
abort()
Bricht die Datenaufbereitung ab.
|
private ProtocolRequestResult |
cleanUp(java.lang.String exception)
Sendet abschließenden Datensatz.
|
private void |
closeProtocolWriter()
Beendet das Speichern eines Protokolls.
|
private void |
collectDataFromArs(long stopCollectingData)
Beginnt mit dem Sammeln von Daten vom Ars.
|
private long |
collectDataFromDav()
Beginnt mit dem Sammeln von Daten vom Dav.
|
private ProtocolResult |
createProtocolResultData(IntermediateDataSet data)
Erzeugt Ergebnisdatensatz aus einem Ausgangsdatensatz.
|
private java.util.List<Tuple<java.lang.Long,java.lang.Long>> |
getArsPeriods(long stop)
Liefert die Zeiträume, in denen die Daten vom Archivsystem angefragt werden sollen.
|
protected java.lang.Object |
getClient() |
long |
getJobId()
Gibt die Auftrags-Id zurück
|
JobState |
getJobState()
Gibt den Status des Auftrags zurück
|
private long |
getMaxWait() |
private int |
getOnlinePeriodIndex(long now)
Gibt den Index zurück, bei dem die Online-Zeitbereiche starten.
|
private java.util.List<Tuple<java.lang.Long,java.lang.Long>> |
getOnlinePeriods(long now)
Liefert die Zeiträume, in denen die Daten direkt vom Datenverteiler gesammelt werden sollen.
|
long |
getProtocolId()
Zum Abfragen der Protokoll-Id.
|
private java.lang.String |
getScriptName()
Liefert die Bezeichnung des Skripts zur Verwendung in Fehlerausgaben.
|
byte |
getStatus()
Anfrage nach dem Status der Datenaufbereitung
|
private void |
prepareProtocolWriter()
Bereitet das Speichern des Protokolles vor, sofern dies in den Auftragsparametern vorgesehen war.
|
void |
process(boolean abortProcessing)
Startet die Datenaufbereitung.
|
private void |
saveProtocolData(ProtocolResult protocolResult)
Speichert einen Datensatz, falls
_saveProtocol == true. |
private void |
sendAdministrationInformation()
Stellt den Administrationsdatensatz zusammen und sendet ihn an den Auftraggeber.
|
private void |
sendAggregationInformation()
Stellt den Aggregationsdatensatz zusammen und sendet ihn an den Auftraggeber.
|
private void |
sendProtocolResultData(IntermediateDataSet data)
Erzeugt und sendet einen Ergebnisdatensatz an den Auftraggeber.
|
void |
stopProtocolTransmission()
Bricht die Übertragung des Protokolls ab.
|
private void |
tryToSend(boolean sendOK) |
datasetSend, flowControl, flowControl, getTimeout, pauseProcessing, resumeProcessingclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitflowControl, pauseProcessing, resumeProcessingprivate static final long SUSPEND_ARCHIVE
SUSPEND_ARCHIVE wird die Verarbeitung von Archivdaten unterbrochen, um die
Ausgangsdatensätze vom OnlineBuffer abzusenden.private static final Debug _debug
private OnlineBuffer _onlineBuffer
private ArchiveBuffer _archiveBuffer
private final long _protocolId
private final ProcessingInformation _pi
private final PuaSender _sender
private final AtlMeta _atlMeta
private final long _finalPeriod
private final ProcessingParameter _pp
private final DataManagerInterface _dataManager
private boolean _saveProtocol
private volatile boolean _abort
private final ConfigurationObject _configAuth
private int[] _dataIdentifications
private byte _status
private ProtocolOutputStream _protocolOutput
private final SerializerUtil _serializer
private boolean _send
private boolean sendFailureWasLogged
private java.lang.Thread _thread
private JobState _jobState
public Processing(PuaSender sender, DataManagerInterface dataManager, SerializerUtil serializer, long protocolId, ProcessingParameter pp, ProcessingInformation pi, AtlMeta atlMeta, ConfigurationObject configAuth, long maxDelay, int timeout, long initialFlowControl)
sender - Objekt zum Versand der Daten.dataManager - Verbindung zum Daten Manager. Bei Bedarf speichert Daten Manager das Protokoll.serializer - Objekt zum Zippen und Serialisieren der Ergebnisdaten.protocolId - Id des zu erstellenden Protokolls.pp - Auftragsparameter.pi - Zur Protokollerstellung benötigte Informationen.atlMeta - Metainformationen zum Skript aus dem pi generiert wurde. Werden für den Administrationsdatensatz benötigt.configAuth - Konfigurationsverantwortlicher für Anfragen an das Archivsystem.maxDelay - Maximale Zeitdauer in ms für die die Protokollerstellung angehalten werden kann.timeout - initialFlowControl - public void process(boolean abortProcessing)
ProcessingInterfaceprocess in interface ProcessingInterfaceabortProcessing - Zeigt an ob die Datenaufbereitung abgebrochen werden soll.In diesem Fall wird eine negative Quittung an den Auftraggeber gesandt.
Administrations- und Aggregations- Datensatz werden immer an den Auftraggeber gesendet.ProcessingInterface.process(boolean)private ProtocolRequestResult cleanUp(java.lang.String exception)
_archiveBuffer und _onlineBuffer ab.exception - Fehlermeldung oder null, falls kein Fehler aufgetreten ist.private void tryToSend(boolean sendOK)
private long getMaxWait()
wait(0) ewig warten.private void closeProtocolWriter()
private void prepareProtocolWriter()
private void sendProtocolResultData(IntermediateDataSet data) throws FailureException, java.lang.InterruptedException
data - Ausgangsdatensatz und Status.FailureException - Fehler beim Erstellen des Datensatzes oder beim Senden.java.lang.InterruptedExceptionprivate ProtocolResult createProtocolResultData(IntermediateDataSet data)
data - Ausgangsdatensatz.private void saveProtocolData(ProtocolResult protocolResult)
_saveProtocol == true.protocolResult - Datensatz.private void sendAggregationInformation()
throws FailureException
FailureException - Kommunikationsfehler.private void sendAdministrationInformation()
throws FailureException
_dataIdentifications. Diese Methode darf erst
NACH Starten des Archiv-/Onlinebuffers aufgerufen werden, da sonst ProcessingBuffer.getTimeStampOrigin(TempAttributeDescription) nicht verwendet
werden kann.FailureException - Fehler bei der Kommunikation.private void collectDataFromArs(long stopCollectingData)
throws FailureException,
java.lang.InterruptedException
stopCollectingData - Zeitpunkt, bis zu dem Daten vom Archivsystem gesammelt werden.java.lang.InterruptedException - Warten auf Archivantwort wurde unterbrochen.FailureExceptionprivate long collectDataFromDav()
throws FailureException
FailureException - Fehler.private int getOnlinePeriodIndex(long now)
now - Aktueller Zeitpunkt. Wird als Parameter übergeben, damit mehrere Aufrufe von System.currentTimeMillis() nicht unterschiedliche Ergebnisse liefernprivate java.util.List<Tuple<java.lang.Long,java.lang.Long>> getOnlinePeriods(long now)
now - private java.util.List<Tuple<java.lang.Long,java.lang.Long>> getArsPeriods(long stop)
stop - Zeitpunkt bis zu dem Daten vom Archivsystem gesammelt werden sollenpublic void abort()
abort in interface ProcessingInterfaceProcessingInterface.abort()public byte getStatus()
ProcessingInterfacegetStatus in interface ProcessingInterfaceProcessingInterface.getStatus()public long getProtocolId()
ProcessingInterfacegetProtocolId in interface ProcessingInterfaceProcessingInterface.getProtocolId()protected java.lang.Object getClient()
getClient in class BasicFlowControlpublic long getJobId()
ProcessingInterfacegetJobId in interface ProcessingInterfacegetJobId in class BasicFlowControlpublic JobState getJobState()
ProcessingInterfacegetJobState in interface ProcessingInterfacepublic void stopProtocolTransmission()
ProcessingInterfacestopProtocolTransmission in interface ProcessingInterfaceprivate java.lang.String getScriptName()