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, resumeProcessing
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
flowControl, pauseProcessing, resumeProcessing
private 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)
ProcessingInterface
process
in interface ProcessingInterface
abortProcessing
- 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.InterruptedException
private 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.FailureException
private 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 ProcessingInterface
ProcessingInterface.abort()
public byte getStatus()
ProcessingInterface
getStatus
in interface ProcessingInterface
ProcessingInterface.getStatus()
public long getProtocolId()
ProcessingInterface
getProtocolId
in interface ProcessingInterface
ProcessingInterface.getProtocolId()
protected java.lang.Object getClient()
getClient
in class BasicFlowControl
public long getJobId()
ProcessingInterface
getJobId
in interface ProcessingInterface
getJobId
in class BasicFlowControl
public JobState getJobState()
ProcessingInterface
getJobState
in interface ProcessingInterface
public void stopProtocolTransmission()
ProcessingInterface
stopProtocolTransmission
in interface ProcessingInterface
private java.lang.String getScriptName()