Конференция "Базы" » ожидание запуска FireBird'a [D7, FireBird]
 
  • Цукор5 (15.07.09 13:02) [0]
    Добрый день.
    Каким образом узнать, что FireBird стартовал и готов к работе ?
    У меня ситуация следующая...Win2003 стартует, появляется окно логина/пароля(происходит это ночью, когда никого нет). В это время через планировщик запускается программа, которая проверяет готовность службы FireBird. И если служба готова, то запускается основная программа.

    Код отрабатывает правильно, т.е. видно, что служба стартовала.
    Но даже если после этого запустить основную программу связи с БД нет.


    function ServiceStatus(MachineName, ServiceName: string): dword;
    var
     Mgr, Svc: integer;
     Status: SERVICE_STATUS;
    begin
     Result := 0;
     Mgr := OpenSCManager(PChar(MachineName), nil, SC_MANAGER_ALL_ACCESS);
     if Mgr <> 0 then begin
       Svc := OpenService(Mgr, PChar(ServiceName), SERVICE_QUERY_STATUS);
       if Svc <> 0 then begin
         if QueryServiceStatus(Svc, Status) then Result := Status.dwCurrentState;
         CloseServiceHandle(Svc);
       end
       else
         RaiseLastOSError;
       CloseServiceHandle(Mgr);
     end;
    end;

    ...
    if ServiceStatus('','FireBirdServerDefaultInstance') = SERVICE_RUNNING then
       begin
           ShellExecute...
       end;



    Подскажите...каким же образом проверить и дождаться запуска FireBird.Может в чем-то другом проблема ? Заранее низкий поклон !!!
  • Медвежонок Пятачок © (15.07.09 13:11) [1]
    У тебя ответ содержится в вопросе:

    Служба стартовала, но нет связи.

    При этом бессмысленно спрашивать как дождаться запуска ФБ, так как служба уже стартовала.
  • Цукор5 (15.07.09 13:13) [2]

    > Медвежонок Пятачок ©   (15.07.09 13:11) [1]
    > У тебя ответ содержится в вопросе:Служба стартовала, но
    > нет связи.При этом бессмысленно спрашивать как дождаться
    > запуска ФБ, так как служба уже стартовала.


    Толком ничего не понял. Поставлю вопрос по другому...как заставить работать программу до входа в систему(т.е. служба только стартовала). Чего еще ждать ?
  • Игорь Шевченко © (15.07.09 13:28) [3]

    > Но даже если после этого запустить основную программу связи
    > с БД нет


    как именно нет связи ?
  • sniknik © (15.07.09 13:37) [4]
    > как заставить работать программу до входа в систему
    до входа в систему работают только службы. т.е. программу нужно сделать службой, или запустить как службу.
    ну и не забыть выставить ей зависимость от службы фаребирда, хотя это и не относится к вопросу в цитате.
  • Цукор5 (15.07.09 13:59) [5]

    > Игорь Шевченко ©   (15.07.09 13:28) [3]
    > > Но даже если после этого запустить основную программу
    > связи > с БД неткак именно нет связи ?


    unavailable database
  • Цукор5 (15.07.09 14:01) [6]

    > sniknik ©   (15.07.09 13:37) [4]
    > ну и не забыть выставить ей зависимость от службы фаребирда


    Т.е. моего кода достаточно ? Проблема только в том, что я не сделал программу службой ?
  • sniknik © (15.07.09 14:13) [7]
    > Т.е. моего кода достаточно ?
    твой код тут совершенно не при чем. да и не нужен службе, если используется только для того чтобы определить можно ли уже работать с сервером фаребирда, у них есть стандартный "оповещатель" - зависимости.

    > Проблема только в том, что я не сделал программу службой ?
    скорее всего нет, т.к.
    > Служба стартовала, но нет связи.
    проблема скорее всего вообще не связана с проверкой запущенности службы файрбирда.

    делать программу службой нужно по другому поводу, а именно для того чтобы работать "до входа в систему". т.е. до логина и запуска юзерского интерфейса.
  • Anatoly Podgoretsky © (15.07.09 14:40) [8]
    Проблема точно не связана и нечего ждать, поскольку служба уже стартовала, чего еще надо.
  • Mike Kouzmine (20.07.09 23:14) [9]
    а почему сервер стартует каждую ночь? Дебилизм.
  • Цукор5 (21.07.09 14:59) [10]

    > а почему сервер стартует каждую ночь? Дебилизм.


    Во первых не каждую, а во вторых потому что свет иногда выключают.
    И в-третьих какое отношение [9] имеет к сабжу ?
  • StriderMan (22.07.09 16:30) [11]
    сталкивались с подобной проблемой. Сервис FB бодро рапортует что уже стартовал, а коннект отваливается с ошибкой. После долгих поисков решений сделали несколько попыток старта с настраиваемым таймаутом.
 
Конференция "Базы" » ожидание запуска FireBird'a [D7, FireBird]
Есть новые Нет новых   [134474   +35][b:0][p:0.001]