AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Firebird 2.1 - Stoppen von Queries nach Client-Crash
Thema durchsuchen
Ansicht
Themen-Optionen

Firebird 2.1 - Stoppen von Queries nach Client-Crash

Ein Thema von mquadrat · begonnen am 1. Jun 2010 · letzter Beitrag vom 7. Jun 2010
Antwort Antwort
mquadrat

Registriert seit: 13. Feb 2004
1.113 Beiträge
 
Delphi XE2 Professional
 
#1

Firebird 2.1 - Stoppen von Queries nach Client-Crash

  Alt 1. Jun 2010, 15:06
Datenbank: Firebird • Version: 2.1 • Zugriff über: IBX
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
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Firebird 2.1 - Stoppen von Queries nach Client-Crash

  Alt 3. Jun 2010, 12:51
Hallo,

Zitat:
FB wartet auf einen Client, den es nicht mehr gibt
Das sollte aber nach X Sekunden erledigt sein.
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
Heiko
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.464 Beiträge
 
Delphi 12 Athens
 
#3

Re: Firebird 2.1 - Stoppen von Queries nach Client-Crash

  Alt 4. Jun 2010, 08:04
Das funktioniert leider nicht immer, insbesondere in Verbindung mit Terminalserver...
  Mit Zitat antworten Zitat
mquadrat

Registriert seit: 13. Feb 2004
1.113 Beiträge
 
Delphi XE2 Professional
 
#4

AW: Firebird 2.1 - Stoppen von Queries nach Client-Crash

  Alt 7. Jun 2010, 08:00
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.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Re: Firebird 2.1 - Stoppen von Queries nach Client-Crash

  Alt 7. Jun 2010, 08:03
Das funktioniert leider nicht immer, insbesondere in Verbindung mit Terminalserver...
Wenn deine Verbindung zum Terminalserver abbricht läuft ja dein Desktop noch weiter. Dies wäre für kein DBMS eine Abbruchkriterium.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
mquadrat

Registriert seit: 13. Feb 2004
1.113 Beiträge
 
Delphi XE2 Professional
 
#6

AW: Firebird 2.1 - Stoppen von Queries nach Client-Crash

  Alt 7. Jun 2010, 08:09
Naja, je nachdem wie der Terminalserver eingestellt ist. Gibt ja auch Beenden nach Inaktivität.
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.464 Beiträge
 
Delphi 12 Athens
 
#7

AW: Firebird 2.1 - Stoppen von Queries nach Client-Crash

  Alt 7. Jun 2010, 09:29
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.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:28 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