public class RequestGapTask extends SingleClientSenderTask
Modifier and Type | Class and Description |
---|---|
class |
RequestGapTask.GapFile
Diese Klasse speichert nicht schliessbare Datenluecken in einer Datei im Verzeichnis der Datenidentifikation in der Form
10-20
|
static class |
RequestGapTask.GapMarker
Speichert pro Archivsystem die Luecken, die von diesem nicht geschlossen werden konnten.
|
static class |
RequestGapTask.RequestGapResultData
Diese Klasse sieht aus wie ein ResultData, wird aber nur intern verwendet, um einen über den Scheduler angestoßenen Sicherungslauf von einem extern
angestoßenen zu unterscheieden
|
private class |
RequestGapTask.RequestGapWorker |
Thread.State, Thread.UncaughtExceptionHandler
Modifier and Type | Field and Description |
---|---|
private ArchiveDataSpecification[] |
archDataSpecs |
private List<SystemObject> |
archiveList |
private ArchiveTimeSpecification |
archTimeSpec
Zeitspezifikation, die beim Nachfordern verwendet werden soll oder
null , falls keine Einschränkung berücksichtigt werden soll. |
private Semaphore |
finishedSema |
private static String |
GAP_ARCH_SEPARATOR |
static String |
GAP_FILE_NAME
Dateiname der Datenluecken-Datei.
|
private static String |
GAP_IDX_SEPARATOR |
private static String |
GAP_KEYWORD |
private static Pattern |
GAP_PAT |
static int |
REQUEST_GAP_THREADS
Anzahl der Threads zum Nachfordern fehlender Archivdaten.
|
static ArchiveQueryPriority |
REQUEST_PRIO
Prioritaet der Nachforserungsanfragen.
|
private static ArchiveDataKindCombination |
requestAdk |
private RequestGapTask.RequestGapWorker[] |
requester |
private static RequestGapTask.RequestGapResultData |
requestGapResultData |
private AtomicInteger |
totalGapsFound |
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 |
---|
RequestGapTask(ArchiveManager archiveMgr,
RingOfDeathListener rodl,
RingBuffer<ResultData> inputData)
Erzeugt einen neuen Task zur Nachforderung fehlender Archivdaten.
|
Modifier and Type | Method and Description |
---|---|
static RequestGapTask.RequestGapResultData |
getRequestGapResultData()
Liefert den Nachforderungsanfrage-Datensatz.
|
private List<SystemObject> |
parseArchiveList(Deserializer ds)
Extrahiert die Liste der Archivsysteme, bei denen nachgefordert werden soll.
|
private void |
performRequest()
Erzeugt eine Anzahl (
REQUEST_GAP_THREADS ) von RequestGapTask(ArchiveManager,RingOfDeathListener,RingBuffer) - Objekten, die die
Nachforderung durchführen. |
void |
terminateTask()
Beendet den Nachforderungs-Task.
|
protected void |
work(ResultData resultData)
Startet das automatische oder manuelle Nachfordern entsprechend dem uebergebenen Nachforderungs-Datensatz.
|
dataRequest, getObjectsFromDAV, init, insertData, isRequestSupported, parseArchiveDataSpec, sendErrorResponse, sendErrorResponse, sendSuccessResponse, sendSuccessResponse, subscribeSender, unsubscribeSender
run
addTaskStepListener, getArchMgr, isTaskTerminated, removeTaskStepListener, suspendTaskIfNecessary
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 String GAP_FILE_NAME
public static int REQUEST_GAP_THREADS
public static ArchiveQueryPriority REQUEST_PRIO
private static String GAP_KEYWORD
private static String GAP_IDX_SEPARATOR
private static String GAP_ARCH_SEPARATOR
private static Pattern GAP_PAT
private static ArchiveDataKindCombination requestAdk
private static RequestGapTask.RequestGapResultData requestGapResultData
private RequestGapTask.RequestGapWorker[] requester
private Semaphore finishedSema
private ArchiveDataSpecification[] archDataSpecs
private List<SystemObject> archiveList
private AtomicInteger totalGapsFound
private ArchiveTimeSpecification archTimeSpec
null
, falls keine Einschränkung berücksichtigt werden soll.public RequestGapTask(ArchiveManager archiveMgr, RingOfDeathListener rodl, RingBuffer<ResultData> inputData)
archiveMgr
- Der Archiv-Manager.rodl
- Der Listener wird benachrichtigt beim Beenden der Task.inputData
- Eingangswarteschlangepublic static RequestGapTask.RequestGapResultData getRequestGapResultData()
protected void work(ResultData resultData)
work
in class SingleTask
resultData
- Nachforderungs-Datensatz.private List<SystemObject> parseArchiveList(Deserializer ds) throws Exception
ds
- IOException
Exception
private void performRequest() throws Exception
REQUEST_GAP_THREADS
) von RequestGapTask(ArchiveManager,RingOfDeathListener,RingBuffer)
- Objekten, die die
Nachforderung durchführen. Diese Methode wartet, bis alle Threads fertig sind.Exception
public void terminateTask()
terminateTask
in class Task