Registriert seit: 25. Jun 2009
2 Beiträge
|
Connectionprobleme mit Firebird-Classic
25. Jun 2009, 17:51
Datenbank: Firebird • Version: 2.1 • Zugriff über: ZEOS
Hallo zusammen,
ich bin Programmieranfänger und hab hier folgendes Problem:
Ich möchte ein kleine Programm schreiben, mit dem ich lediglich prüfen möchte, ob der Verbindungsaufbau zu einer Firebird-Datenbank möglich ist oder nicht. Ich hab also ein Programm entworfen, dass beim Start eine Verbindung zum Server aufbaut(ich nutze die ZEOS-Komponente TZConnection), mir je nach erfolgreicher oder nicht erfolgreicher Verbindung ein Label grün oder rot einfärbt und die Verbindung ggf. wieder schließt (Mit der Prozedur Disconnect).
Das ganze lasse ich dann von einem Timer alle 20 Sekunden wiederholen. Klappt im Prinzip auch hervorragend zumindest beim Firebird-SuperServer- aber beim ClassicServer hab ich ein Problem:
Auf der Datenbank sind neben meinem Testprogramm auch noch andere Verbindungen aktiv, was in der Classic-Variante dazu führt, dass es mehrere Datenbankprozesse auf dem Server gib. Diese bleiben bei Beendigung des Firebird-Dienstes alle erhalten - lediglich ein Prozess - nämlich der Listener - wird ausgeschaltet.
Wenn mein Programm nun versucht mittels Connect eine Verbindung aufzubauen, hängt es sich auf. Auch im Debugger keinerlei Rück- oder Fehlermeldung - es reagiert einfach nicht mehr. Erst wenn ich mittels taskkill alle übrigen Firebird-Prozesse auf dem Server beende, bekomme ich im Programm die Meldung, der Server sei nicht erreichbar.
Gleiches Szenario, wenn ich den Firebird-Dienst beende und wieder starte: Keinerlei Reaktion im Programm - erst nachdem auf dem Server alle Firebirdprozesse einmalig mit taskkill beendet wurden reagiert das Programm wieder und baut erfolgreich die Verbindung zum Server auf.
Kann mir mal einer sagen, wie ich das in den Griff bekomme? Ich hab zwar die Möglichkeit eine einmal aufgebaute Verbindung zu erhalten und immer wieder abzufragen, aber wenn dann der Serverdienst weg ist bekomme ich das nicht mit, da ja die bestehende Verbindung trotzdem erhalten bleibt.
Bin für jeden Tip dankbar!
always1
|