class DerbyPersistenz extends Object implements Persistenz
Modifier and Type | Class and Description |
---|---|
private static class |
DerbyPersistenz.DbSpezifikation
Definition für den Schlüssel auf Datensätze innerhalb der
Derby-Datenbank.
|
private static class |
DerbyPersistenz.PersistenzCache
Cache zum zwischenspeichern von Datensätzen, um den Zugriff auf die
externen Medien zu optimieren.
|
Modifier and Type | Field and Description |
---|---|
private DerbyPersistenz.PersistenzCache |
cache
Speicher für veröffentlichte Daten.
|
private de.bsvrz.dav.daf.main.ClientDavInterface |
dav
die verwendete Datenverteilerverbindung.
|
private Connection |
dbConnection
die Datenbankverbindung zur Derby-Datenbank.
|
private static byte[] |
EMPTY_BLOB
ein leeres Byte-Array.
|
private Object |
lock
Lockobjekt zur Synchronisation der Datenbankzugriffe.
|
private static de.bsvrz.sys.funclib.debug.Debug |
LOGGER
der Logger für Debugausgaben.
|
private static Set<Short> |
simulationen
Liste der angemeldeten Simulationen.
|
Constructor and Description |
---|
DerbyPersistenz()
Konstruktor.
|
Modifier and Type | Method and Description |
---|---|
private void |
aktualisiereIntern(de.bsvrz.dav.daf.main.config.SystemObject obj,
long atgId,
short sim,
de.bsvrz.puk.param.lib.daten.DataWithTime daten)
aktualisiert den übergebenen Datensatz in die Datenbank.
|
void |
aufraeumen()
bereinigt die Daten des Persistenzmoduls.
|
void |
backup()
erstellt ein Backup der Datenbank.
|
void |
cleanup(ParameterProvider provider)
entfernt alle persitenten Datensätze die nicht merh versorgt werden.
|
void |
close()
Die Funktion speichert alle ausstehenden Datenbankänderungen und schließt
die Datenbankverbindung.
|
private void |
connect(PersistenzParameter parameter)
stellt die Verbindung zur Datenbank her.
|
void |
entferne(de.bsvrz.puk.param.lib.ParameterInfo parameter)
entfernt die gespeicherten Daten für die übergebene Identifikation.
|
private void |
entferneIntern(String pid,
long id,
short sim)
entfernt den Eintrag mit der übergebenen Datenspezifikation aus der
Datenbank.
|
void |
entferneSimulation(short simulationsVariante)
entfernt die gespeicherten Daten für die übergebene Simulationsvariante.
|
private void |
erzeugeDatenTabelle()
erzeugt die Tabelle zum Speichern der Daten in der Parameterdatenbank.
|
void |
erzeugeSimulation(short simulationsVariante)
erzeugt eine Kopie der gespeicherten Parameterdaten für die angegebene
Simulationsvariante.
|
private Blob |
getBlob(de.bsvrz.puk.param.lib.daten.Attribut<? extends Object> daten)
Umwandlung der Parameterdaten in ein BLOB-Objekt zur Speicherung in der
Datenbank.
|
private List<de.bsvrz.puk.param.lib.daten.Attribut<?>> |
getDatenSatz(Blob blob)
wandelt ein in der Datenbank gespeichertes BLOB-Objekt in die
Datenstruktur des Parameterdatensatzes um.
|
void |
initalisiere(de.bsvrz.dav.daf.main.ClientDavInterface verbindung,
PersistenzParameter parameter)
Die Funktion stellt eine Verbindung zur eingebetteten Derby-Datenbank her
und erzeugt gegebenenfalls die notwendigen Datenstrukturen.
|
private void |
initialisiereCache()
lädt die Daten aus der Datenbank in eine interne Liste, um den Zugriff zu
beschleunigen.
|
de.bsvrz.puk.param.lib.Parameter |
lies(de.bsvrz.puk.param.lib.ParameterInfo parameter)
Liest einen persistenten Datensatz und liefert ihn zurück.
|
(package private) de.bsvrz.puk.param.lib.daten.DataWithTime |
liesIntern(de.bsvrz.dav.daf.main.config.SystemObject obj,
de.bsvrz.dav.daf.main.config.AttributeGroup atg,
short simVariante)
liest den spezifizierten Datensatz aus der Datenbank.
|
private void |
reconnect()
stellt die Datenbankverbindung nach einem Fehler wieder her.
|
void |
schreibe(de.bsvrz.puk.param.lib.Parameter parameter)
Schreibt einen Datensatz persistent.
|
private void |
schreibeIntern(de.bsvrz.dav.daf.main.config.SystemObject obj,
long atgId,
short sim,
de.bsvrz.puk.param.lib.daten.DataWithTime daten)
schreibt den übergebenen Datensatz in die Datenbank.
|
private static final byte[] EMPTY_BLOB
private static final de.bsvrz.sys.funclib.debug.Debug LOGGER
private DerbyPersistenz.PersistenzCache cache
private Connection dbConnection
private final Object lock
private de.bsvrz.dav.daf.main.ClientDavInterface dav
private void aktualisiereIntern(de.bsvrz.dav.daf.main.config.SystemObject obj, long atgId, short sim, de.bsvrz.puk.param.lib.daten.DataWithTime daten) throws de.bsvrz.puk.param.lib.DatenSchreibenException
obj
- das ObjektatgId
- die Id der Attributgruppesim
- die Simulationsvariantedaten
- der Datensatzde.bsvrz.puk.param.lib.DatenSchreibenException
- die Daten konnten nicht innerhalb der Datenbank gespeichert
werdenpublic void aufraeumen()
Persistenz
aufraeumen
in interface Persistenz
public void backup()
Persistenz
backup
in interface Persistenz
public void close()
close
in interface Persistenz
public void entferne(de.bsvrz.puk.param.lib.ParameterInfo parameter)
Persistenz
entferne
in interface Persistenz
parameter
- Identifikation des gesuchten Datensatzenprivate void entferneIntern(String pid, long id, short sim)
pid
- die PID des Objektsid
- die ID der Attributgruppesim
- die Simulationsvarianteprivate void reconnect()
public void entferneSimulation(short simulationsVariante)
Persistenz
entferneSimulation
in interface Persistenz
simulationsVariante
- die Simulationsvarianteprivate void erzeugeDatenTabelle() throws SQLException
SQLException
- Fehler beim Anlegen der Tabelle aufgetretenpublic void erzeugeSimulation(short simulationsVariante)
Persistenz
erzeugeSimulation
in interface Persistenz
simulationsVariante
- die Simulationsvarianteprivate Blob getBlob(de.bsvrz.puk.param.lib.daten.Attribut<? extends Object> daten) throws SQLException, IOException
daten
- die zu speichernden DatenSQLException
- Fehler bei der Umwandlung in die Ziel-StrukturIOException
- allgemeiner Konvertierungsfehlerprivate List<de.bsvrz.puk.param.lib.daten.Attribut<?>> getDatenSatz(Blob blob)
blob
- das BLOB-Objektpublic void initalisiere(de.bsvrz.dav.daf.main.ClientDavInterface verbindung, PersistenzParameter parameter)
initalisiere
in interface Persistenz
verbindung
- die Datenverteilerverbindungparameter
- die Parameter für das Persistenzmodulprivate void connect(PersistenzParameter parameter) throws ClassNotFoundException, SQLException
parameter
- die Parameter des PersistenzmodulsClassNotFoundException
- Treiber für die Datenbank wurde nicht gefundenSQLException
- Fehler beim Datenbankzugriffprivate void initialisiereCache() throws SQLException
SQLException
- die Daten konnten nicht korrekt eingelesen werdenpublic de.bsvrz.puk.param.lib.Parameter lies(de.bsvrz.puk.param.lib.ParameterInfo parameter)
Persistenz
lies
in interface Persistenz
parameter
- Identifiation des gesuchten Datensatzennull
, wenn kein Datensatz
mit der Identifikation existiertde.bsvrz.puk.param.lib.daten.DataWithTime liesIntern(de.bsvrz.dav.daf.main.config.SystemObject obj, de.bsvrz.dav.daf.main.config.AttributeGroup atg, short simVariante)
obj
- das Objektatg
- die ID der AttributgruppesimVariante
- die Simulationsvariantenull
public void schreibe(de.bsvrz.puk.param.lib.Parameter parameter) throws de.bsvrz.puk.param.lib.DatenSchreibenException
Persistenz
schreibe
in interface Persistenz
parameter
- Zu sichernder Parameterde.bsvrz.puk.param.lib.DatenSchreibenException
- die Daten konnten nicht gespeichert werdenprivate void schreibeIntern(de.bsvrz.dav.daf.main.config.SystemObject obj, long atgId, short sim, de.bsvrz.puk.param.lib.daten.DataWithTime daten) throws de.bsvrz.puk.param.lib.DatenSchreibenException
obj
- das ObjektatgId
- die Id der Attributgruppesim
- die Simulationsvariantedaten
- der Datensatzde.bsvrz.puk.param.lib.DatenSchreibenException
- die Daten konnten nicht innerhalb der Datenbank gespeichert
werdenpublic void cleanup(ParameterProvider provider)
Persistenz
cleanup
in interface Persistenz
provider
- die Menge der versorgten DatensätzeCopyright © 2017 BitCtrl Systems GmbH. All rights reserved.