Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   FB: Reaktion auf Verbindungsabbruch (https://www.delphipraxis.net/201070-fb-reaktion-auf-verbindungsabbruch.html)

hoika 20. Jun 2019 09:07

Datenbank: Firebird • Version: 2/3 • Zugriff über: IBDAC

FB: Reaktion auf Verbindungsabbruch
 
Hallo,
ich habe hier einen Firebird-Server, der über eine ziemlich murkelige Verbindung verfügt.
Soll heißen, ab und zu ist das Netz weg und Firebird verwirft die Verbindung.
Mein Programm läuft den ganzen Tag und wird auch mal für Stunden in Ruhe gelassen.
Gibt es in IBDAC sowas wie "Keep-Alive für immer", oder wie auch immer das jetzt nennt.

Ich überlege, ob ich vor jedem Formularstart jetzt einen Verbindungstest machen muss.
Ich würde dann festlegen, dass der Nutzer vor dem Verlassen des PCs alle offenen Formulare schließt.
Nicht schön, aber mir fällt im Moment nicht wirklich was anderes ein.

Oder?

IBExpert 20. Jun 2019 10:30

AW: FB: Reaktion auf Verbindungsabbruch
 
Versuch doch einfach mit einem simplen timer einfach alle x sekunden die in einer query zB den current_timestamp
vom server zu holen mit "select current_timestamp from rdb$database".

Dafür dann aber sicherstellen das der Timer ggf bei jeder realen Aktion deiner Applikation auf der Datenbank
mit enabled false/true wieder resettet wird, damit der dir möglichst selten da rein pfuscht. Alternativ kannst
du dafür auch eine extra connection benutzen, sinnvollerweise dann auch nur readonly.

Ob IBDAC ein funktionierendes Keepalive kann, kann ich dir nicht sagen, ich versuch so was meistens unabhängig
von irgendeiner speziellen Komponentenfähigkeit zu lösen, weil nicht alles was Komponenten machen, immer sinnvoll
ist. Und weil offene Datasets sowieso schon fast immer auch Transaktionen dauerhaft offen halten, ist das Problem
da nicht ganz banal lösbar.

hoika 20. Jun 2019 10:31

AW: FB: Reaktion auf Verbindungsabbruch
 
Hallo Holger,
Zitat:

ggf bei jeder realen Aktion deiner Applikation auf der Datenbank
mit enabled false/true wieder resettet wird
Ja, das wollte ich vermeiden ... ;)

Danke


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:19 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz