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.