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()
lastQueryTime
public void setLastQueryTime(long lastQueryTime)
lastQueryTime
- lastQueryTime
public 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 ContainerIndexException
public 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.IndexException
public 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
- DatenzeitIndexException
public void closeIndexes(ArchiveDataKind adk, String basePath, byte[] tempMem) throws IndexException
adk
- DatensatzartbasePath
- Pfad der Datenidentifikation und DatensatzarttempMem
- temporaerer Speicher (benoetigt zum Schreiben der Indexdateien)IndexException
public 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)IndexException
public long maxDTime(ArchiveDataKind adk) throws IndexException
adk
- Datensatzart (ArchiveDataKind: OA/ON/NA/NN)IndexException
public long minATime(ArchiveDataKind adk) throws IndexException
adk
- Datensatzart (ArchiveDataKind: OA/ON/NA/NN)IndexException
public long maxATime(ArchiveDataKind adk) throws IndexException
adk
- Datensatzart (ArchiveDataKind: OA/ON/NA/NN)IndexException
public long minDIdx(ArchiveDataKind adk) throws IndexException
adk
- Datensatzart (ArchiveDataKind: OA/ON/NA/NN)IndexException
public long maxDIdx(ArchiveDataKind adk) throws IndexException
adk
- Datensatzart (ArchiveDataKind: OA/ON/NA/NN)IndexException
public 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 DatenindexbereichsIndexException
public 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 ArchivzeitbereichsIndexException
public 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 DatenzeitbereichsIndexException
public long getMinVal(TimingType tt, ArchiveDataKind adk, String basePath) throws IndexException
tt
- Datenzeit, Datenindex oder Archivzeitadk
- Datensatzart (ArchiveDataKind: OA/ON/NA/NN)basePath
- Pfad zum ContainerverzeichnisIndexException
public 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 sindIndexException
public 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()