Hallo Kai !
Vielen Dank für die schnelle und kompetente Antwort !
Quote:
Phoner lädt beim Start einige Dateien, deren Inhalt dem Programm zur Laufzeit zur Verfügung stehen sollen, um etwa Nachladezeiten während eines Anrufes zu verkürzen. Hierzu gehört auch die Datei "Anrufe.log". Nachdem Phoner gestartet wurde, steht der Inhalt dieser Datei Phoner komplett zur Verfügung - benennst Du die Datei um, während das Programm läuft, steht Phoner dennoch der vollständige Inhalt dieser Datei zur Verfügung.
Bei neuen Ereignissen wird - da die "Anrufe.log" nicht mehr zur Verfügung steht - eine neue Datei Anrufe.log erstellt, in die Phoner den kompletten Speicherinhalt plus das neue Ereignis hineinschreibt.
Ja, so habe ich mir das gedacht. Macht ja auch gerade in Bezug auf Verzögerungen durch Dateizugriffe Sinn.
Und Danke für den Link mit dem Tutorial. Habe ich mir durchgelesen und viel gelernt !!
Mein Programm welches ich bei dem Kunden installiert habe, läuft periodisch alle Phoner-Clients durch und holt sich die neuesten Log-Einträge zur Aufbereitung auf den Datenbankserver. In diesem Moment werden auch Backups erstellt etc.
Die entstehenden 'Dubletten' durch das Schreiben des Pufferinhalts in eine neue Anrufe.log sind auch nicht das Problem, die hatte ich zum Glück abgefangen
Was bei meiner Vorgehensweise wirklich stört ist, dass die Anrufe.log (theoretisch, z.B. falls Phoner nie beendet wird) nie geleert werden kann.
Zwar kann ich das beim Programmstart wie du es beschrieben hast einbauen, dann habe ich aber (im Extremfall) viele log-Dateien da rumliegen und muss mich um deren 'fachgerechte' Entsorgung kümmern
Das ist mir alles etwas zu 'wacklig'.
Ich beschreibe einfach mal das in meinen Augen ideale Verhalten vom Phoner - evtl. besteht ja Interesse daran, ein solches einzubauen ?
Phoner lädt sich beim Programmstart die Anrufe.log in seinen Puffer, markiert diese intern mit einem Flag 'gespeichert'.
Tritt ein neuer Event ein, dann wird dieser im internen Puffer als neuer Eintrag eingetragen.
Phoner möchte das Dingens ja jetzt ganz gerne speichern.
In diesem Moment können genau 2 Dinge passieren (mal die ganzen Kleinigkeiten die schiefgehen könnten vernachlässigt

):
a) es existiert eine Anrufe.log-Datei -> Phoner speichert einfach wie bisher seinen gesammten Puffer in diese Datei, markiert alle Einträge im Puffer als gespeichert.
b) es existiert keine Anrufe.log-Datei -> Phoner legt diese neu an und speichert nur die Einträge aus dem Puffer, die als 'noch nicht gespeichert' markiert sind. Danach werden wieder alle Einträge im Puffer als gespeichert markiert.
Auf diese Weise könnte man sich selbst per externem Programm um die Verwaltung der Anrufe.log kümmern und müsste nich zu sehr mit Skripten etc. herumdoktorn.
Gleichzeitig würde die Anrufe.log immer schön klein und handlich bleiben und Phoner selbst hätte die gesamte Liste noch immer im Speicher.
Wenn man dieses Verhalten noch per .ini-Datei ändern könnte (default wie bisher und als Parameter diese 'extended'-Version), wäre ich soooo happy !
Wäre fein, wenn ihr mal über diese Idee nachdenken könntet. Evtl. hilft es ja nicht nur mir und es besteht eine Nachfrage nach diesem Verhalten.
Vielen Dank schon mal !!
LG Gerald