![]() |
Datenbank disconnect timeout
Hallo,
ich habe das Problem, dass es so ca. 20 Sek. dauert bis man eine Verbindung trennen kann. Benutzt wird folgendes: - Delphi XE7 - IBDatabase - Firebird 2.5 Datenbankverbindung von einem PC auf anderen, z.B. 192.168.1.1/3050:C:\temp\test.fdb Wenn keine Verbindung mehr existiert, dann lokal arbeiten. Ablauf: - IBDatabase.DatabaseName:=192.168.1.1/3050:C:\temp\test.fdb; - IBDatabase.Connected:=True; - Verbindung trennen (Kabel ausgesteckt) - IBDatabase.Connected:=False; - IBDatabase.DatabaseName:=127.0.0.1/3050:C:\temp\test.fdb; - IBDatabase.Connected:=True; Das Problem ist, dass "IBDatabase.Connected:=False" so ca. 20 Sek. braucht! Kann man das irgendwie umgehen? Gibt es dafür timeout? Danke im Voraus! |
AW: Datenbank disconnect timeout
Hallo,
glaube ich nicht. Die 20 Sekunden sind der Standard-TCP-Timeout von Windows. Da du die IP kennst, könntest du den Server anpingen. PS: Es gibt in der firebird.conf diverse Schalterchen (z.B. ConnectionTimeout), die dienen aber ausschließlich der Server-Seite. Heiko |
AW: Datenbank disconnect timeout
Hallo,
danke für die schnelle Antwort! Ich pinge den Server an. Und dann wechsele ich die DB, und genau da entstehen diese 20 Sek. firebird.conf hilft mir in dem Fall nicht, weil das auf dem Server ist, firebird/server ist in dem Moment sowieso nicht erreichbar! |
AW: Datenbank disconnect timeout
Hallo,
prüfe doch in einem extra Thread alle x sec ob man noch eine abfrage auf die DB machen kann:
Code:
... try // Pseudo-Code: IBDatabase.Select := 'select ''x'' from dual'; IBDatabase.Execute: ... except MyConnection := false; end; |
AW: Datenbank disconnect timeout
Hallo,
Ich pinge den Server an. Und dort gibt es kein Ping-Timeout? Heiko |
AW: Datenbank disconnect timeout
Morgen,
Ping hat timeout. So stelle ich fest, das der Server nicht da ist. Das geht und ist kein Problem. Wenn der Server nicht da ist, dann bekommt der Benutzer eine Meldung. Lokal arbeiten JA - NEIN. Wenn der Benutzer sagt JA, dann mache ich Connected:=False, und genau da muss man 20sek warten! |
AW: Datenbank disconnect timeout
Moin... :P
Imho kommuniziert die Connection auch beim DISCONNECT mit dem Server. Da der ja nicht da ist, hast du den Timeout. In so einem Falle hilft nur die Connection wegzuwerfen und neu zu erzeugen. |
AW: Datenbank disconnect timeout
Zitat:
|
AW: Datenbank disconnect timeout
Bist du dir da sicher?
Ich verwende genau dieses Konstrukt. (IBDAC) Allerdings ist die Connection in einem Interface verpackt. Wenn ich keine Connection mehr habe (täglich durch die Zwangstrennung und dem VPN) werfe ich das Interface weg und mach ein Neues. Da muß keiner warten... :gruebel: |
AW: Datenbank disconnect timeout
Hast du den Quellcode? Dann schau in den
Delphi-Quellcode:
rein.
destructor
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:44 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