private class RequestGapTask.RequestGapWorker extends Task
Modifier and Type | Field and Description |
---|---|
private DataDescription |
dataDesc |
private byte[] |
indexMem |
private InQueuesMgr |
iqm |
private SystemObject |
object |
int |
workerIndex |
_debug, _shouldTerminate, archMgr, didTree, INDEX_MEMORY_SIZE, persMgr
Constructor and Description |
---|
RequestGapWorker(ArchiveManager aMgr,
int wkIndex) |
Modifier and Type | Method and Description |
---|---|
private ArchiveDataSpecification |
buildRequest(long startIdx,
long endIdx) |
private java.util.List<SystemObject> |
copyReqArSFromDIN(DataIdentNode din)
Kopiert die Liste der Nachforderungs-Archive aus dem DataIdentNode.
|
void |
execute()
Diese Methode muss implementiert werden und definiert die Aktion, die dieser Task ausführt
|
private java.lang.String[] |
extractUnaskedArS(java.util.List<SystemObject> reqArchives,
java.lang.String[] failedArchives) |
private long |
idx(ArchiveData ad) |
private boolean |
isGap(long start,
long end) |
private long |
noModBits(ArchiveData ad) |
private long |
noModBits(long dataIndex) |
private boolean |
properDataState(ArchiveData ad) |
private void |
requestDID(long obj,
long atg,
long asp,
short sv,
DataIdentNode din,
ArchiveTimeSpecification ats)
Fordert die angegebene Datenidentifikation innerhalb des angegebenen Bereichs nach.
|
private void |
requestGap(java.util.List<SystemObject> archs,
int aIdx,
long lowBnd,
long upBnd,
java.lang.String[] unaskedPreviousFailedArS,
RequestGapTask.GapFile oldGaps,
RequestGapTask.GapMarker newGaps)
Diese Methode fragt die uebergebene Datenluecke rekursiv bei der Liste der Archivsysteme ab.
|
private boolean |
startCondition(ArchiveTimeSpecification ats,
long lowDidx,
long lowDTime,
long lowATime)
Prueft, ob der anstehende Datensatz innerhalb der Grenzen liegt
|
addTaskStepListener, cleanUp, getArchMgr, getName, getObjectsFromDav, getState, isAlive, isTerminated, join, removeTaskStepListener, setName, shouldTerminate, start, suspendTaskIfNecessary, taskStepDone, terminateTask
public int workerIndex
private DataDescription dataDesc
private SystemObject object
private InQueuesMgr iqm
private byte[] indexMem
public RequestGapWorker(ArchiveManager aMgr, int wkIndex)
public void execute()
Task
Diese Methode muss implementiert werden und definiert die Aktion, die dieser Task ausführt
private void requestDID(long obj, long atg, long asp, short sv, DataIdentNode din, ArchiveTimeSpecification ats)
Fordert die angegebene Datenidentifikation innerhalb des angegebenen Bereichs nach. Diese Methode pausiert, solange das Archivsystem im kritsichen Zustand (d.h. Warteschlange fast voll) ist.
private boolean startCondition(ArchiveTimeSpecification ats, long lowDidx, long lowDTime, long lowATime)
Prueft, ob der anstehende Datensatz innerhalb der Grenzen liegt
ats
- GrenzenlowDidx
- Datenindex der unteren LueckenkantelowDTime
- Datenzeit der unteren LueckenkantelowATime
- Archivzeit der unteren Lueckenkanteprivate java.lang.String[] extractUnaskedArS(java.util.List<SystemObject> reqArchives, java.lang.String[] failedArchives)
private java.util.List<SystemObject> copyReqArSFromDIN(DataIdentNode din)
Kopiert die Liste der Nachforderungs-Archive aus dem DataIdentNode. Jedes Archivsystem wird nur einmal in die Ergebnisliste aufgenommen.
din
- private void requestGap(java.util.List<SystemObject> archs, int aIdx, long lowBnd, long upBnd, java.lang.String[] unaskedPreviousFailedArS, RequestGapTask.GapFile oldGaps, RequestGapTask.GapMarker newGaps) throws java.lang.InterruptedException
Diese Methode fragt die uebergebene Datenluecke rekursiv bei der Liste der Archivsysteme ab. Bei jeder Luecke in der aktuellen Anfrage wird rekursiv eine Anfrage bis Lueckenende an das in der Liste nachfolgende Archivsystem gestellt. Dadurch werden immer alle parametrierten Archivsysteme angefragt, bevor der Datenindex an ein Lueckenende springt. Wenn für eine Luecke und ein Archivsystem vermerkt ist, dass dieses die Luecke nicht schliessen kann, wird keine Nachforderungsanfrage gestellt.
archs
- Liste von ArchivsystemenaIdx
- Archivsystem in der Liste, bei dem diese Anfrage gestellt werden solllowBnd
- Untergrenze der Anfrage (letzter vorhandener DS)upBnd
- Obergrenze der Anfrage (erster wieder vorhandener DS)java.lang.InterruptedException
private ArchiveDataSpecification buildRequest(long startIdx, long endIdx)
private boolean isGap(long start, long end)
private boolean properDataState(ArchiveData ad)
private long idx(ArchiveData ad)
private long noModBits(long dataIndex)
private long noModBits(ArchiveData ad)