AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

ADO Memoryleak / Speicherleck ?!

Ein Thema von markusef · begonnen am 29. Nov 2017 · letzter Beitrag vom 4. Dez 2017
 
markusef

Registriert seit: 9. Mai 2016
15 Beiträge
 
Delphi 10 Seattle Professional
 
#1

ADO Memoryleak / Speicherleck ?!

  Alt 29. Nov 2017, 11:19
Hey,

ich habe eine Client/Server-Serviceanwendung programmiert und soweit funktioniert auch alles. Bis auf einen einzigen Punkt.
Und zwar sobald eine Datenbank Verbindung innerhalb eines Threads ins Spiel kommt steigt mein Arbeitsspeicherverbrauch der .exe mit jeder Anfrage.
Ich habe es schon soweit dezimiert das lediglich eine ADOConnection instanziiert wird, ein ConnectionString übergeben wird, danach die Verbindung geöffnet und anschließend (ohne ein SQL Command auszuführen !) wieder geschlossen & ge-FreeAndNil't wird. Dennoch steigt der Arbeitsspeicherverbrauch mit jedem Durchlauf dieses Vorganges.

Ich weis so langsam nicht mehr wie ich das Unterbinden kann.
Leider bin ich auch auf die ADO-Geschichte angewiesen da wir eine ältere SAP-MaxDb Datenbank benutzen (müssen).
Quellcode:

Connect Funktion:
Code:
function TdatabaseInfo.Connect : boolean;
begin
  try
    if fConnectionString <> '' then
    begin
      ADOConnection.ConnectionString := fConnectionString; // Übergibt Connection String
    end
    else
    begin
      Result := false;
      nxLogging.Logger.error('TdatabaseInfo.Connect', 'connection string empty');
      Exit;
    end;

    ADOConnection.Open;

    if ADOConnection.Connected then
    begin
      Result := true;
    end;
  except
    on e : exception do
    begin
      Result := false;
      nxLogging.Logger.error('TdatabaseInfo.Connect', 'error during ADO connect: ' + E.Message);
    end;
  end;
end;
Disconnect Funktion:
Code:
function TdatabaseInfo.Disconnect : boolean;
begin
  try
    ADOConnection.Close;
    ADOConnection.Connected := false;
  finally
    Result := true;
  end;
end;
Ist jetzt nicht schön und auch nur fix "zusammengehackt", aber läuft, bis auf das Memoryleak.

Jemand ne Ahnung woran das liegt oder wie sich das Unterbinden lässt ?

Beste Grüße
Markus
  Mit Zitat antworten Zitat
 

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz