Service e FBServer

Firebird

29/09/2004

Olá,

O problema é o seguinte. Fiz um programa que roda como um service do Windows.
Só que como ele acessa uma base Firebird, na inicialização do Windows ele está sendo ´startado´ antes do FBServer.
Existe algum modo dele aguardar até que o FBServer esteja rodando ou informar ao windows para só inicia-lo após o FBServer.

Desde já agradeço


Marcelo.l

Marcelo.l

Curtidas 0

Respostas

Vinicius2k

Vinicius2k

29/09/2004

Colega,

Nunca implementei nada parecido, mas uma idéia seria colocar o seu serviço como dependente do serviço do FB (sendo honesto, não sei como fazer, mas se vc já conseguiu criar sua aplicação como serviço, deve ser um dos parametros da criação deste serviço)... com isso o Windows *deve* entender que precisa startar o FB primeiro...

Outra idéia (acho que essa seria uma ´gambiarra´) seria vc só se conectar ao banco se o FB estiver rodando... colocando seu processo de conexão dentro de um laço de while que ficaria testando se o FB já está rodando antes de conectar-se...
Um exemplo de função para testar :
function FirebirdIsRunning: Boolean;
begin
  Result:= Boolean(FindWindow(´fb_server´,´Firebird Server´));
end;


Espero ter ajudado...
T+


GOSTEI 0
Afarias

Afarias

29/09/2004

|uma idéia seria colocar o seu serviço como dependente do serviço do FB


Exatamente isso!

Na propriedade DEPENDENCIES do seu TService, adicione uma entrada para ´InterBaseServer´ (IB 6.0 ou FB 1.0) -- o nome do serviço FB 1.5 eu não lembro agora mas deve ser algo como ´FirebirdServer´ -- no Delphi vai aparecer a lista dai vc vê.


T+


GOSTEI 0
Marcelo.l

Marcelo.l

29/09/2004

Obrigado a todos.

Vou tentar.


GOSTEI 0
POSTAR