Страница 1 из 1

Автозапуск приложения при загрузке Windows

Добавлено: 10 авг 2010, 15:53
aes
Доброго времени суток.
Имеется клиент-серверное приложение, работает под winXP. SQL-сервер - Firebird 2.5.
Ярлык на exe файл помещен в автозагрузку

Код: Выделить всё

c:\Documents and Settings\All Users\Главное меню\Программы\Автозагрузка\
При загрузке Windows приложение стартует и тут же ругается "Unable to complete network request to host 127.0.0.1". Клиент запускается на локальной машине, строка коннекта "127.0.0.1:C:\path\mybase.fdb". Настройки для получения строки коннекта берутся при запуске ПО из

Код: Выделить всё

c:\Documents and Settings\myuser\Application Data\myProgramm
Получение настроек и запуск коннекта к базе вызывается в OnShow формы.
Иногда приложение таки запускается, но чаще ругается, как описано выше.
Подскажите, как обойти?
Спасибо.

Re: Автозапуск приложения при загрузке Windows

Добавлено: 10 авг 2010, 21:34
kdv
При загрузке Windows приложение стартует и тут же ругается "Unable to complete network request to host 127.0.0.1"
значит Firebird в этот момент (или вообще) не запущен.
Подскажите, как обойти?
для однопользовательских приложений не надо себе морочить голову сервером. Используйте embedded, не надо будет запускать никакие сервера.

Re: Автозапуск приложения при загрузке Windows

Добавлено: 11 авг 2010, 07:25
aes
Используйте embedded, не надо будет запускать никакие сервера.
Приложение многопользовательское, просто основное тестирование в данный момент проходит на локальной машине (особенности работы заказчика).
значит Firebird в этот момент (или вообще) не запущен.
Выходит, способ только один: пауза при запуске, периодическая проверка сервиса ФБ в течение например 30 сек, и корректное завершение приложения, если сервис не стартует?
Еще один момент. Иногда сообщение об ошибке бывает такое: "Unsuccessful execution caused by unavailable resource. Unavailable database".

Re: Автозапуск приложения при загрузке Windows

Добавлено: 11 авг 2010, 09:59
kdv
просто основное тестирование в данный момент проходит на локальной машине (особенности работы заказчика).
тестирование чего? если эта машина работает как СЕРВЕР, то как бы, и заказчику, и ежу должно быть понятно, что сервер должен быть запущен РАНЬШЕ чем клиентские компьютеры.
Вы же комбинируете сервер и клиентский компьютер, втыкая приложение в автозапуск.
пауза при запуске, периодическая проверка сервиса ФБ в течение например 30 сек, и корректное завершение приложения, если сервис не стартует?
А что будет, если "серверный" компьютер у заказчика будет сам по себе грузиться дольше чем клиентские, даже если их одновременно включили?
Иногда сообщение об ошибке бывает такое: "Unsuccessful execution caused by unavailable resource. Unavailable database".
прямо-таки иногда? :)
www.ibase.ru/ibfaq.htm#unavail

Re: Автозапуск приложения при загрузке Windows

Добавлено: 11 авг 2010, 11:34
aes
Вобщем, дабы мы чуть лучше поняли друг друга, обрисую ситуацию подробнее.
Нормальный режим работы создаваемой системы:
есть сервер, на нем крутится fb, имеется всевозможное резервирование по питанию, по сохранности данных, включен всегда;
есть клиентское ПО, которое может запускаться либо на сервере, либо на других машинах в сети, причем запускаться должно в автоматическом режиме (пока речи о службах не идет).
В настоящий момент тестируется автоматический запуск клиентского ПО, установленного на сервер.
Для этого установлен fb2.5 super как служба, в автозагрузку скопирован ярлык, запускающий клиента.
После нескольких перезагрузок картина следующая:
очень редко ПО запускается нормально, часто выпадает сообщение "Unable to complete network request", и чуть реже "Unavailable database".
При обычном запуске клиентского ПО все ок, никаких ошибок.

Re: Автозапуск приложения при загрузке Windows

Добавлено: 11 авг 2010, 12:21
hvlad
На сервере небось автологон настроен ?

Re: Автозапуск приложения при загрузке Windows

Добавлено: 11 авг 2010, 12:28
aes
Да, есть такое.
Проверял на виртуалке (virtual PC), без автологона - картина та же.

Re: Автозапуск приложения при загрузке Windows

Добавлено: 11 авг 2010, 12:37
hvlad
Коннект к БД через TCP ?
Вставьте в автозагрузку ping -t localhost - что получится ?

Re: Автозапуск приложения при загрузке Windows

Добавлено: 11 авг 2010, 13:33
Dimitry Sibiryakov
STFW ""Always wait for network at computer startup and logon".
Это системная политика.

Re: Автозапуск приложения при загрузке Windows

Добавлено: 11 авг 2010, 14:23
aes
Коннект к БД через TCP ?
Да, по TCP.
Вставьте в автозагрузку ping -t localhost - что получится ?
При старте windows открывается консоль и идет пинг, все ок.
STFW ""Always wait for network at computer startup and logon".
Сделал.
Пока полет нормальный.

Re: Автозапуск приложения при загрузке Windows

Добавлено: 12 авг 2010, 10:09
aes
Проблема не решилась.
Только сейчас выпадает лишь "Unable to complete network request", очень редко.

Re: Автозапуск приложения при загрузке Windows

Добавлено: 12 авг 2010, 10:37
hvlad
Ну так источник проблемы стал хотя бы понятен ?

Re: Автозапуск приложения при загрузке Windows

Добавлено: 12 авг 2010, 10:57
aes
Похоже, что приложение успевает стартовать раньше, чем служба fb.

Re: Автозапуск приложения при загрузке Windows

Добавлено: 12 авг 2010, 12:06
kdv
"похоже"? OMG :)

Re: Автозапуск приложения при загрузке Windows

Добавлено: 12 авг 2010, 12:44
aes
Вот вам смешно, а где-то люди мучаются :)
Я вот каюсь, не знал, о такой особенности WinXP и fb (а может и не только WinXP, не проверял).
Впрочем, решение уже было озвучено, и тему можно закрыть.
Спасибо за помощь.

Re: Автозапуск приложения при загрузке Windows

Добавлено: 12 авг 2010, 14:55
Dimitry Sibiryakov
А вот сделали бы сразу своё приложение сервисом, тогда можно было бы поставить ему зависимость от сервера БД и забыть о проблемах с очерёдностью запуска навсегда...

Re: Автозапуск приложения при загрузке Windows

Добавлено: 13 авг 2010, 01:01
kdv
Я вот каюсь, не знал, о такой особенности WinXP и fb (а может и не только WinXP, не проверял).
о чем тут не знать, извините? что два приложения физически не могут запуститься в один момент, и если одно общается с другим, то до момента когда они оба будут работать, общения не будет? Вы, наверное, думали что тут какие-то невероятные сложности, но ведь это элементарно просто - пока один компьютер выключен, другой компьютер его в сети видеть не будет, ведь так? Пока я не пришел к Вам, мы с Вами не сможем поговорить очно. И так далее, не думаю, что нужно дальше приводить столь простые примеры.

В общем, не ищите сложное в простом :)