public class DataIdentNode extends Object
| Modifier and Type | Field and Description |
|---|---|
static int |
IDXSIZE_ONLINE |
static int |
IDXSIZE_REQUESTED |
static byte |
INVALID |
| Constructor and Description |
|---|
DataIdentNode() |
| Modifier and Type | Method and Description |
|---|---|
void |
addIndexEntries(ArchiveDataKind adk,
String basePath,
long dataIdx,
long atime,
long dtime,
long contID,
byte[] tempMem)
Fügt den Indexen den spezifizierten Eintrag hinzu.
|
int |
arSParamGetAnzNachfordern()
Liefert die Anzahl der Archivsysteme, bei denen nachgefordert werden soll.
|
String |
arSParamGetNachfordern(int at)
Liefert aus der Liste der Archivsysteme, bei denen bei potentiell erkannten Datenluecken nachgefordert werden soll, das Archivsystem mit dem angegebenen
nullbasierten Index.
|
long |
arSParamGetQuittieren()
Liefert den AspektID unter dem quittiert werden soll, -1 falls nicht quittiert werden soll.
|
long |
arSParamGetVorhalten()
Liefert die Vorhaltezeit in Sekunden.
|
boolean |
arSParamIsArchivieren()
Liefert Kennzeichen, ob die Daten zu archivieren sind.
|
boolean |
arSParamIsNachfordern()
Liefert Kennzeichen, ob bei potentiell erkannten Datenluecken bei anderen Archivsystemen nachgefordert werden soll.
|
boolean |
arSParamIsQuittieren() |
boolean |
arSParamIsQuittierenValid() |
boolean |
arSParamIsSichern()
Liefert Kennzeichen, ob die Daten fuer diese Datenidentifikation zu sichern sind.
|
void |
arSParamMarkQuittierenInvalid(boolean invalid)
Setzt die AspektID unter dem quittiert werden soll und vermerkt ihn als nicht erfolgreich angemeldet.
|
void |
arsParamSetParams(Data params)
Setzt einen Zeiger auf den Datensatz mit der Parametrierung fuer diese Datenidentifikation
|
void |
assignContinuedIndexes(int adkIndex,
String basePath,
byte[] tempMem,
int lastContNumDS)
Weist Indexe zur Weiterverwendung des letzten Eintrages zu.
|
void |
assignNewIndexes(int adkIndex)
Legt fuer die Datensatzart neue Indexe an, falls diese nicht existieren.
|
void |
closeIndexes(ArchiveDataKind adk,
String basePath,
byte[] tempMem)
Schliesst die Indexe einer Datensatzart und gibt den belegten Speicher frei.
|
boolean |
enterBusyArea()
Muss immer vor der Benutzung von folgenden Daten eines DataIdentNodes aufgerufen werden: Zugriff auf abgeschlossene Container (lesen und
schreiben)
Wenn ein anderer Task sich im Busy-Bereich befindet, blockiert diese Methode. |
boolean |
enterCriticalArea()
Muss immer vor der Benutzung von folgenden Daten eines DataIdentNodes aufgerufen werden: Index (lesen und schreiben) Aktueller
Container (nur schreiben)
Wenn ein anderer Task sich im kritischen Bereich befindet, blockiert diese Methode bis der kritische Bereich wieder frei ist. |
void |
exitBusyArea()
Muss immer nach der Benutzung von Daten eines DataIdentNodes aufgerufen werden, wenn zuvor enterBusyArea() augfgerufen worden ist.
|
void |
exitCriticalArea()
Muss immer nach der Benutzung von Daten eines DataIdentNodes aufgerufen werden, wenn zuvor enterCriticalArea() augfgerufen worden ist.
|
IndexResult |
getArSTimeContIDs(ArchiveDataKind adk,
String basePath,
byte[] tempMem,
long minKey,
long maxKey) |
int |
getCurContEntries(ArchiveDataKind adk)
Liefert die Anzahl der Datensätze im aktuellen Container.
|
IndexResult |
getDataIdxContIDs(ArchiveDataKind adk,
String basePath,
byte[] tempMem,
long minKey,
long maxKey) |
IndexResult |
getDataTimeContIDs(ArchiveDataKind adk,
String basePath,
byte[] tempMem,
long minKey,
long maxKey) |
float |
getIndexFillRatio(ArchiveDataKind adk) |
long |
getLastQueryTime() |
long |
getMinVal(TimingType tt,
ArchiveDataKind adk,
String basePath)
Liefert den kleinsten jemals gespeicherten Wert der angegebenen Datensatzart und TimingType
|
long |
getOpenContID(ArchiveDataKind adk)
Liefert die ID des aktuell offenen Containers.
|
boolean |
hasIndexAssigned() |
boolean |
indexesAssigned(ArchiveDataKind adk) |
boolean |
isArSParameterized()
Liefert Kennzeichen, ob der DataIdentNode ueber die Archivparametrierung/Simulation angelegt wurde oder wegen einer Archivanfrage.
|
boolean |
isFirstDataAfterSubscription(ArchiveDataKind adk)
Sagt, ob nach einer Anmeldung bereits ein Datum der genannten Datensatzart erhalten wurde.
|
boolean |
isRebuildIndexFileFlagCreated(ArchiveDataKind adk)
Gibt an, ob seit Systemstart die Datei
PersistenceManager#REBUILDINDEX_FILE_FLAG_NAME nach einem Archivvorgang fuer diese DID erzeugt wurde. |
boolean |
lastDataNoSourceAssigned() |
boolean |
lastDataWasNoSource() |
long |
maxATime(ArchiveDataKind adk) |
long |
maxDIdx(ArchiveDataKind adk) |
long |
maxDTime(ArchiveDataKind adk) |
long |
minATime(ArchiveDataKind adk) |
long |
minDIdx(ArchiveDataKind adk) |
long |
minDTime(ArchiveDataKind adk) |
void |
rebuildIndexFileFlagWasCreated(ArchiveDataKind adk)
Zur Kennzeichnung, dass die changed-Datei nach einem Archivvorgang fuer diese DID erzeugt wurde.
|
void |
setCurContEntries(int adkIndex,
int entries)
Setzt die Anzahl der Datensaetze im aktuellen Container.
|
void |
setFirstDataAfterSubscription(ArchiveDataKind adk,
boolean flag)
Setzt die Markierung, ob seit der letzten Anmeldung bereits ein Datum der genannten Datensatzart erhalten wurde (
#isFirstDataAfterSubscription() |
void |
setLastOAWasNoSource(boolean lastOADataWasNoSource)
Setzt die Markierung, ob der letzte waehrend der laufenden Uptime archivierte OA-Datensatz die Kennung "keine Quelle" hatte.
|
void |
setLastQueryTime(long lastQueryTime)
Setzt den Zeitpunkt der letzten Archivanfrage.
|
String |
toString() |
void |
updateIndexEntries(ArchiveDataKind adk,
long dataIdx,
long atime,
long dtime)
Setzt die Maximumwerte des aktuellen Indexeintrags auf die uebergebenen Werte.
|
public static final byte INVALID
public static int IDXSIZE_ONLINE
public static int IDXSIZE_REQUESTED
public boolean lastDataNoSourceAssigned()
public boolean lastDataWasNoSource()
public void setLastOAWasNoSource(boolean lastOADataWasNoSource)
lastOADataWasNoSource - public long getLastQueryTime()
lastQueryTimepublic void setLastQueryTime(long lastQueryTime)
lastQueryTime - lastQueryTimepublic void setFirstDataAfterSubscription(ArchiveDataKind adk, boolean flag)
#isFirstDataAfterSubscription()adk - Datensatzart (OA oder ON)flag - public boolean isFirstDataAfterSubscription(ArchiveDataKind adk)
adk - Datensatzart (OA oder ON)public float getIndexFillRatio(ArchiveDataKind adk)
public boolean indexesAssigned(ArchiveDataKind adk)
public void assignNewIndexes(int adkIndex)
containerEntries der Datensatzart werden auf INVALID,
lastDataNoSourceAssigned()() liefert danach false.adkIndex - Datensatzart (0:OA, 1:ON, 2:NA, 3:NN)public void assignContinuedIndexes(int adkIndex,
String basePath,
byte[] tempMem,
int lastContNumDS)
throws IndexException
containerEntries der
Datensatzart auf den entsprechenden Wert setzen.adkIndex - Datensatzart (0:OA, 1:ON, 2:NA, 3:NN)basePath - Pfad der Datenidentifikation und DatensatzarttempMem - temporaerer Speicher (benoetigt zum Einlesen der Indexe)lastContNumDS - Anzahl der DS im letzten ContainerIndexExceptionpublic void addIndexEntries(ArchiveDataKind adk, String basePath, long dataIdx, long atime, long dtime, long contID, byte[] tempMem) throws IndexException
containerEntries der Datensatzart wird auf 1 gesetzt.adk - DatensatzartbasePath - Verzeichnis der Datenidentifikation + Datensatzart. Wird benötigt, damit der Datenzeitindex notfalls (bei einem Rücksprung) in der
Datenzeitindex-Datei nachsehen kann.dataIdx - Datenindexatime - Archivzeitdtime - DatenzeitcontID - Container-IDtempMem - Speicherbereich, den der Datenzeitindex notfalls (bei einem Rücksprung) zum Einlesen der Datenzeitindexdatei verwenden kann. Wird als
Parameter übergeben werden, um GC/Speicher zu sparen.IndexExceptionpublic void updateIndexEntries(ArchiveDataKind adk, long dataIdx, long atime, long dtime) throws IndexException
addIndexEntries(ArchiveDataKind,
String,long,long,long,long,byte[]) angelegt worden sein; andernfalls ist dies ein schwerer Programmfehler. containerEntries der Datensatzart wird
um 1 hochgezaehlt.adk - DatensatzartdataIdx - Datenindexatime - Archivzeitdtime - DatenzeitIndexExceptionpublic void closeIndexes(ArchiveDataKind adk, String basePath, byte[] tempMem) throws IndexException
adk - DatensatzartbasePath - Pfad der Datenidentifikation und DatensatzarttempMem - temporaerer Speicher (benoetigt zum Schreiben der Indexdateien)IndexExceptionpublic int getCurContEntries(ArchiveDataKind adk)
adk - Datensatzart (ArchiveDataKind: OA/ON/NA/NN)public void setCurContEntries(int adkIndex,
int entries)
adkIndex - Datensatzart (0:OA, 1:ON, 2:NA, 3:NN)entries - Anzahl der Datensaetzepublic long minDTime(ArchiveDataKind adk) throws IndexException
adk - Datensatzart (ArchiveDataKind: OA/ON/NA/NN)IndexExceptionpublic long maxDTime(ArchiveDataKind adk) throws IndexException
adk - Datensatzart (ArchiveDataKind: OA/ON/NA/NN)IndexExceptionpublic long minATime(ArchiveDataKind adk) throws IndexException
adk - Datensatzart (ArchiveDataKind: OA/ON/NA/NN)IndexExceptionpublic long maxATime(ArchiveDataKind adk) throws IndexException
adk - Datensatzart (ArchiveDataKind: OA/ON/NA/NN)IndexExceptionpublic long minDIdx(ArchiveDataKind adk) throws IndexException
adk - Datensatzart (ArchiveDataKind: OA/ON/NA/NN)IndexExceptionpublic long maxDIdx(ArchiveDataKind adk) throws IndexException
adk - Datensatzart (ArchiveDataKind: OA/ON/NA/NN)IndexExceptionpublic IndexResult getDataIdxContIDs(ArchiveDataKind adk, String basePath, byte[] tempMem, long minKey, long maxKey) throws IndexException
adk - Datensatzart (ArchiveDataKind: OA/ON/NA/NN)basePath - Pfad zum ContainerverzeichnistempMem - Temporaerer Speicher (zum Einlesen der Indexdatei, falls notwendig)minKey - Untere Grenze des DatenindexbereichsmaxKey - Obere Grenze des DatenindexbereichsIndexExceptionpublic IndexResult getArSTimeContIDs(ArchiveDataKind adk, String basePath, byte[] tempMem, long minKey, long maxKey) throws IndexException
adk - Datensatzart (ArchiveDataKind: OA/ON/NA/NN)basePath - Pfad zum ContainerverzeichnistempMem - Temporärer Speicher (zum Einlesen der Indexdatei, falls notwendig)minKey - Untere Grenze des ArchivzeitbereichsmaxKey - Obere Grenze des ArchivzeitbereichsIndexExceptionpublic IndexResult getDataTimeContIDs(ArchiveDataKind adk, String basePath, byte[] tempMem, long minKey, long maxKey) throws IndexException
adk - Datensatzart (ArchiveDataKind: OA/ON/NA/NN)basePath - Pfad zum ContainerverzeichnistempMem - Temporärer Speicher (zum Einlesen der Indexdatei, falls notwendig)minKey - Untere Grenze des DatenzeitbereichsmaxKey - Obere Grenze des DatenzeitbereichsIndexExceptionpublic long getMinVal(TimingType tt, ArchiveDataKind adk, String basePath) throws IndexException
tt - Datenzeit, Datenindex oder Archivzeitadk - Datensatzart (ArchiveDataKind: OA/ON/NA/NN)basePath - Pfad zum ContainerverzeichnisIndexExceptionpublic boolean enterCriticalArea()
public void exitCriticalArea()
public boolean enterBusyArea()
public void exitBusyArea()
public long getOpenContID(ArchiveDataKind adk) throws IndexException
IndexException, - falls die Zustaende der Indexe nicht uebereinstimmen oder die ContainerIDs unterschiedlich sindIndexExceptionpublic void arsParamSetParams(Data params)
params - public boolean arSParamIsArchivieren()
public boolean arSParamIsNachfordern()
public int arSParamGetAnzNachfordern()
public String arSParamGetNachfordern(int at)
at - Indexpublic boolean arSParamIsSichern()
public long arSParamGetQuittieren()
public boolean arSParamIsQuittieren()
public boolean arSParamIsQuittierenValid()
public void arSParamMarkQuittierenInvalid(boolean invalid)
quittieren - Quittierungs-Aspekt.public long arSParamGetVorhalten()
public boolean isArSParameterized()
public void rebuildIndexFileFlagWasCreated(ArchiveDataKind adk)
adk - Datensatzartpublic boolean isRebuildIndexFileFlagCreated(ArchiveDataKind adk)
PersistenceManager#REBUILDINDEX_FILE_FLAG_NAME nach einem Archivvorgang fuer diese DID erzeugt wurde. Wenn
nicht, muss der ArchivTask die Datei erzeugen und DataIdentNode#rebuildIndexFileFlagWasCreated() aufrufen, um fuer den Wiederanlauf nach einem
ausserplanmaessigen Systemstop zu kennzeichnen, welche Datenidentifikation ueberprueft werden muss.adk - DatensatzartDataIdentNode#rebuildIndexFileFlagWasCreated() aufgerufen wurde, sonst falsch.public boolean hasIndexAssigned()