public class LZVTask extends SingleClientSenderTask
Modifier and Type | Class and Description |
---|---|
static class |
LZVTask.CapacityCheckResultData |
private static class |
LZVTask.DELETE_LEVEL
Für spontantes Löschen: 1.
|
static class |
LZVTask.DeleteRegularResultData |
Thread.State, Thread.UncaughtExceptionHandler
Modifier and Type | Field and Description |
---|---|
private LongTermTaskStatePublisher.Task |
_longTermTaskStatePublisherTask |
private static int |
CAPA_CHECK_RUNS |
private static LZVTask.CapacityCheckResultData |
capacityCheckResultData |
static long |
CHANGETIME_REGULAR |
static long |
CHANGETIME_SPONTAN |
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
archMgr, didTree, INDEX_MEMORY_SIZE, isTerminated, logger, persMgr, ringOfDeathListener, taskStepListeners
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
START_SENDING, STOP_SENDING, STOP_SENDING_NO_RIGHTS, STOP_SENDING_NOT_A_VALID_SUBSCRIPTION
Constructor and Description |
---|
LZVTask(ArchiveManager archiveMgr,
RingOfDeathListener rodl,
RingBuffer<ResultData> inputData,
LongTermTaskStatePublisher longTermTaskStatePublisher)
Erzeugt eine neue Loeschzeit-Verlaengerungs-Task.
|
Modifier and Type | Method and Description |
---|---|
(package 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.
|
(package private) void |
checkAndDeleteContainerRegular(Task task,
PersistenceManager persMgr)
Prueft, ob der Container existiert.
|
(package private) void |
checkAndDeleteContainerSpontan(Task task,
PersistenceManager persMgr,
Calendar compareDate,
LZVTask.DELETE_LEVEL level)
Prueft, ob der Container existiert.
|
void |
containerWalk(ArchiveDataSpecification[] ads,
long changeTime,
Calendar compareDate,
LZVTask.DELETE_LEVEL level)
Die generelle Container-Walk-Methode.
|
private void |
containerWalkAllFromDir(long changeTime,
Calendar compareDate,
LZVTask.DELETE_LEVEL level) |
private void |
containerWalkByArchiveDataSpec(ArchiveDataSpecification[] ads,
long changeTime,
Calendar compareDate,
LZVTask.DELETE_LEVEL level) |
protected void |
deleteSpontan(ArchiveDataSpecification[] ads,
long changeTime)
Der
DeleteSpontanTask löscht bei knapp werdendem Speicherplatz unwichtige Container. |
static LZVTask.CapacityCheckResultData |
getCapacityCheckResultData(ArchiveManager archMgr) |
static LZVTask.DeleteRegularResultData |
getDeleteRegularResultData(ArchiveManager archMgr) |
static long |
getMinRemainingDiskCapa()
Liefert die Mindest-Restkapazitaet der Festplatte.
|
private void |
handleContainer(long changeTime,
Calendar compareDate,
LZVTask.DELETE_LEVEL level)
Bearbeitet den individuellen Container.
|
(package private) boolean |
hasToBeDeletedRegular(Task task,
PersistenceManager persMgr)
Prueft, ob das ContainerFile geloescht werden muss.
|
(package private) boolean |
hasToBeDeletedSpontan(Task task,
PersistenceManager persMgr,
Calendar compareDate,
LZVTask.DELETE_LEVEL level)
Prueft, ob das ContainerFile geloescht werden muss.
|
void |
run() |
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
addTaskStepListener, getArchMgr, isTaskTerminated, removeTaskStepListener, suspendTaskIfNecessary, terminateTask
activeCount, checkAccess, clone, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield
public static boolean IGNORE_LOESCH_SCHUTZ
private static int CAPA_CHECK_RUNS
public static final long CHANGETIME_SPONTAN
public static final long CHANGETIME_REGULAR
private static long MIN_REM_DSK_CAPA
private static LZVTask.CapacityCheckResultData capacityCheckResultData
private static LZVTask.DeleteRegularResultData deleteRegularResultData
private byte[] indexMem
private int numOfVisitedCont
private int numOfDeletedCont
private LongTermTaskStatePublisher.Task _longTermTaskStatePublisherTask
private static int MAX_TIMESHIFTING
public LZVTask(ArchiveManager archiveMgr, RingOfDeathListener rodl, RingBuffer<ResultData> inputData, LongTermTaskStatePublisher longTermTaskStatePublisher) throws ConfigurationException
archiveMgr
- Der Archiv-Manager.rodl
- Der Listener wird benachrichtigt beim Beenden der Task.inputData
- Eingangswarteschlange.ConfigurationException
public void run()
run
in interface Runnable
run
in class SingleTask
Runnable.run()
public static long getMinRemainingDiskCapa()
public static void setMinRemainingDiskCapa(long minRemainingDiskCapa)
minRemainingDiskCapa
- Neue Mindestrestkapazitaet in Byte.protected void work(ResultData resultData)
work
in class SingleTask
resultData
- Zu verarbeitender Datensatz aus der EingangswarteschlangeSingleTask.work(ResultData)
void changeDeletionTime(ResultData resultData) throws Exception
resultData
- Datensatz mit Informationen über den AuftragException
- Fehlerprotected void deleteSpontan(ArchiveDataSpecification[] ads, long changeTime) throws Exception
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: Exception
public void containerWalk(ArchiveDataSpecification[] ads, long changeTime, Calendar compareDate, LZVTask.DELETE_LEVEL level) throws Exception
ads
- changeTime
- compareDate
- PersistenceException
IndexException
Exception
private void containerWalkAllFromDir(long changeTime, Calendar compareDate, LZVTask.DELETE_LEVEL level) throws Exception
Exception
private void containerWalkByArchiveDataSpec(ArchiveDataSpecification[] ads, long changeTime, Calendar compareDate, LZVTask.DELETE_LEVEL level) throws Exception
Exception
private void handleContainer(long changeTime, Calendar compareDate, LZVTask.DELETE_LEVEL level) throws PersistenceException
changeTime
aus und ruft die 3 Loesch-Methoden auf.changeTime
- compareDate
- PersistenceException
void checkAndDeleteContainerSpontan(Task task, PersistenceManager persMgr, Calendar compareDate, LZVTask.DELETE_LEVEL level) throws PersistenceException
compareDate
- PersistenceException
boolean hasToBeDeletedSpontan(Task task, PersistenceManager persMgr, Calendar compareDate, LZVTask.DELETE_LEVEL level) throws PersistenceException
compareDate
- PersistenceException
void checkAndDeleteContainerRegular(Task task, PersistenceManager persMgr) throws PersistenceException
PersistenceException
boolean hasToBeDeletedRegular(Task task, PersistenceManager persMgr) throws PersistenceException
PersistenceException
public static LZVTask.CapacityCheckResultData getCapacityCheckResultData(ArchiveManager archMgr)
public static LZVTask.DeleteRegularResultData getDeleteRegularResultData(ArchiveManager archMgr)