private class RequestGapTask.RequestGapWorker extends Task
Thread.State, Thread.UncaughtExceptionHandler
Modifier and Type | Field and Description |
---|---|
private DataDescription |
dataDesc |
private byte[] |
indexMem |
private InQueuesMgr |
iqm |
private SystemObject |
object |
int |
workerIndex |
archMgr, didTree, INDEX_MEMORY_SIZE, isTerminated, logger, persMgr, ringOfDeathListener, taskStepListeners
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
Constructor and Description |
---|
RequestGapTask.RequestGapWorker(ArchiveManager aMgr,
int wkIndex) |
Modifier and Type | Method and Description |
---|---|
private ArchiveDataSpecification |
buildRequest(long startIdx,
long endIdx) |
private long |
calcLastDIdx(long obj,
long atg,
long asp,
short sv,
ArchiveTimeSpecification ats,
IndexResult oa,
IndexResult on,
IndexResult na,
IndexResult nn)
Errechnet den groessten Datenindex aus allen Containerlisten, der unter dem angegebenen TimingType noch innerhalb des nachzufordernden Bereichs liegt.
|
private void |
closeMultiContIter(MultiContainerDataIterator multiContIt) |
private List<SystemObject> |
copyReqArSFromDIN(DataIdentNode din)
Kopiert die Liste der Nachforderungs-Archive aus dem DataIdentNode.
|
private String[] |
extractUnaskedArS(List<SystemObject> reqArchives,
String[] failedArchives) |
private IndexResult |
getIndexResult(long obj,
long atg,
long asp,
short sv,
ArchiveTimeSpecification ats,
DataIdentNode din,
ArchiveDataKind archiveDataKind) |
private long |
getMaxContainerDataIndexMaxArchiveTime(long maxTime,
File containerFile)
Gibt von einer Containerdatei den höchsten DataIndex zurück, von dem die ArchiveTime nicht älter als die angegebene Zeit ist
|
private long |
getMaxContainerDataIndexMaxDataTime(long maxTime,
File containerFile)
Gibt von einer Containerdatei den höchsten DataIndex zurück, von dem die DataTime nicht älter als die angegebene Zeit ist
|
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(List<SystemObject> archs,
int aIdx,
long lowBnd,
long upBnd,
String[] unaskedPreviousFailedArS,
RequestGapTask.GapFile oldGaps,
RequestGapTask.GapMarker newGaps)
Diese Methode fragt die uebergebene Datenluecke rekursiv bei der Liste der Archivsysteme ab.
|
void |
run() |
private boolean |
startCondition(ArchiveTimeSpecification ats,
long lowDidx,
long lowDTime,
long lowATime)
Prueft, ob der anstehende Datensatz innerhalb der Grenzen liegt
|
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 int workerIndex
private DataDescription dataDesc
private SystemObject object
private InQueuesMgr iqm
private byte[] indexMem
public RequestGapTask.RequestGapWorker(ArchiveManager aMgr, int wkIndex)
private void requestDID(long obj, long atg, long asp, short sv, DataIdentNode din, ArchiveTimeSpecification ats)
private long calcLastDIdx(long obj, long atg, long asp, short sv, ArchiveTimeSpecification ats, IndexResult oa, IndexResult on, IndexResult na, IndexResult nn) throws PersistenceException
obj
- ObjektIDatg
- AttributgruppenIDasp
- AspektIDsv
- imVarats
- Bereichoa
- Liste der OA-Container (mit Hilfe der Indexe ermittelt)on
- Liste der ON-Container (mit Hilfe der Indexe ermittelt)na
- Liste der NA-Container (mit Hilfe der Indexe ermittelt)nn
- Liste der NN-Container (mit Hilfe der Indexe ermittelt)PersistenceException
PersistenceException
private long getMaxContainerDataIndexMaxDataTime(long maxTime, File containerFile) throws PersistenceException
maxTime
- Maximalzeit der Datenindexe, die berücksichtigt werdencontainerFile
- Die zu öffnende ContainerdateiPersistenceException
- Fehler in der Persistenzprivate long getMaxContainerDataIndexMaxArchiveTime(long maxTime, File containerFile) throws PersistenceException
maxTime
- Maximalzeit der Datenindexe, die berücksichtigt werdencontainerFile
- Die zu öffnende ContainerdateiPersistenceException
- Fehler in der Persistenzprivate boolean startCondition(ArchiveTimeSpecification ats, long lowDidx, long lowDTime, long lowATime)
ats
- GrenzenlowDidx
- Datenindex der unteren LueckenkantelowDTime
- Datenzeit der unteren LueckenkantelowATime
- Archivzeit der unteren Lueckenkanteprivate IndexResult getIndexResult(long obj, long atg, long asp, short sv, ArchiveTimeSpecification ats, DataIdentNode din, ArchiveDataKind archiveDataKind) throws Exception
Exception
private String[] extractUnaskedArS(List<SystemObject> reqArchives, String[] failedArchives)
private List<SystemObject> copyReqArSFromDIN(DataIdentNode din)
din
- private void requestGap(List<SystemObject> archs, int aIdx, long lowBnd, long upBnd, String[] unaskedPreviousFailedArS, RequestGapTask.GapFile oldGaps, RequestGapTask.GapMarker newGaps) throws InterruptedException
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)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)
private void closeMultiContIter(MultiContainerDataIterator multiContIt)