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 class
ArchiveTask.CloseContainerObject
Eine 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
_closeCount
protected java.util.concurrent.atomic.AtomicLong
_failCount
protected java.util.concurrent.atomic.AtomicLong
_successCount
protected de.bsvrz.dav.daf.main.archive.ArchiveDataKind
adk
protected long
arsTime
protected java.util.zip.Deflater
compresser
protected int
dataEntryLen
Länge des serislisierten Datensatzes inklusive Datensatz-Headerprotected long
dataIdx
protected long
dataTime
protected DataIdentificationDir
didPath
protected DataIdentNode
din
static java.lang.String
MSG_PID_DATAINDEX_ANOMALY
Kennzeichen der Betriebsmeldungprotected long
openContID
Fields inherited from class de.bsvrz.ars.ars.mgmt.tasks.RepeatingTask
TERMINATE_TASK
Fields 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 void
createRebuildIndexFlagFile()
Erzeugt die Kennzeichen-Datei, ob die Indexe verändert wurden, um nach einem Absturz den Wiederanlauf zu beschleunigen.long
getCloseContainerSuccess()
static de.bsvrz.sys.funclib.losb.datk.ContainerSettings
getContainerSettings()
Liefert die Container-Einstellungen des Archivsystems.long
getFailedCount()
static long
getLastArchiveTime()
long
getProcessedCount()
long
getSuccessCount()
protected void
handleErr(java.lang.Exception e, ArchiveTask.CloseContainerObject cco)
protected void
handleErr(java.lang.Exception e, java.lang.String corpusDelicti)
protected void
lookupLastDataIdxes(IdDataIdentification dataIdentification, boolean requested)
Sucht die letzten Datenindexe im Index sowie den Container.void
resetDSCounter()
Setzt alle Zähler auf 0.static void
setContainerSettings(de.bsvrz.sys.funclib.losb.datk.ContainerSettings cs)
Setzt die Container-Einstellungen des Archivsystems.static void
setLastArchiveTime(long atime)
void
step()
Implementiert die beliebige wiederholt auszuführende Aufgabeprotected boolean
storeData()
void
terminateTask()
Terminiert den Task indem dafür gesorgt wird, dasAbstractTask.shouldTerminate()
true zurückliefert.void
work(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
execute
Methods inherited from class de.bsvrz.ars.ars.mgmt.tasks.Task
addTaskStepListener, cleanUp, getName, getState, isAlive, isTerminated, join, removeTaskStepListener, setName, start, taskStepDone
Methods inherited from class de.bsvrz.ars.ars.mgmt.tasks.AbstractTask
getArchMgr, getObjectsFromDav, shouldTerminate, suspendTaskIfNecessary
Methods 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:RepeatingTask
Implementiert die beliebige wiederholt auszuführende Aufgabe- Specified by:
step
in classRepeatingTask
- Throws:
java.lang.InterruptedException
- Thread unterbrochen
-
terminateTask
public void terminateTask()Description copied from class:AbstractTask
Terminiert 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 vontrue
den Task zeitnah zu beenden.- Overrides:
terminateTask
in 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
-