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...