Autor Beitrag
dirkil2
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 130



BeitragVerfasst: Mi 23.11.05 15:40 
Ich verwende FIBPlus 6.25 und habe ein Problem mit Datenbank-Verbindungen, die abgebaut, aber nicht wieder aufgeaut werden.

Merkwürdigerweise wird eine Datenbankverbindung nach einer gewissen Dauer von Inaktivität abgebaut und bei der nächsten Verwendung gibt es dann eine Exception. Dieser Abbau tritt im übrigen nur auf, wenn die Verbindung remote geschieht, also nicht zu localhost.

Laut der Doku sollte es einen automatischen Reconnect geben, aber ich bekomme das nicht hin. Was habe ich gemacht?
Nun, ich habe eine pFIBDatabase Komponente und rufe bei dieser folg auf:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
  DB.CanTimeOut :=  False;
  DB.WaitForRestoreConnect := 15000;
  DB.Timeout := 0;
  DB.WaitRestoreConnect;
  DB.Open;


Desweiteren implementiere ich die Callbacks:
OnAfterRestoreConnect und OnErrorRestoreConnect

Diese werden aber zu keiner Zeit angesprungen. Außerdem habe ich noch OnDisconnect implementiert, aber auch das wird nicht angesprungen.

Ich teste, indem ich mein Programm starte und dann das Netzwerkkabel rausziehe, 5 Sekunden warte, dann wieder reinstecke und auf einen Button drücke, der eine Query absetzt, also auf die Datenbankverbindung zugreift. Dann bekomme ich immer eine Exception.

Ich hätte eigentlich erwartet, daß die OnConnectionLost angesprungen wird und entweder die OnAfterRestoreConnect (falls Reconnect klappt) oder OnErrorRestoreConnect (im Fehlerfall) angesprungen wird. Aber nichts dergleichen passiert.

Was mache ich falsch?

Im Übrigen habe ich auch beim Support nachgefragt, aber die hüllen sich in Schweigen.

Moderiert von user profile iconraziel: Delphi-Tags hinzugefügt.
Martin1966
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1068

Win 2000, Win XP
Delphi 7, Delphi 2005
BeitragVerfasst: Mi 23.11.05 17:07 
user profile icondirkil2 hat folgendes geschrieben:
Merkwürdigerweise wird eine Datenbankverbindung nach einer gewissen Dauer von Inaktivität abgebaut und bei der nächsten Verwendung gibt es dann eine Exception.

Wie lautet die Exception?

Lg Martin

_________________
Ein Nutzer der Ecke ;-)
dirkil2 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 130



BeitragVerfasst: Mi 23.11.05 17:14 
Die Exception lautet:

"Unsuccessful execution caused by a system error that precludes successful execution of subsequent statements. Unable to complete network request to host 192.168.1.79. Error reading data from the connection. An existing connection was closed by the remote host."