public class LZVTask extends SingleClientSenderTask
Task zur Bearbeitung von Loeschzeit-Verlaengerungsauftraegen.
Modifier and Type | Class and Description |
---|---|
static class |
LZVTask.CapacityCheckResultData |
class |
LZVTask.ChangeTime |
private static interface |
LZVTask.ContainerHandler |
private static class |
LZVTask.DELETE_LEVEL
Für spontantes Löschen: 1.
|
class |
LZVTask.DeleteLater
Späteres Löschen, wie DeleteNow, nur wird nur der Löschschutz aufgehoben statt den Container zu löschen
|
class |
LZVTask.DeleteNow
Sofortiges Löschen auf Anfrage.
|
class |
LZVTask.DeleteRegular
Reguläres Löschen.
|
static class |
LZVTask.DeleteRegularResultData |
class |
LZVTask.DeleteSpontan
Spontanes Löschen bei wenig freiem Speicherplatz
|
Modifier and Type | Field and Description |
---|---|
private LongTermTaskStatePublisher.Task |
_longTermTaskStatePublisherTask |
private static LZVTask.CapacityCheckResultData |
capacityCheckResultData |
static long |
CHANGETIME_REGULAR |
private static long |
CHANGETIME_SPONTAN |
private static long |
DELETE_IMMEDIATELY |
private static long |
DELETE_LATER |
private static LZVTask.DeleteRegularResultData |
deleteRegularResultData |
static boolean |
IGNORE_LOESCH_SCHUTZ |
private byte[] |
indexMem |
private static int |
MAX_TIMESHIFTING
Um wieviele Monate maximal der Vorhaltezeitraum angepasst wird.
|
private static long |
MIN_REM_DSK_CAPA |
private int |
numOfDeletedCont |
private int |
numOfVisitedCont |
atgQuery, ddResponse, deserializer, queryAppObj, queryIdx, SENDCONTROL_TIMEOUT, serializerVersion, syncObj
TERMINATE_TASK
_debug, _shouldTerminate, archMgr, didTree, INDEX_MEMORY_SIZE, persMgr
START_SENDING, STOP_SENDING, STOP_SENDING_NO_RIGHTS, STOP_SENDING_NOT_A_VALID_SUBSCRIPTION
Constructor and Description |
---|
LZVTask(ArchiveManager archiveMgr,
java.util.concurrent.BlockingQueue<java.lang.Object> inputData,
LongTermTaskStatePublisher longTermTaskStatePublisher)
Erzeugt eine neue Loeschzeit-Verlaengerungs-Task.
|
Modifier and Type | Method and Description |
---|---|
private void |
changeDeletionTime(ResultData resultData)
Prüft, welche Operation (Löschen, spontanes Löschen oder die Löschzeitverlängerung) ausgeführt werden soll, und führt diese dann durch.
|
void |
containerWalk(ArchiveDataSpecification[] ads,
LZVTask.ContainerHandler handler)
Die generelle Container-Walk-Methode.
|
private void |
containerWalkAllFromDir(LZVTask.ContainerHandler handler) |
private void |
containerWalkByArchiveDataSpec(ArchiveDataSpecification[] ads,
LZVTask.ContainerHandler handler) |
void |
deleteSpontan(ArchiveDataSpecification[] ads)
Der
DeleteSpontanTask 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 LZVTask.CapacityCheckResultData |
getCapacityCheckResultData(ArchiveManager archMgr) |
static LZVTask.DeleteRegularResultData |
getDeleteRegularResultData(ArchiveManager archMgr) |
long |
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.
|
private boolean |
hasToBeDeletedExplicit(Task task)
Prueft, ob das ContainerFile gelöscht beim manuellen löschen werden kann.
|
private boolean |
hasToBeDeletedRegular(Task task)
Prueft, ob das ContainerFile geloescht werden muss.
|
private boolean |
hasToBeDeletedSpontan(Task task,
java.util.Calendar compareDate,
LZVTask.DELETE_LEVEL level)
Prueft, ob das ContainerFile geloescht werden muss.
|
static void |
setMinRemainingDiskCapa(long minRemainingDiskCapa)
Setzt die Mindest-Restkapazitaet der Festplatte.
|
protected void |
work(ResultData resultData)
Führt das Löschen, spontanes Löschen oder die Löschzeitverlängerung aus.
|
dataRequest, getObjectsFromDav, init, insertData, isRequestSupported, parseArchiveDataSpec, sendErrorResponse, sendErrorResponse, sendSuccessResponse, sendSuccessResponse, subscribeSender, unsubscribeSender
getQueue, step, submit, terminateTask
addTaskStepListener, cleanUp, getArchMgr, getName, getState, isAlive, isTerminated, join, removeTaskStepListener, setName, shouldTerminate, start, suspendTaskIfNecessary, taskStepDone
private static final long CHANGETIME_SPONTAN
public static final long CHANGETIME_REGULAR
private static final long DELETE_IMMEDIATELY
private static final long DELETE_LATER
private static final int MAX_TIMESHIFTING
Um wieviele Monate maximal der Vorhaltezeitraum angepasst wird.
public static boolean IGNORE_LOESCH_SCHUTZ
private static long MIN_REM_DSK_CAPA
private static LZVTask.CapacityCheckResultData capacityCheckResultData
private static LZVTask.DeleteRegularResultData deleteRegularResultData
private final LongTermTaskStatePublisher.Task _longTermTaskStatePublisherTask
private byte[] indexMem
private int numOfVisitedCont
private int numOfDeletedCont
public LZVTask(ArchiveManager archiveMgr, java.util.concurrent.BlockingQueue<java.lang.Object> inputData, LongTermTaskStatePublisher longTermTaskStatePublisher)
Erzeugt eine neue Loeschzeit-Verlaengerungs-Task.
rodl
- Der Listener wird benachrichtigt beim Beenden der Task.archiveMgr
- Der Archiv-Manager.inputData
- Eingangswarteschlange.public static long getMinRemainingDiskCapa()
Liefert die Mindest-Restkapazitaet der Festplatte.
public static void setMinRemainingDiskCapa(long minRemainingDiskCapa)
Setzt die Mindest-Restkapazitaet der Festplatte.
minRemainingDiskCapa
- Neue Mindestrestkapazitaet in Byte.public static LZVTask.CapacityCheckResultData getCapacityCheckResultData(ArchiveManager archMgr)
public static LZVTask.DeleteRegularResultData getDeleteRegularResultData(ArchiveManager archMgr)
public void execute()
Task
Diese Methode muss implementiert werden und definiert die Aktion, die dieser Task ausführt
execute
in class RepeatingTask
protected void work(ResultData resultData)
Führt das Löschen, spontanes Löschen oder die Löschzeitverlängerung aus.
work
in class QueueTask<ResultData>
de.bsvrz.ars.ars.mgmt.tasks.SingleTask#work(ResultData)
private void changeDeletionTime(ResultData resultData) throws java.lang.Exception
Prüft, welche Operation (Löschen, spontanes Löschen oder die Löschzeitverlängerung) ausgeführt werden soll, und führt diese dann durch.
resultData
- Datensatz mit Informationen über den Auftragjava.lang.Exception
- Fehlerpublic void deleteSpontan(ArchiveDataSpecification[] ads) throws java.lang.Exception
Der DeleteSpontanTask
löscht bei knapp werdendem Speicherplatz unwichtige Container.
Dazu ueberprueft er in einem parametrierbaren Zyklus, wieviel Speicherplatz dem Archivsystem noch zur Verfuegung steht. Erreicht die vorhandene Kapazität einen Schwellwert, werden folgende Daten geloescht:
java.lang.Exception
public long getFreeDiskSpace() throws java.lang.Exception
Gibt den freien Speicherplatz zurück und veröffentlicht ihn ebenfalls über den Datenverteiler (falls möglich)
java.lang.Exception
public void containerWalk(ArchiveDataSpecification[] ads, LZVTask.ContainerHandler handler) throws java.lang.Exception
Die 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!
ads
- changeTime
- compareDate
- PersistenceException
IndexException
java.lang.Exception
private void containerWalkAllFromDir(LZVTask.ContainerHandler handler) throws java.lang.Exception
java.lang.Exception
private void containerWalkByArchiveDataSpec(ArchiveDataSpecification[] ads, LZVTask.ContainerHandler handler) throws java.lang.Exception
java.lang.Exception
private boolean hasToBeDeletedSpontan(Task task, java.util.Calendar compareDate, LZVTask.DELETE_LEVEL level) throws PersistenceException
Prueft, ob das ContainerFile geloescht werden muss. Folgende Faktoren werden betrachtet:
compareDate
- PersistenceException
private boolean hasToBeDeletedRegular(Task task) throws PersistenceException
Prueft, ob das ContainerFile geloescht werden muss.
PersistenceException
private boolean hasToBeDeletedExplicit(Task task) throws PersistenceException
Prueft, ob das ContainerFile gelöscht beim manuellen löschen werden kann.
PersistenceException