Einzelnen Beitrag anzeigen

Iwo Asnet

Registriert seit: 11. Jun 2011
313 Beiträge
 
#3

AW: FB wird immer langsamer und MON$ATTACHMENTS immer länger

  Alt 19. Okt 2011, 16:29
hi,

Ok ok... Da kommen wir der Sache näher...
Wäre das denn etwas, was FB in die Knie zwingt?

Verbindungsprobleme werden nicht geloggt.

Ich habe eine Job-Queue implementiert. Die Jobs werden nacheinander, schön sequentiell, ausgeführt.
Wenn ein Job ausgeführt wird, fordere ich eine Connection (TIBDatabase-Objekt) aus einem Pool an.
Dann starte ich die Transaktion, führe das Zeugs aus, commite und gib dem Connectionpool die connection wieder zurück.

Hier das Create und das Dispose. Die Connection bleibt aber am Leben, d.h. i.d.R. wird eine Connection erzeugt und erst bei Programmenende per Dispose wieder weggeschmissen.
Delphi-Quellcode:
function TConnectionPool.CreateConnection: TIBDatabase;
begin
  Result := TIBDatabase.Create(nil);
  Result.DatabaseName := fDatabaseName;
  Result.Params.Clear;
  Result.Params.Add('user_name=sysdba');
  Result.Params.Add('password=xxxxx');
  Result.LoginPrompt := False;
  Result.DefaultTransaction := TIBTransaction.Create(nil);
  Result.Connected := True;
end;
...
procedure TConnectionPool.DisposeConnection(aConnection: TIBDatabase);
begin
  fPendingConnections.Remove(aConnection);
  aConnection.Connected := False;
  aConnection.DefaultTransaction.Free;
  aConnection.DefaultTransaction := nil;
  aConnection.Free;
end;
Mir scheint aber, das hier etwas anderes vorliegt. Ich habe 3 Jobs pro Sekunde und mittlerweile 237 Einträge in dieser MON$ATTACHMENTS-Tabelle. Alle 236 haben den gleichen Zeitstempel.

Geändert von Iwo Asnet (19. Okt 2011 um 16:45 Uhr)
  Mit Zitat antworten Zitat