|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectde.bsvrz.ars.ars.mgmt.datatree.DataIdentNode
public class DataIdentNode
Repraesentiert einen Knoten fuer eine Daten-Identifikation im Baum DataIdentTree.
Field Summary | |
---|---|
private boolean |
accessed
Markierung, ob ein Thread diesen DIN mit enterCriticalArea() betreten und noch nicht mit exitCriticalArea() verlassen hat. |
private Data |
arsParams
Parametrierung dieser Datenidentifikation |
private int[] |
containerEntries
Anzahl der Datensätze im jeweils pro Datensatzart aktuellen Container |
private static int |
DINDEXIDX
|
private static int |
DTIMEIDX
|
private static long |
ENTER_BUSY_AREA_TIMEOUT
|
private boolean |
firstOADataAfterSubscription
Flag, ob nach einer Anmeldung bereits ein OA-Datum erhalten wurde (wenn nicht, darf ein erhaltener Datenindex ausnahmeweise gleich dem zuletzt archivierten Datenindex sein) |
private boolean |
firstONDataAfterSubscription
Flag, ob nach einer Anmeldung bereits ein OA-Datum erhalten wurde (wenn nicht, darf ein erhaltener Datenindex ausnahmeweise gleich dem zuletzt archivierten Datenindex sein) |
static int |
IDXSIZE_ONLINE
|
static int |
IDXSIZE_REQUESTED
|
private Object[] |
indexes
Indexe. |
static byte |
INVALID
|
private boolean |
invalidAckID
Zeigt an, ob der Quittierungsaspekt ungueltig ist |
private static short |
LAST_OA_NOSRC_FALSE
|
private static short |
LAST_OA_NOSRC_TRUE
|
private short |
lastDataNoSourceStatus
Hier wird vermerkt, ob der letzte waehrend der laufenden Uptime archivierte OA-Datensatz die Kennung "keine Quelle" hatte. |
private int |
lastQueryTime
Zeitpunkt der letzten Archivanfrage zu dieser DID (in Sekunden seit Epoch). |
private static int |
MONOIDX
|
private boolean[] |
rebuildIndexFlagFileCreated
Gibt an, ob fuer diese DID die .changed-Datei bereits erzeugt wurde. |
private boolean |
taskBusy
Markierung, ob ein Thread diesen DIN mit enterBusyArea() betreten und noch nicht mit exitBusyArea() verlassen hat. |
private static short |
UNASSIGNED
|
Constructor Summary | |
---|---|
DataIdentNode()
|
Method Summary | |
---|---|
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 |
private void |
assignArrays()
|
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)
|
private ATimeMonotoneIndex |
getATimeMonoIdx(ArchiveDataKind adk)
|
private ATimeMonotoneIndex |
getATimeMonoIdx(int adkIndex)
|
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)
|
private DIdxATimeMonotoneIndex |
getDIdxATimeMonoIdx(int adkIndex)
|
private DataIndexIndex |
getDIIdx(int adkIdx)
|
private DataTimeIndex |
getDTIdx(ArchiveDataKind adk)
|
private DataTimeIndex |
getDTIdx(int adkIndex)
|
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. |
private boolean |
isNA_NN(int adkIdx)
|
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. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public static final byte INVALID
public static int IDXSIZE_ONLINE
public static int IDXSIZE_REQUESTED
private static final int MONOIDX
private static final int DTIMEIDX
private static final int DINDEXIDX
private static final long ENTER_BUSY_AREA_TIMEOUT
private static final short UNASSIGNED
private static final short LAST_OA_NOSRC_TRUE
private static final short LAST_OA_NOSRC_FALSE
private Data arsParams
private boolean invalidAckID
private boolean firstOADataAfterSubscription
private boolean firstONDataAfterSubscription
private int lastQueryTime
private Object[] indexes
private int[] containerEntries
private boolean accessed
enterCriticalArea()
betreten und noch nicht mit exitCriticalArea()
verlassen hat. Es darf stets
nur ein Thread im krit. Bereich sein. Dieser Semaphor regelt (blockiert) den Kurzzeit-Zugang zum DataIndentNode.
private boolean taskBusy
enterBusyArea()
betreten und noch nicht mit exitBusyArea()
verlassen hat. Es darf stets nur ein
Thread im busy Bereich sein. Dieser Semaphor regelt den Langzeit-Zugang zum DataIndentNode (z.B. damit Loesch- und Nachfordern- Task nicht kollidieren.
private boolean[] rebuildIndexFlagFileCreated
private short lastDataNoSourceStatus
Constructor Detail |
---|
public DataIdentNode()
Method Detail |
---|
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)
private boolean isNA_NN(int adkIdx)
public float getIndexFillRatio(ArchiveDataKind adk)
private ATimeMonotoneIndex getATimeMonoIdx(ArchiveDataKind adk)
adk
- Datensatzart
private ATimeMonotoneIndex getATimeMonoIdx(int adkIndex)
private DIdxATimeMonotoneIndex getDIdxATimeMonoIdx(int adkIndex)
adkIdx
- Datensatzart-Index
private DataTimeIndex getDTIdx(ArchiveDataKind adk)
adk
- Datensatzart
private DataTimeIndex getDTIdx(int adkIndex)
private DataIndexIndex getDIIdx(int adkIdx)
adkIdx
- Datensatzart-Index
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 Container
IndexException
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
- Datenzeit
IndexException
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 Datenindexbereichs
IndexException
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 Archivzeitbereichs
IndexException
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 Datenzeitbereichs
IndexException
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 Containerverzeichnis
IndexException
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 sind
IndexException
public void arsParamSetParams(Data params)
params
- public boolean arSParamIsArchivieren()
public boolean arSParamIsNachfordern()
public int arSParamGetAnzNachfordern()
public String arSParamGetNachfordern(int at)
at
- Index
public 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
- Datensatzart
DataIdentNode#rebuildIndexFileFlagWasCreated()
aufgerufen wurde, sonst falsch.private void assignArrays()
public String toString()
toString
in class Object
public boolean hasIndexAssigned()
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |