"Tunnel"- / Puffer-Datei



  • Hallo zusammen,

    ich habe folgende Problemstellung. Ich möchte mit einem C++ Programm Datensätze in eine Oracle Datenbank schreiben. Allerdings soll gewährleistet sein, das Datensätze die während eines Netzwerkausfalls oder ähnlichem vom C++ Programm erfasst werden, nicht verlohren gehen. Sprich ich benötige irgendeinen Puffer.

    Ich hab mir die Sache jetzt mal so ausgemahlt: Ich schreibe meine Datensätze mit meinem C++ Programm in eine Datei und lese sie dann mit einer Oracle-Anweldung wieder aus dieser Datei heraus und schreibe sie dann mit dieser in die DB. Dazu müßte ich aber gleichzeitig mit C++ in diese Datei schreiben und mit Oracle aus dieser Datei lesen. Ist sowas mäglich. Oder hat mir jemand einen Tip, wie für solch einen Fall die beste Lösung aussieht. Ich bin natürlich auch über jede Alternative dankbar.

    Grüßle Sophie



  • Gleichzeitig lesen & schreiben ist möglich, ich würde es aber nicht empfehlen.
    Wie wär's wenn du dir eine kleine embedded Datenbank ala SQLite schnappst und da die Daten ablegst.

    Das File mit dem SQLite arbeitet wird bei jedem Zugriff neu aufgemacht und gleich wieder geschlossen (sobald man das Resultat fertig ausgelesen/freigegeben hat), dadurch ist "fast gleichzeitiger" Zugriff von mehreren Programmen aus möglich.

    Evtl. wäre es auch eine Möglichkeit für jeden Datensatz ein eigenes File in einem Temp-Folder zu erstellen. Während das eine Programm einen Datensatz noch schreibt soll das andere ja garnicht zugreifen können, d.h. da benötigst du gleichzeitig lesen & schreiben garnicht. Und wenn ein Datensatz in die Oracle Datenbank übernommen wurde löscht du einfach das entsprechende File.



  • Vielen Dank erstmal für die schnelle Antwort.

    das mit SQLite hört sich für mein Vorhaben fast etwas auswendig an. Aber die Idee mit den einzelnen Dateien für jeden Datensatz hört sich für meine Zwecke recht brauchbar an, das werd ich mal testen.

    Allerdings würd mich trotzdem interessieren welcher technische Grund dann gegen ein gemeinsammes schreiben und lesen in einer Datei spricht.

    Grüßle Sophie



  • Hallo

    Weil das meistens einen hohen Aufwand bedeutet um die einzelnen Schreib- und Leseaktionen thread- bzw prozeßsicher zu machen. Genau diesen Aufwand nimmt dir eine entsprechende Datenbank ab.

    bis bald
    akari



  • Allerdings würd mich trotzdem interessieren welcher technische Grund dann gegen ein gemeinsammes schreiben und lesen in einer Datei spricht.

    Einfach der Grund: weil es relativ schwer ist sowas richtig hinzubekommen (siehe auch Posting von akari).


Anmelden zum Antworten