"Взаимодействие с рабочим столом" в сервисе
Модератор: kdv
"Взаимодействие с рабочим столом" в сервисе
Пишу сервис NT, проблема в следующем: пока в сервисе работает один поток, использующий соединение с Fb, сервис нормально работает под системной учетной записью со снятым флажком "Разрешить взаимодействие с рабочим столом". При создании в сервисе дополнительных потоков, последние выдают ошибку "unavailable database' при попытке TIBdataBase.open (IBX), если флажка нет. При его установке (и прочих условиях запуска) ошибка не возникает.
Подскажите, пожалуйста, причина в кривизне моего кода или это нормальное явление?
Подскажите, пожалуйста, причина в кривизне моего кода или это нормальное явление?
FB 1.5.3.4854
Используется соединение по TCP/IP. Файл базы данных 100% существует, сервер запущен, логин корректный, проверяю по логу
LogMessage('Открытие БД: ' + FIBDataBase.DatabaseName, EVENTLOG_INFORMATION_TYPE);
LogMessage(FIBDataBase.Params.Text, EVENTLOG_INFORMATION_TYPE);
FIBDataBase.Open();
Используется соединение по TCP/IP. Файл базы данных 100% существует, сервер запущен, логин корректный, проверяю по логу
LogMessage('Открытие БД: ' + FIBDataBase.DatabaseName, EVENTLOG_INFORMATION_TYPE);
LogMessage(FIBDataBase.Params.Text, EVENTLOG_INFORMATION_TYPE);
FIBDataBase.Open();
Re: "Взаимодействие с рабочим столом" в сервисе
Скорее первое, увыMMF писал(а):Подскажите, пожалуйста, причина в кривизне моего кода или это нормальное явление?

Re: "Взаимодействие с рабочим столом" в сервисе
Спасибо, диагноз подтвердился - изваял простенький трехпоточный сервис. Работает без взаимодействия с рабочим столом. Хорошо, конечно, что ФБ не виноват, только как баг найти - не ведаю.hvlad писал(а):Скорее первое, увы
такой - www.ibase.ru/ibfaq.htm
коннект по tcp не может выдать "unavailable database". Такое сообщение выдает локальный коннект.
в дополнительных тредах идет обращение к БД? Они делают это каждый в своем IBDatabase? Если нет, то они принудительно синхронизируются?
p.s. я почему и спрашиваю - FAQ читал?
коннект по tcp не может выдать "unavailable database". Такое сообщение выдает локальный коннект.
так многие пишут. Только когда просишь привести строку коннекта, оказывается, что соединение было нифига не tcp.Используется соединение по TCP/IP.
в дополнительных тредах идет обращение к БД? Они делают это каждый в своем IBDatabase? Если нет, то они принудительно синхронизируются?
p.s. я почему и спрашиваю - FAQ читал?
