Package de.bsvrz.ars.ars.mgmt.tasks
Class LZVTask
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.QueueTask<de.bsvrz.dav.daf.main.ResultData>
de.bsvrz.ars.ars.mgmt.tasks.SingleTask
de.bsvrz.ars.ars.mgmt.tasks.SingleClientSenderTask
de.bsvrz.ars.ars.mgmt.tasks.LZVTask
- All Implemented Interfaces:
de.bsvrz.dav.daf.main.ClientSenderInterface
public class LZVTask extends SingleClientSenderTask
Task zur Bearbeitung von Loeschzeit-Verlängerungsauftraegen.
-
Nested Class Summary
Nested Classes Modifier and Type Class Description class
LZVTask.ChangeTime
Manuelle Löschschutzverlängerungclass
LZVTask.DeleteLater
Späteres Löschen, wie DeleteNow, nur wird nur der Löschschutz aufgehoben statt den Container zu löschenclass
LZVTask.DeleteNow
Sofortiges Löschen auf Anfrage.class
LZVTask.DeletePermanently
Endgültiges Löschenclass
LZVTask.DeleteRegular
Reguläres Löschen.class
LZVTask.DeleteSpontan
Spontanes Löschen bei wenig freiem Speicherplatz -
Field Summary
Fields Modifier and Type Field Description static boolean
IGNORE_LOESCH_SCHUTZ
Nur für Testzwecke: Löschschutz ignorierenFields inherited from class de.bsvrz.ars.ars.mgmt.tasks.SingleClientSenderTask
atgQuery, ddResponse, deserializer, queryAppObj, queryIdx, SENDCONTROL_TIMEOUT, serializerVersion, syncObj
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
Fields inherited from interface de.bsvrz.dav.daf.main.ClientSenderInterface
START_SENDING, STOP_SENDING, STOP_SENDING_NO_RIGHTS, STOP_SENDING_NOT_A_VALID_SUBSCRIPTION
-
Constructor Summary
Constructors Constructor Description LZVTask(ArchiveManager archiveMgr, java.util.concurrent.BlockingQueue<java.lang.Object> inputData, LongTermTaskStatePublisher longTermTaskStatePublisher, int numThreads)
Erzeugt eine neue Loeschzeit-Verlängerungs-Task. -
Method Summary
Modifier and Type Method Description void
containerWalk(de.bsvrz.dav.daf.main.archive.ArchiveDataSpecification[] ads, de.bsvrz.ars.ars.mgmt.tasks.LZVTask.ContainerHandler handler)
Die generelle Container-Walk-Methode.void
deleteSpontan(de.bsvrz.dav.daf.main.archive.ArchiveDataSpecification[] ads)
DerDeleteSpontanTask
löscht bei knapp werdendem Speicherplatz unwichtige Container.void
execute()
Diese Methode muss implementiert werden und definiert die Aktion, die dieser Task ausführt.static de.bsvrz.ars.ars.mgmt.tasks.LZVTask.CapacityCheckResultData
getCapacityCheckResultData()
Gibt einen Dummy-Datensatz zurück, der einen Kapazitätscheck (und damit ggf. spontanes Löschen) auslöststatic de.bsvrz.ars.ars.mgmt.tasks.LZVTask.DeletePermanentlyResultData
getDeletePermanentlyResultData()
Gibt einen Dummy-Datensatz zurück, der endgültiges Löschen auslöststatic de.bsvrz.ars.ars.mgmt.tasks.LZVTask.DeleteRegularResultData
getDeleteRegularResultData()
Gibt einen Dummy-Datensatz zurück, der Reguläres (periodisches) Löschen auslöstlong
getFreeDiskSpace()
Gibt den freien Speicherplatz zurück und veröffentlicht ihn ebenfalls über den Datenverteiler (falls möglich)static long
getMinRemainingDiskCapa()
Liefert die Mindest-Restkapazitaet der Festplatte.static void
setMinRemainingDiskCapa(long minRemainingDiskCapa)
Setzt die Mindest-Restkapazitaet der Festplatte.protected void
work(de.bsvrz.dav.daf.main.ResultData resultData)
Führt das Löschen, spontanes Löschen oder die Löschzeitverlängerung aus.Methods inherited from class de.bsvrz.ars.ars.mgmt.tasks.SingleClientSenderTask
dataRequest, getObjectsFromDav, init, insertData, isRequestSupported, parseArchiveDataSpec, sendErrorResponse, sendErrorResponse, sendSuccessResponse, sendSuccessResponse, subscribeSender, unsubscribeSender
Methods inherited from class de.bsvrz.ars.ars.mgmt.tasks.QueueTask
offer, step, submit, terminateTask
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, shouldTerminate, suspendTaskIfNecessary
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Field Details
-
IGNORE_LOESCH_SCHUTZ
public static final boolean IGNORE_LOESCH_SCHUTZNur für Testzwecke: Löschschutz ignorieren- See Also:
- Constant Field Values
-
-
Constructor Details
-
LZVTask
public LZVTask(ArchiveManager archiveMgr, java.util.concurrent.BlockingQueue<java.lang.Object> inputData, LongTermTaskStatePublisher longTermTaskStatePublisher, int numThreads)Erzeugt eine neue Loeschzeit-Verlängerungs-Task.- Parameters:
longTermTaskStatePublisher
- LongTermTaskStatePublishernumThreads
- Anzahl Threads, die gleichzeitig das Löschen durchführen.archiveMgr
- Der Archiv-Manager.inputData
- Eingangswarteschlange.
-
-
Method Details
-
getMinRemainingDiskCapa
public static long getMinRemainingDiskCapa()Liefert die Mindest-Restkapazitaet der Festplatte.- Returns:
- Mindestrestkapazitaet in Byte
-
setMinRemainingDiskCapa
public static void setMinRemainingDiskCapa(long minRemainingDiskCapa)Setzt die Mindest-Restkapazitaet der Festplatte.- Parameters:
minRemainingDiskCapa
- Neue Mindestrestkapazitaet in Byte.
-
getCapacityCheckResultData
public static de.bsvrz.ars.ars.mgmt.tasks.LZVTask.CapacityCheckResultData getCapacityCheckResultData()Gibt einen Dummy-Datensatz zurück, der einen Kapazitätscheck (und damit ggf. spontanes Löschen) auslöst- Returns:
- Dummy-Datensatz
-
getDeleteRegularResultData
public static de.bsvrz.ars.ars.mgmt.tasks.LZVTask.DeleteRegularResultData getDeleteRegularResultData()Gibt einen Dummy-Datensatz zurück, der Reguläres (periodisches) Löschen auslöst- Returns:
- Dummy-Datensatz
-
getDeletePermanentlyResultData
public static de.bsvrz.ars.ars.mgmt.tasks.LZVTask.DeletePermanentlyResultData getDeletePermanentlyResultData()Gibt einen Dummy-Datensatz zurück, der endgültiges Löschen auslöst- Returns:
- Dummy-Datensatz
-
execute
public void execute()Description copied from class:Task
Diese Methode muss implementiert werden und definiert die Aktion, die dieser Task ausführt.Der Implementierende sollte am ende
super.execute()
ausführen.- Overrides:
execute
in classRepeatingTask
-
work
protected void work(de.bsvrz.dav.daf.main.ResultData resultData)Führt das Löschen, spontanes Löschen oder die Löschzeitverlängerung aus. -
deleteSpontan
public void deleteSpontan(de.bsvrz.dav.daf.main.archive.ArchiveDataSpecification[] ads) throws java.lang.ExceptionDerDeleteSpontanTask
löscht bei knapp werdendem Speicherplatz unwichtige Container.Dazu überprüft er in einem parametrierbaren Zyklus, wieviel Speicherplatz dem Archivsystem noch zur Verfuegung steht. Erreicht die vorhandene Kapazität einen Schwellwert, werden folgende Daten geloescht:
- archivierte Daten, deren Loeschschutz abgelaufen ist und die nicht (mehr) gesichert werden müssen,
- wiederhergestellte Daten,
- archivierte Simulationsdaten,
- archivierte Daten, deren Loeschschutz nicht abgelaufen ist, die aber schon gesichert wurden.
- Throws:
java.lang.Exception
-
getFreeDiskSpace
public long getFreeDiskSpace() throws java.lang.ExceptionGibt den freien Speicherplatz zurück und veröffentlicht ihn ebenfalls über den Datenverteiler (falls möglich)- Returns:
- frier Speicherpaltz in Bytes
- Throws:
java.lang.Exception
-
containerWalk
public void containerWalk(de.bsvrz.dav.daf.main.archive.ArchiveDataSpecification[] ads, de.bsvrz.ars.ars.mgmt.tasks.LZVTask.ContainerHandler handler) throws java.lang.ExceptionDie generelle Container-Walk-Methode.Je nachdem, ob die ArchiveDataSpec gefuellt ist oder nicht, wird ein ContainerWalk über das komplette Persistenz-Verzeichnis (containerWalkAllFromDir) oder alle spezifizierten Container (containerWalkAllByDataSpec) ausgeführt.
Achtung!
Die Methode löscht je nach übergebenen Parametern Archivdaten!- Parameters:
ads
-- Throws:
PersistenceException
- Lesefehler im PersistenzverzeichnisIndexException
- Lesefehler der Indexe (z. B. korrupt)java.lang.Exception
-