AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Firebird 2.x: Erste Verbindung zur Datenbank klappt nicht
Thema durchsuchen
Ansicht
Themen-Optionen

Firebird 2.x: Erste Verbindung zur Datenbank klappt nicht

Ein Thema von sveni2211 · begonnen am 15. Aug 2008 · letzter Beitrag vom 16. Aug 2008
Antwort Antwort
sveni2211

Registriert seit: 22. Dez 2006
Ort: Friedrichroda
38 Beiträge
 
#1

Firebird 2.x: Erste Verbindung zur Datenbank klappt nicht

  Alt 15. Aug 2008, 14:37
Datenbank: Firebird • Version: 2.x • Zugriff über: ZEOS, aktuelle SVN Version
Hallo.

Ich habe einen Dienst geschrieben, der beim Systemstart mit startet und als Datenbasis eine Firebird- Datenbank verwendet.

Wenn nun Dienst und Datenbank auf einem Rechner liegen, will das einfach nicht richtig funktionieren. Der Dienst meldet in seinem Log, er bekommt keine Verbindung zur Datenbank - beim Systemstart.
Läuft der Rechner bereits funktioniert alles problemlos. Wenn ich den Dienst starte verbindet er sich zur Datenbank.

Nun war meine Vermutung, dass der Dienst versucht auf Firebird zuzugreifen, wenn der noch nicht oben ist. Also habe ich ein Retry eingebaut, dass 10 Verbindungsversuche nach jeweils einer Minute unternimmt. Zeit genug also für den Firebird zum hochfahren.
Aber der Dienst bekommt keine Verbindung zur Datenbank. Obwohl ich den Firebird Server im der Prozessliste sehe und der Zugriff über IBConsole klappt, steht im nächsten Versuch des Dienstes im Log wieder, keine Verbindung. Stoppe ich den Dienst und starte ihn neu, hat er sofort eine Verbindung.

Wird eventuell Client- Seitig irgendwas (eine FB Client DLL?) zu früh geladen und die behält diesen Status bei oder sowas? Oder woran kann das liegen? Hat jemand eine Idee?

Den Dienst abhängig zu machen vom Firebird- Dienst würde ja auch nichts bringen, da der Dienst auch auf einen entfernten FireBird Server zugreifen muss (ein Server, n Clients inklusive dem Rechner, auf dem der Server liegt).

Langsam weiß ich nicht weiter, wo ich den Fehler noch suchen soll...
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Firebird 2.x: Erste Verbindung zur Datenbank klappt nich

  Alt 15. Aug 2008, 15:00
Eventuell ist der TCP/TP-Stack noch nicht geladen oder dein Firewall-Vektor gibt die Verbindungen noch nicht frei, weil er noch nicht komplett geladen ist.

Ist nur so eine Idee, vielleicht auch einfach nur blödsinn.

Edit: Kannst du da nicht einfach mal etwas warten und einen Verbindungsaufbau alle 10 Sekunden durchführen lassen. Das würde ich dann vielleicht maximal 20 mal versuchen lassen.

Sorry, mein Edit hast du ja schon ausprobiert.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Firebird 2.x: Erste Verbindung zur Datenbank klappt nich

  Alt 15. Aug 2008, 15:03
Du könntest versuchen, deinen Dienst zeitverzögert zu starten
Markus Kinzler
  Mit Zitat antworten Zitat
sveni2211

Registriert seit: 22. Dez 2006
Ort: Friedrichroda
38 Beiträge
 
#4

Re: Firebird 2.x: Erste Verbindung zur Datenbank klappt nich

  Alt 16. Aug 2008, 16:24
Ich habe jetzt einmal ein paar Zeilen Code eingefügt und verzögere den ersten Verbindungsaufbau um 30 Sekunden.
Damit geht es.

Nur - verstehen tu ich es nicht.

Worin besteht der Unterschied, wenn ich

a) alle 30, bis zu 6x (=3 Minuten) einen Verbindungsaufbau versuche oder
b) 30 Sekunden warte (=30 Sekunden) und dann das erste mal zu verbinden versuche?

Spätestens im zweiten Versuch in Szenario a) müsste es doch auf das selber hinaus laufen, oder?
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#5

Re: Firebird 2.x: Erste Verbindung zur Datenbank klappt nich

  Alt 16. Aug 2008, 16:44
Du solltest den Firebird dienst als Abhängigkeit für deinen Diesnt ablegen.
Dadurch weiß Windows dass es deinen diesnt erst nach Fiebird starten darf.
Verzögerungen sind hier absolut gar keine Lösung, sowas führt 3-mal im Jahr zu einem Problem und NIEMAND hat eine Ahnung woran es lag und der Kunde traut deiner Software (berechtigterweise!) nicht mehr über den Weg.

Neben der Abhängigkeit wäre es auch möglich, dass du den Firebird server nicht über das offizielle Setup im Zielsystem installierst, sondern einfach in einem Unterodner deines Dienstes packst.
Dein Diesnt kann dann beim Hochfahren genau dein Firebird mit einem konfigurierbaren Port hochfahren.

Dadurch wird deine Software keine bestehenden Firebird-Installationen zerstören können und auch andersrum: Ein User, der Firdbird selbst installiert, kann deine Software nicht kaputt machen.
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
sveni2211

Registriert seit: 22. Dez 2006
Ort: Friedrichroda
38 Beiträge
 
#6

Re: Firebird 2.x: Erste Verbindung zur Datenbank klappt nich

  Alt 16. Aug 2008, 18:27
Das Problem dabei ist ja, dass der FireBird nicht auf allen Systemen installiert werden soll/kann. Damit kann ich meinen Dienst nicht von ihm Abhängig machen, da es eben auch Clients gibt, die auf einen entfernten Server zugreifen. Die haben den Dienst FBServer also nicht.
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#7

Re: Firebird 2.x: Erste Verbindung zur Datenbank klappt nich

  Alt 16. Aug 2008, 18:42
Hört sich nach einem weiteren Wert für die Konfigdatei an (DB Host + Port + DBName).

Aber wenn die DB durch deinen Dienst verwaltet werden soll, würde ich an deiner Stelle einen eigenen FB dienst starten, mit einem eigenen Port.‚
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  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 09:08 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