![]() |
Datenbank: Firebird • Version: 2.1 • Zugriff über: IBX
Firebird 2.1 - Stoppen von Queries nach Client-Crash
Hallo zusammen,
über die MON$STATEMENT Systemtabelle kann man ja länger laufende Queries mittels delete Befehl abbrechen. Problem an der Geschichte: Zwar werden die Statements wohl abgebrochen aber laut FB Bug-Tracker bleibt der Status solange auf active bis der Client den Cursor freigibt. Was aber nun, wenn der Client aufgrund eines Crashs zu dem Zeitpunkt nicht mehr vorhanden ist? Ich hatte konkret den Fall, dass sich scheinbar zwei Instanzen meines Programmes so dämlich gegenseitig in die Quere gekommen sind, dass eine Schreibquery "hängen" geblieben ist. Ergebnis: ich habe ein laufendes Update-Statement (zumindest mit Status aktiv in der MON$STATEMENT) hinter das sich alle anderen Queries einreihen und brav warten. Den Client-Prozess gibt es nicht mehr entsprechend kommt auch keine Nachricht über das Schließen des Cursors zurück. In 2.1 kann man auch keine Attachments komplett löschen. Somit war die einzige Idee, die ich hatte Firebird komplett runterzufahren (Dienst beenden). Nachteil ist natürlich, dass die wartenden Schreibzugriffe nicht ausgeführt wurden. Gibt es für solch eine Situation (FB wartet auf einen Client, den es nicht mehr gibt) eine andere Lösung? Mit 2.5 könnte ich das Attamchment löschen. Das würde ja auch helfen. Nur ist mit 2.5 halt erst im zweiten Quartal zu rechnen. Gruß Markus |
Re: Firebird 2.1 - Stoppen von Queries nach Client-Crash
Hallo,
Zitat:
FB pingt die aktuellen Clients periodisch an (stay alive packets). Meldet sch der Client nicht, wird die Verbindung von FB geschlossen Wie schnell das gehen soll, steht in der firebird.conf, das ganze geschieht auch nicht sofort, sondern FB fragt AFAIK 3 mal nach). Lies dir mal die Infos unter ConnectionTimeout durch, aber nicht das # wegmachen ;) Heiko |
Re: Firebird 2.1 - Stoppen von Queries nach Client-Crash
Das funktioniert leider nicht immer, insbesondere in Verbindung mit Terminalserver...
|
AW: Firebird 2.1 - Stoppen von Queries nach Client-Crash
Ich schau mir die Config mal an, aber ich habe definitiv ein offenes Attachement gehabt, dass noch zwei Tage nach dem Crash der Client-Anwendung da war.
|
AW: Re: Firebird 2.1 - Stoppen von Queries nach Client-Crash
Zitat:
|
AW: Firebird 2.1 - Stoppen von Queries nach Client-Crash
Naja, je nachdem wie der Terminalserver eingestellt ist. Gibt ja auch Beenden nach Inaktivität.
|
AW: Firebird 2.1 - Stoppen von Queries nach Client-Crash
Ich meinte das der Datenbankserver das Beenden einer Session auf dem Terminalserver nicht unbedingt mitbekommt..., ansonsten wäre das natürlich normal. Ist aber nur ein Beispiel, auch normale Clients sind manchmal betroffen. Allerdings verwenden wir in erster Linie Interbase, deshalb kann ich nicht sagen ob Firebird anders reagiert.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:35 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