Package de.bsvrz.ars.ars.mgmt.tasks
Class ArchiveTask
java.lang.Object
de.bsvrz.ars.ars.mgmt.tasks.AbstractTask
de.bsvrz.ars.ars.mgmt.tasks.Task
de.bsvrz.ars.ars.mgmt.tasks.RepeatingTask
de.bsvrz.ars.ars.mgmt.tasks.ArchiveTask
- Direct Known Subclasses:
ArchiveRequestedTask
public class ArchiveTask extends RepeatingTask
Task zur Archivierung von Datensätzen. Ist nicht von SingleTask abgeleitet, weil ein spezieller ArchiveRingBuffer verwendet wird, der zwei Objekte
(ResultData und Archivzeit) speichern kann. Die work()-Methode hat deswegen zwei Parameter.
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classArchiveTask.CloseContainerObjectEine Instanz dieser Klasse wird eingefuegt, wenn ein Container aufgrund einer Parametrierungs-Änderung abgeschlossen werden soll. -
Field Summary
Fields Modifier and Type Field Description protected java.util.concurrent.atomic.AtomicLong_closeCountprotected java.util.concurrent.atomic.AtomicLong_failCountprotected java.util.concurrent.atomic.AtomicLong_successCountprotected de.bsvrz.dav.daf.main.archive.ArchiveDataKindadkprotected longarsTimeprotected java.util.zip.Deflatercompresserprotected intdataEntryLenLänge des serislisierten Datensatzes inklusive Datensatz-Headerprotected longdataIdxprotected longdataTimeprotected DataIdentificationDirdidPathprotected DataIdentNodedinstatic java.lang.StringMSG_PID_DATAINDEX_ANOMALYKennzeichen der Betriebsmeldungprotected longopenContIDFields inherited from class de.bsvrz.ars.ars.mgmt.tasks.RepeatingTask
TERMINATE_TASKFields inherited from class de.bsvrz.ars.ars.mgmt.tasks.AbstractTask
_debug, _shouldTerminate, archMgr, didTree, persMgr -
Constructor Summary
Constructors Constructor Description ArchiveTask(ArchiveManager archiveMgr, int tskIdx, de.bsvrz.sys.funclib.losb.ringbuffer.ArchiveRingBuffer inQueue)Konstruktor des Archiv-Tasks. -
Method Summary
Modifier and Type Method Description protected voidcreateRebuildIndexFlagFile()Erzeugt die Kennzeichen-Datei, ob die Indexe verändert wurden, um nach einem Absturz den Wiederanlauf zu beschleunigen.longgetCloseContainerSuccess()static de.bsvrz.sys.funclib.losb.datk.ContainerSettingsgetContainerSettings()Liefert die Container-Einstellungen des Archivsystems.longgetFailedCount()static longgetLastArchiveTime()longgetProcessedCount()longgetSuccessCount()protected voidhandleErr(java.lang.Exception e, ArchiveTask.CloseContainerObject cco)protected voidhandleErr(java.lang.Exception e, java.lang.String corpusDelicti)protected voidlookupLastDataIdxes(IdDataIdentification dataIdentification, boolean requested)Sucht die letzten Datenindexe im Index sowie den Container.voidresetDSCounter()Setzt alle Zähler auf 0.static voidsetContainerSettings(de.bsvrz.sys.funclib.losb.datk.ContainerSettings cs)Setzt die Container-Einstellungen des Archivsystems.static voidsetLastArchiveTime(long atime)voidstep()Implementiert die beliebige wiederholt auszuführende Aufgabeprotected booleanstoreData()voidterminateTask()Terminiert den Task indem dafür gesorgt wird, dasAbstractTask.shouldTerminate()true zurückliefert.voidwork(java.lang.Object resultData, long archTime)Archiviert den übergebenen Datensatz unter dem angegebenen Archivzeitstempel.Methods inherited from class de.bsvrz.ars.ars.mgmt.tasks.RepeatingTask
executeMethods inherited from class de.bsvrz.ars.ars.mgmt.tasks.Task
addTaskStepListener, cleanUp, getName, getState, isAlive, isTerminated, join, removeTaskStepListener, setName, start, taskStepDoneMethods inherited from class de.bsvrz.ars.ars.mgmt.tasks.AbstractTask
getArchMgr, getObjectsFromDav, shouldTerminate, suspendTaskIfNecessaryMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Field Details
-
MSG_PID_DATAINDEX_ANOMALY
public static final java.lang.String MSG_PID_DATAINDEX_ANOMALYKennzeichen der Betriebsmeldung- See Also:
- Constant Field Values
-
_successCount
protected final java.util.concurrent.atomic.AtomicLong _successCount -
_failCount
protected final java.util.concurrent.atomic.AtomicLong _failCount -
_closeCount
protected final java.util.concurrent.atomic.AtomicLong _closeCount -
arsTime
protected long arsTime -
dataTime
protected long dataTime -
dataIdx
protected long dataIdx -
openContID
protected long openContID -
adk
protected de.bsvrz.dav.daf.main.archive.ArchiveDataKind adk -
didPath
-
din
-
dataEntryLen
protected int dataEntryLenLänge des serislisierten Datensatzes inklusive Datensatz-Header -
compresser
protected final java.util.zip.Deflater compresser
-
-
Constructor Details
-
ArchiveTask
public ArchiveTask(ArchiveManager archiveMgr, int tskIdx, de.bsvrz.sys.funclib.losb.ringbuffer.ArchiveRingBuffer inQueue)Konstruktor des Archiv-Tasks.- Parameters:
archiveMgr- Archiv-ManagertskIdx- Task-IDinQueue- Input-Queue
-
-
Method Details
-
setContainerSettings
public static void setContainerSettings(de.bsvrz.sys.funclib.losb.datk.ContainerSettings cs)Setzt die Container-Einstellungen des Archivsystems.- Parameters:
cs- Container-Einstellungen
-
getContainerSettings
public static de.bsvrz.sys.funclib.losb.datk.ContainerSettings getContainerSettings()Liefert die Container-Einstellungen des Archivsystems.- Returns:
- Container-Einstellungen
-
step
public void step() throws java.lang.InterruptedExceptionDescription copied from class:RepeatingTaskImplementiert die beliebige wiederholt auszuführende Aufgabe- Specified by:
stepin classRepeatingTask- Throws:
java.lang.InterruptedException- Thread unterbrochen
-
terminateTask
public void terminateTask()Description copied from class:AbstractTaskTerminiert den Task indem dafür gesorgt wird, dasAbstractTask.shouldTerminate()true zurückliefert. Der Task sollte diese Funktion regelmäßig aufrufen um dann bei Rückgabe vontrueden Task zeitnah zu beenden.- Overrides:
terminateTaskin classAbstractTask
-
getProcessedCount
public long getProcessedCount()- Returns:
- Anzahl der seit Systemstart zur Archivierung verarbeiteten Datensätze (erfolgreich und nicht erfolgreich archiviert)
-
getSuccessCount
public long getSuccessCount()- Returns:
- Anzahl der seit Systemstart erfolgreich archivierten Datensätze
-
getFailedCount
public long getFailedCount()- Returns:
- Anzahl der seit Systemstart nicht erfolgreich archivierten Datensätze
-
getCloseContainerSuccess
public long getCloseContainerSuccess()- Returns:
- Zahl aller seit dem Start oder letzten
resetDSCounter()erfolgreich verarbeiteten Close-Container-Datensätze. Kann zur Test-Synchronisation verwendet werden.
-
resetDSCounter
public void resetDSCounter()Setzt alle Zähler auf 0. -
setLastArchiveTime
public static void setLastArchiveTime(long atime) -
getLastArchiveTime
public static long getLastArchiveTime() -
work
public void work(java.lang.Object resultData, long archTime)Archiviert den übergebenen Datensatz unter dem angegebenen Archivzeitstempel.- Parameters:
resultData- ErgebnisdatensatzarchTime- Archivzeitstempel
-
storeData
protected boolean storeData() throws PersistenceException, IndexException, SynchronizationFailedException -
lookupLastDataIdxes
protected void lookupLastDataIdxes(IdDataIdentification dataIdentification, boolean requested) throws IndexException, SynchronizationFailedExceptionSucht die letzten Datenindexe im Index sowie den Container.- Throws:
IndexException- Lesefehler der Indexe (z. B. korrupt)SynchronizationFailedException
-
handleErr
protected void handleErr(java.lang.Exception e, java.lang.String corpusDelicti) -
handleErr
-
createRebuildIndexFlagFile
Erzeugt die Kennzeichen-Datei, ob die Indexe verändert wurden, um nach einem Absturz den Wiederanlauf zu beschleunigen.- Throws:
PersistenceException- Lesefehler im Persistenzverzeichnis
-