powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Доступ к порту после запуска службы
4 сообщений из 4, страница 1 из 1
Доступ к порту после запуска службы
    #40052619
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хочу узнать экспертное мнение.
Скажите, сразу ли доступен порт сервера после того, как состояние службы стало SERVICE_RUNNING(4)?
Т.е. полностью ли запускается сервер до перехода службы в это состояние.
Интересует для FB 3 и 2.1

Интересует потому, что раньше я зачем-то (не помню) делал после этого еще небольшое ожидание с проверкой на connect к порту, вот хочется выкинуть это.

Спасибо.
...
Рейтинг: 0 / 0
Доступ к порту после запуска службы
    #40052648
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не особо шарю, но скачал исходники.
И теперь немного перефразирую вопрос.
в src\remote\server\os\win32\cntl.cpp
CNTL_main_thread
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
service_handle = RegisterServiceCtrlHandler(service_name->c_str(), control_thread);
if (!service_handle)
	return;

int status = 1;
DWORD temp = 0;

if (report_status(SERVICE_START_PENDING, NO_ERROR, 1, 3000) &&
	(stop_event_handle = CreateEvent(NULL, TRUE, FALSE, NULL)) != NULL &&
	report_status(SERVICE_START_PENDING, NO_ERROR, 2, 3000))
{
	try
	{
		Thread::start(main_handler, NULL, THREAD_medium);
		if (report_status(SERVICE_RUNNING, NO_ERROR, 0, 0))
		{
			status = 0;
			temp = WaitForSingleObject(stop_event_handle, INFINITE);
		}
	}
	catch (const Firebird::Exception& ex)
	{
		iscLogException("CNTL: cannot start service handler thread", ex);
	}
}


1. Я правильно понимаю, что служба переходит в статус SERVICE_RUNNING только после вызова report_status(SERVICE_RUNNING, NO_ERROR, 0, 0) (вторая выделенная строчка)?

2. Самое сложное. Первая выделенная строчка (Thread::start)
Я правильно понял, что это только запуск потока, в котором только будет производиться чтение всего-всего и, соответственно, запуск сервера? Т.е. что переход в SERVICE_RUNNING не гарантирует того, что сервер уже доступен?
...
Рейтинг: 0 / 0
Доступ к порту после запуска службы
    #40052678
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да на оба вопроса.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Доступ к порту после запуска службы
    #40052681
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Да, я так и понял, спасибо, придется костыли оставлять.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Доступ к порту после запуска службы
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]