"Взаимодействие с рабочим столом" в сервисе

IBX, FIBPlus, UIB, ADO, .Net и прочее-прочее-прочее, в общем все, что относится к созданию приложений, работающих с InterBase, Firebird и Yaffil - клиент-серверных, трехзвенных, консольных и т.п.

Модератор: kdv

Ответить
MMF
Сообщения: 17
Зарегистрирован: 17 дек 2004, 17:59

"Взаимодействие с рабочим столом" в сервисе

Сообщение MMF » 09 апр 2006, 20:19

Пишу сервис NT, проблема в следующем: пока в сервисе работает один поток, использующий соединение с Fb, сервис нормально работает под системной учетной записью со снятым флажком "Разрешить взаимодействие с рабочим столом". При создании в сервисе дополнительных потоков, последние выдают ошибку "unavailable database' при попытке TIBdataBase.open (IBX), если флажка нет. При его установке (и прочих условиях запуска) ошибка не возникает.
Подскажите, пожалуйста, причина в кривизне моего кода или это нормальное явление?

MMF
Сообщения: 17
Зарегистрирован: 17 дек 2004, 17:59

Сообщение MMF » 09 апр 2006, 20:27

FB 1.5.3.4854
Используется соединение по TCP/IP. Файл базы данных 100% существует, сервер запущен, логин корректный, проверяю по логу
LogMessage('Открытие БД: ' + FIBDataBase.DatabaseName, EVENTLOG_INFORMATION_TYPE);
LogMessage(FIBDataBase.Params.Text, EVENTLOG_INFORMATION_TYPE);
FIBDataBase.Open();

hvlad
Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48

Re: "Взаимодействие с рабочим столом" в сервисе

Сообщение hvlad » 09 апр 2006, 23:25

MMF писал(а):Подскажите, пожалуйста, причина в кривизне моего кода или это нормальное явление?
Скорее первое, увы :wink:

MMF
Сообщения: 17
Зарегистрирован: 17 дек 2004, 17:59

Re: "Взаимодействие с рабочим столом" в сервисе

Сообщение MMF » 10 апр 2006, 00:59

hvlad писал(а):Скорее первое, увы :wink:
Спасибо, диагноз подтвердился - изваял простенький трехпоточный сервис. Работает без взаимодействия с рабочим столом. Хорошо, конечно, что ФБ не виноват, только как баг найти - не ведаю.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 10 апр 2006, 01:26

читай faq и не используй локальный коннект.

MMF
Сообщения: 17
Зарегистрирован: 17 дек 2004, 17:59

Сообщение MMF » 10 апр 2006, 23:58

kdv писал(а):читай faq и не используй локальный коннект.
Какой, прости, Faq читать?
По поводу локального коннекта я указал: "Используется соединение по TCP/IP".

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 11 апр 2006, 08:32

такой - www.ibase.ru/ibfaq.htm

коннект по tcp не может выдать "unavailable database". Такое сообщение выдает локальный коннект.
Используется соединение по TCP/IP.
так многие пишут. Только когда просишь привести строку коннекта, оказывается, что соединение было нифига не tcp.

в дополнительных тредах идет обращение к БД? Они делают это каждый в своем IBDatabase? Если нет, то они принудительно синхронизируются?

p.s. я почему и спрашиваю - FAQ читал? :)

Ответить