Hallo,
Daraus entstanden Programme welche über mehre Tage ununterbrochen laufen. Ist soweit auch kein Problem. Die Programme halten aber ständig Kontakt zu einer Firebrid 2.5 Datenbank auf einem separaten Server.
Warum? Laufen tatsächlich ständig Operationen gegen die Datenbank, oder findet eine mehr oder weniger zeitraubender Operation auf dem Client statt?
Falls es eine einzige (oder ein paar wenige) Operation ist wäre die saubere Lösung, sich zur Datenbank zu verbinden, lesen was zu lesen ist, die Verbindung beenden, verarbeiten und das Ergebnis zurückschicken.
Falls es konzeptionell nicht möglich ist so zu arbeiten, gäbe es die Möglichkeit eine zweite, strukturgleiche Datenbank aufzubauen, diese kann lokal oder remote sein, und diesen Schatten über eine Replikationslösung aktuell zu halten.
Die Operatioen die lange laufen werden nun gegen den Schatten durchgeführt, währenddessen keine Replikation stattfindet und die erste
DB normal weiter läuft. Nach dem Ende der Operationen werden die Änderungen an beiden Datenbanken repliziert um wieder Synchronität zu erzeugen.
Zitat:
Jetzt kann es vorkommen, das der Server wegen z.B Netzwerkproblemen nicht erreichbar ist oder unsere Kunden fahren diesen einfach herunter.
Mit einem Schatten unter Deiner Kontrolle kein Problem, da du entscheidest auf welchem Rechner dieser liegt.
Wenn während der Arbeiten die Du durchführst durch andere nur lesend auf die
DB zugegriffen wird, wäre es auch eine Möglichkeit vor den Arbeiten das Datenbankfile der Firebirddatenbank zu kopieren und unter einem anderen Namen abzulegen. Sich zu dieser "neuen" Datenbank zu verbinden, die Arbeiten durchzuführen, den Ursprungsserver anzuhalten, die geänderte Datenbank bzw. das Datenbankfile so zurück zu kopieren das es das Original überschreibt, und die
DB wieder hochzufahren.
Ob und welche Replikationslösung für Dich funktioniert kannst Du ja ausprobieren, bevor Du dich an die Arbeit machst.
http://www.firebirdfaq.org/faq249/
cu Ha-Jö