Forum: Win32/Win64 API (native code)
by Delphi.Narium,
8. Sep 2021
Beim Logging sehe ich das Problem, dass ja nur alle 5000 Zeilen gespeichert wird.
Bei einem Programmabsturz kann man also schlimmstenfalls die letzten 5000 Zeilen im Protokoll nicht nachvollziehen. Die letzten Infos vor dem Auftreten eines Fehlers gehen also verloren.
Daher ein Vorschlag für die Änderung der Fehlerprotokollierung (nur hingedaddelt und nicht getestet):
procedure...
Forum: Win32/Win64 API (native code)
by Delphi.Narium,
7. Sep 2021
In diesem Bereich würde ich mal weiterschauen, hier scheint es ja einen Handlezuwachs zu geben:
07.09.2021 17:09:27: (Debug) PrinServer_action fertig: Handles: 354
07.09.2021 17:09:30: (Debug) : LS Download von Server OK: FranceTest.pdf
07.09.2021 17:09:30: (Debug) : LS Download von Server OK: SwissTest.pdf
07.09.2021 17:09:31: (Debug) : LS Download von Server OK: GermanTest.pdf
07.09.2021...
Forum: Win32/Win64 API (native code)
by Delphi.Narium,
6. Sep 2021
Prinzipiell deckt sich Deine Beschreibung mit meiner Vermutung für das gedachte Vorgehen. Nur bin ich mir nicht sicher, ob es auch so funktioniert :-(
procedure addline (s: string);
var
i : integer;
begin
try
form1.Memo_Log.Lines.Add(datetimetostr(now)+': ' + s);
if form1.Memo_Log.Lines.Count > 5000 then begin
Forum: Win32/Win64 API (native code)
by Delphi.Narium,
6. Sep 2021
Weil ansonsten (zumindest theoretisch) die Möglichkeit besteht, dass ts innerhalb des Try / Except bzw. Try / Finally nicht existiert. Zumindest die Kompilerwarnung wird dies aussagen.
Du arbeitest sehr viel mit globalen Variabel, das macht den Quelltext nicht unbedingt leichter les- und verstehbar. Mir ist z. B. noch nicht so ganz klar geworden, wann ts_log nun von wo welche Daten bekommt,...
Forum: Win32/Win64 API (native code)
by Delphi.Narium,
6. Sep 2021
Wir wissen, dass sich die Handles aufsummieren!
Aber warum sie sich aufsummieren ist (zumindest mir) bisher nicht klar geworden.
Meiner Meinung nach kennen wir eine Folge eines Fehlers (oder möglicherweise mehrerer Fehler?), aber noch nicht die Ursache(n) ;-)
Forum: Win32/Win64 API (native code)
by Delphi.Narium,
6. Sep 2021
Beispiel 3:
var
ts : tstringlist;
begin
ts := tstringlist.create;
try
try
mach das 1
mach das 2
Forum: Win32/Win64 API (native code)
by Delphi.Narium,
3. Sep 2021
Bei meinen HTTP-Klamotten kenn' ich das Problem in ähnlicher Form. Hier hat folgendes geholfen:
// Grundsätzlich hinter jedes
http.Disconnect(True);
// noch ein.
http.IOHandler.InputBuffer.Clear;
Behebt nicht 100% dieser Fehlersituationen, aber statt (teils mehrfach) täglich tritt der Fehler kaum noch monatlich auf.
Könnte daher einen Versuch wert sein.