powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
75 сообщений из 75, показаны все 3 страниц
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39848091
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Перелез на бету 4-ки. После гибернации происходит разрыв соединения с базой (клиент и сервер на одном и том же десктопе), чего с 2.5.x не происходит. Это чиниться какой-нибудь настройкой или ...?
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39848106
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

прям перелез? Или пробуешь. Предупреждаю перелезать рано!!!

Строка коннекта какая?
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39848113
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисrdb_dev,

прям перелез? Или пробуешь. Предупреждаю перелезать рано!!!Перелез как разработчик, пользующий то, что документировано в firebird-language-reference-manual-30.

Симонов ДенисСтрока коннекта какая?
Код: plaintext
inet4://172.31.127.1:3050/db_alias

172.31.127.1 - это адрес на MS loopback адаптере. FirebirdSQL v2.5.9 у меня подключён тем же способом, со строкой:

Код: plaintext
172.31.127.1/30525:another_db_alias

Оба сервера сервера Super.
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39848127
Фотография o_v_a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev После гибернации происходит разрыв соединения с базой (клиент и сервер на одном и том же десктопе), чего с 2.5.x не происходит. Это чиниться какой-нибудь настройкой или ...?
А проверить в диспетчере устройств, что там с настройками энергопотребления сетевого адаптера.
Не надо разрешать его отключать.
А по уму... кто ж на сервере (пускай и для разработки) использует гибернацию?!
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39848134
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
o_v_a,

Ааа, **! - Сказали суровые сибирские мужики, и пошли валить лес топорами (ц)
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39848158
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
o_v_a, ась?! Power management у "Адаптер Microsoft замыкания на себя"?
Ты бы ещё предложил проверить у фильтр-драйвера, обслуживающего 127.0.0.0/8. :)
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39848160
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
o_v_aА по уму... кто ж на сервере (пускай и для разработки) использует гибернацию?!Сколько же ты вчера выпил? :)
rdb_devПерелез на бету 4-ки. После гибернации происходит разрыв соединения с базой ( клиент и сервер на одном и том же десктопе ), чего с 2.5.x не происходит. Это чиниться какой-нибудь настройкой или ...?
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39848166
akrush
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на 3 гибернация работает.
Тестировал один проект.
Процесс шел целый день (БОЛЬШОЙ импорт) и потом обработка после импорта.
Пора было в пятницу идти домой.
Увел комп в гибернацию - на следующий день, в субботу, включил - процесс продолжился.
Правда подключение к БД, так как это все на одном ноуте - локально, без сетевых адресов
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39848174
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подключение работает без компрессии, но с шифрованием:
Код: plaintext
1.
MON$WIRE_COMPRESSED=FALSE
MON$WIRE_ENCRYPTED=TRUE

На всякий случай приведу выдержку из firebird.conf:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
RemoteBindAddress = 172.31.127.1
IpcName = FBSQL__SuperServer4_0b1
RemotePipeName = FBSQL__SuperServer4_0b1

ServerMode = Super
AuthServer = Srp256
WireCrypt = Enabled   #Encrypted when both sides (client & Server) are set to Enabled
##################################
# AuthServer = Srp256,Legacy_Auth
# WireCrypt = Required
##################################

DefaultDbCachePages = 8192
FileSystemCacheThreshold = 1024

TempBlockSize = 4M
TempCacheLimit = 256M

LockMemSize = 4M
LockHashSlots = 8191
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39848176
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akrushУвел комп в гибернацию - на следующий день, в субботу, включил - процесс продолжился.
Правда подключение к БД, так как это все на одном ноуте - локально, без сетевых адресовУ тебя шифрование трафика включено?
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39848248
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приложения при уходе в гибернацию обязаны разрывать сетевые соединения. Абы на другом
конце не было непоняток с их состоянием. Кто так не делает - ССЗБ.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39848285
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

интересный тезис

вообще, гибернация - это типа слепок текущего состояния ПК, чтобы потом продолжить с того еж самого места. Так что с тем же основанием можно сказать, что приложения вообще знать не должны, что такое гибернация, и что это случилось, это дело операционки. Также, например, как перетыкание USB-диска в другой порт. Для низкоуровневых приложений такое отслеживать нужно, но в общем случае - нет.
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39848286
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"на том конце" провода никто не знает что клиент не помер, а всего лишь окуклился.
а посему, вычёркивается из списка живых.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39848297
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийне знает что клиент не помер, а всего лишь окуклился.

а собственно, какая разница?

в том, что через месяц одного клиента из гибернации выведут, а другого отправят на переплавку из гибернации не выводя? так это будет только в будущем, здесь и сейчас этого никто не знает, и следовательно сиюминутно - разницы просто нет
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39848299
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
12.08.2019 13:46, Arioch пишет:
> следовательно сиюминутно - разницы просто нет

дык и я об том же
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39848300
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий,

А даже если б знал. Вдруг он реанимируется через полгода? Так и держать его коннект с его снэпшотом?
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39848301
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
но это - когда существует "другой конец провода", чего у топикстартера нет

сервера и клиента замораживают и размораживают одновременно
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39848303
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
12.08.2019 13:48, Arioch пишет:
> сервера и клиента замораживают и размораживают одновременно

это кажущееся отражение кажущейся луны! (С)

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39848338
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий,

Сказали ведь, "клиент и сервер на одном и том же десктопе".
Чего флудить фантазиями на тему гибернации разных компов?
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39848340
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
12.08.2019 14:53, kdv пишет:
> Сказали ведь, "клиент и сервер на одном и том же десктопе".

совершенно ***
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39848345
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvСказали ведь, "клиент и сервер на одном и том же десктопе".

А между ними TCP/IP. И как им узнать о том, что они "на одном десктопе", а не
промаршрутизированы через половину шарика?

Поэтому повторяю: правильные приложения должны закрывать все сетевые коннекты при гибернации.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39848367
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

как ты себе представляешь режим гибернации?
Ничего, что сохраняется "замороженное" состояние памяти?
У меня что десктоп, что ноут, выключаются в 90% случаев в режим гибернации или сна.
И ничего, локальные tcp коннекты вполне себе сохраняются (например FB + какая-то программа).
Почему это внутренние tcp-соединения должны закрываться, с какой целью???
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39848368
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
12.08.2019 15:34, kdv пишет:
> Ничего, что сохраняется "замороженное" состояние памяти?

состояние портов - не память.

зы: не нужно фантазировать опираясь на "банальную эрудицию"
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39848373
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Локальные TCP коннекты" :)
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39848376
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй

TcpLoopbackFastPath = 0

я других "радикальных" изменений в нашем INET не помню.
Ну, IPv6 ещё, но это вроде не при чём.
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39848390
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad, не проканает. У меня сервак висит не на фильтр-драйвере 127.0.0.0/8, а на программном адаптере Microsoft loopback, который ставится из драйверов. Я на этот адаптер ещё виртуалки вешаю с них же, порой, и тестирую.
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39848392
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий,

так, стоп.
- у ФБ 2.5 и 3.0 коннект к базе сохраняется на время гибернации или сна.
Это факт. Оспаривать не вижу смысла, можете сами проверить.

у автора топика вопрос про ФБ 4. 21946798

Я сделал тест. Win 7 Prof 64bit.
FB 4.0.0.1573, 32bit, запущено как firebird -a из cmd.

Коннект из ИБЕ к employee.fdb, клиентом 4, remote, tcp, (ip v6 у меня выключено в настройках сети, есть только ipv4)
localhost:D:\Firebird4\examples\empbuild\EMPLOYEE.FDB
firebird.conf дефолтный. select * from employee, ок.
Перевожу комп в режим сна. Включаю опять. Повторяю запрос в IBE - все нормально, никаких проблем.
Перевожу комп в гибернацию, включаю. Повторяю запрос в IBE - вот ёп, опять всё работает.

Что я сделал не так?
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39848395
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladНу, IPv6 ещё, но это вроде не при чём.Это у меня вообще отключено через:
Код: plaintext
1.
reg add "HKLM\SYSTEM\CurrentControlSet\services\TCPIP6\Parameters"^
 /v "DisabledComponents" /t "REG_DWORD" /d 0x20

Шифрование как-то может влиять? Может по времени сбивается какая-то последовательность, используемая в шифровании?
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39848398
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv...
у автора топика вопрос про ФБ 4. 21946798

Я сделал тест. Win 7 Prof 64bit.
FB 4.0.0.1573, 32bit, запущено как firebird -a из cmd.

Коннект из ИБЕ к employee.fdb, клиентом 4, remote, tcp, (ip v6 у меня выключено в настройках сети, есть только ipv4)
localhost:D:\Firebird4\examples\empbuild\EMPLOYEE.FDB
firebird.conf дефолтный. select * from employee, ок.
Перевожу комп в режим сна. Включаю опять. Повторяю запрос в IBE - все нормально, никаких проблем.
Перевожу комп в гибернацию, включаю. Повторяю запрос в IBE - вот ёп, опять всё работает.

Что я сделал не так?

Оборудование у тебя другое, и настройки. Ему - "повезло", тебе - нет. :)
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39848399
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devhvlad, не проканаетНу тогда продолжай вести монологи. Ты сам всё за всех знаешь.
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39848401
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvПеревожу комп в режим сна. Включаю опять. Повторяю запрос в IBE - все нормально, никаких проблем.
Перевожу комп в гибернацию, включаю. Повторяю запрос в IBE - вот ёп, опять всё работает.

Что я сделал не так?Использовал фильтр-драйвер 127.0.0.0/8, вместо "Адаптер Microsoft замыкания на себя"?
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39848435
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

это понятно. Но ставить MS loopback adapter как-то геморройно, и мне оно незачем. Пусть еще кто-то проверит.
https://support.microsoft.com/ru-ru/help/842561/how-to-install-the-microsoft-loopback-adapter-in-microsoft-windows-ser
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39848512
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv, во всех современных Windows он уже есть и ставится элементарно из "Диспетчера устройст":
1. Правой кнопкой по корню, в "Диспетчере устройств",
2. "Установить старое устройство",
3. "Установка оборудования, выбранного из списка вручную",
4. "Сетевые адаптеры",
5. "Microsoft",
6. "Адаптер Microsoft замыкания на себя".
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39848522
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

спасибо, вижу, но не хочу. Пусть кто-нибудь из оппонентов проверит.
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39848547
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv, я не настаиваю. Лишь привёл порядок установки для тех, кому интересно.
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39848842
akrush
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,
Проверил.
Установил "Адаптер замыкания..." (у меня 10)
Запустил IBExpert, в коннекте к БД прописал адрес адаптера.
Подключился, выполнил запрос в одной из таблиц, грубо говоря, select * from
Вот на таком состоянии, просмотр результата запроса, увел ноут в гибернацию.

Вывожу ноут из гибернации - IBExpert ругается что потеряно соединение.

П.С. На что я обратил внимание: У меня было открыто окно настроек сетевых адаптером. Так вот для адаптера замыкания, сразу после включения статус "Идентификация". Судя по всему типа получить адрес. Я не пробовал адрес прописывать ручками, но подозреваю что при выводе из гибернации будет тоже самое - идентификация.
Увы не спец по сетевым технологиям и железу но подозреваю что именно в этот момент адаптер сообщает что нет соединения и из-за этого отваливается коннект.

Сейчас попробую прописать адрес ручками.
Результат сообщу
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39848844
akrush
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akrush,
забыл написать:
Все это на Win10, Firebird 3.0.... один из последних, но возможно не самый последний релиз
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39848848
akrush
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akrush,
Проверил при статическом адресе.
То же самое.
Эксперт ругается:
Error writing data to the connection

Connection will be closed immediately

Получается что если хочется работать с гибернацией - нужно использовать исключительно локальный коннект, без сетевых адресов и т.п.
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39848851
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
13.08.2019 15:29, akrush пишет:
> если хочется работать с гибернацией - нужно использовать исключительно локальный коннект, без сетевых адресов и т.п.

об чём ТС-у и было сказано с самого начала.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39848881
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akrushПолучается что если хочется работать с гибернацией - нужно использовать исключительно локальный коннект, без сетевых адресов и т.п.2.5.9 после гибернации не теряет соединение - IBExpert работает и не ругается.
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39848898
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev2.5.9 после гибернации не теряет соединение

Влад уже сказал какую настройку надо проверить.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39848901
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akrushП.С. На что я обратил внимание: У меня было открыто окно настроек сетевых адаптером. Так вот для адаптера замыкания, сразу после включения статус "Идентификация". Судя по всему типа получить адрес. Я не пробовал адрес прописывать ручками, но подозреваю что при выводе из гибернации будет тоже самое - идентификация.Это называется APIPA и данное поведение можно отключить.
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39849078
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovВлад уже сказал какую настройку надо проверить.Как и ожидалось, не помогло.
SIO_LOOPBACK_FAST_PATH работает только для фильтр-драйвера, обслуживающего 127.0.0.0/8.
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39849592
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как оказалось, последний релиз 2.5.9 тоже теряет соединение после гибернации.
На уровне обслуживания соединения fbclient.dll никакие изменения не вносились?

Попробовал использовать в параметре RemoteBindAddress два адреса привязки
Код: plaintext
RemoteBindAddress = 172.31.127.1,127.0.0.1
В качестве разделителя пробовал пробел, запятую, точку с запятой... Ничего не вышло, сервер подхватывает только последний адрес - 127.0.0.1 :( Несколько удивлён, что в XXI-ом веке серверу СУБД нельзя задать несколько адресов привязки.
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39849595
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возможно, я зря грешу на ФБ и выедаю чужой серотонин. Очень может быть, что всему виной "VirtualBox NDIS6 Bridged Network Driver", установленный не так давно вместе с соответствующим ПО.
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39849768
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devНесколько удивлён, что в XXI-ом веке серверу СУБД нельзя задать несколько адресов привязки.

А все твои собственные программы уже это умеют?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39849827
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Даже несмотря на то, что на дворе 21-й век и космические корабли бороздят просторы
большого театра, IP сокеты по-прежнему способны привязываться только на один адрес.
А чтобы сетевая подсистема сервера научилась работать с несколькими слушающими сокетами
одновременно, её надо перелопатить чуть ли не до основания.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39849911
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov, зачем перелопачивать до основания, если достаточно запустить эту подсистему в разных потоках по количеству привязок, при условии, конечно, что эта подсистема изначально грамотно спроектирована ещё до времён открытия исходных кодов InterBase и появления форков?
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39849921
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovrdb_devНесколько удивлён, что в XXI-ом веке серверу СУБД нельзя задать несколько адресов привязки.
А все твои собственные программы уже это умеют?Для этих целей я специально писал библиотечную обёртку сокетов, позволяющую делать подобное - слушать в разных потоках по количеству привязок и пинать колбэк в порождаемых потоках при получении данных, по принципу "выстрелил и забыл".
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39849922
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделай патч, если это так тривиально - делов-то ...
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39849948
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devдостаточно запустить эту подсистему в разных потоках по количеству привязок

Мнда...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39850055
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovСделай патч, если это так тривиально - делов-то ...Не выйдет! Обёртка на виртуальных методах C++.
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39850059
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovrdb_devдостаточно запустить эту подсистему в разных потоках по количеству привязок
Мнда...Ты знаешь другой способ "слушать" сокеты? Я таких не знаю... Даже реализация под вендой через сообщения, мьютексы и т.д. является лишь обёрткой, работающей с сокетами в отдельном потоке через стандартный сишный API.
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39850062
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devТы знаешь другой способ "слушать" сокеты?

select() в одном потоке. Или WSAEventSelect(), но у него есть свои мухи на большом
количестве сокетов и высокой нагрузке. В свежих версиях они пилят epoll(), но он ещё глючит.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39850181
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov, мелкософтовая WSAEventSelect(), это, как раз, та самая обёртка, о которой я писал. На мой взгляд, лучше крутить опрос сокетов "вручную" и для разных привязок использовать разные потоки, чтобы вносить в имеющийся код меньше переделок и, в большинстве случаев, использовать один поток опроса на один буфер адаптера.

Ко всему прочему, вчера я наткнулся на конфликт firebird.conf, когда проверял соединение с отключенным шифрованием. Если клиенты для 2.5.9 и 4.0b1 находятся в одном каталоге под разными именами и там же лежит firebird.conf для 4.0b1, клиент 2.5.9 отказывается подключаться, но как только убираешь из файла firebird.conf все активные параметры, кроме тех, которых нет в 2.5.9 или вовсе удаляешь файл firebird.conf, то подключение происходит нормально. Казалось бы, fbclient должен читать тот firebird.conf, что на уровень выше, а нет... Таким образом, параметр с привязками, игнорируемый клиентом и перекрывающий для сервера старые параметры привязки, стал бы решением.
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39850282
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devмелкософтовая WSAEventSelect(), это, как раз, та самая обёртка, о которой я писал

А, значит ты как обычно писал нагугленную чушь.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39850297
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devКазалось бы, fbclient должен читать тот firebird.conf, что на уровень выше, а нет... понимания изменений FB 3.0+ под виндой.
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39850322
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorovrdb_devКазалось бы, fbclient должен читать тот firebird.conf, что на уровень выше, а нет... понимания изменений FB 3.0+ под виндой.Я, таки, не понял, что ты имеешь в виду. Разве fbclient 2.5.x не хавает firebird.msg и firebird.conf каталогом выше, при том, что fbclient 3.0+ привычно хавает те же файлы в том же каталоге, где находится сам?
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39850332
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovrdb_devмелкософтовая WSAEventSelect(), это, как раз, та самая обёртка, о которой я писал
А, значит ты как обычно писал нагугленную чушь.Нет, это моё личное мнение исходя из наблюдений работы этой функции. Мелкософт упростила жизнь разработчикам, написав за них эту обёртку и собрав её в ту же библиотеку, что и Беркли сокеты - ws2_32.dll. Чудес не бывает...
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39850339
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devэто моё личное мнение исходя из наблюдений работы этой функции

И тебя не смущает, что она оперирует очередью событий непосредственно из драйвера, а
потому несёт больше информации чем select(), который, по твоим словам, она оборачивает?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39850345
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov, из драйвера чего? Сетевой карты? Ты уверен в том, что тоже самое сообщение из драйвера насквозь прилетает в event object? Зачем же тогда функция WSAEventSelect переводит сокеты в nonblocking mode, если получает всю необходимую информацию прямо из драйвера?

"The WSAEventSelect function automatically sets socket s to nonblocking mode, regardless of the value of lNetworkEvents. To set socket s back to blocking mode, it is first necessary to clear the event record associated with socket s via a call to WSAEventSelect with lNetworkEvents set to zero and the hEventObject parameter set to NULL. You can then call ioctlsocket or WSAIoctl to set the socket back to blocking mode."
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39850351
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devЗачем же тогда функция WSAEventSelect переводит сокеты в nonblocking mode, если получает
всю необходимую информацию прямо из драйвера?

Хороший вопрос на который я не знаю ответа. А у тебя есть ответ зачем нужен неблокирующий
режим при использовании унутре select-а?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39850357
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov, конечно есть! Чтобы в цикле по сокетам дёргать POSIX функции сокетов, которые тут же возвращают состояние и анализируя эти состояния посылать те или иные windows messages соответствующим event objects.
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39850359
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

У него на любой вопрос всегда есть любой ответ.
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39850367
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov, разница между WSAEventSelect() и select() лишь в том, что в первом случае ьы получаешь два параллельных цикла - в WSAEventSelect() и в WSAWaitForMultipleEvents(), а во втором случае - два последовательных цикла, первый, собственно, в select(), а второй - свой цикл, в котором нужно обработать массив после выхода из select().
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39850369
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devЧтобы в цикле по сокетам дёргать POSIX функции сокетов, которые тут же возвращают
состояние и анализируя эти состояния посылать те или иные windows messages соответствующим
event objects.

Прелестно, но в каком потоке крутится этот цикл и почему его не видно в стэке вызовов?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39850375
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov, как это "не видно"? WSAEventSelect крутит цикл в том же потоке из которого ты её вызвал.
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39850376
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devкак это "не видно"?

Да вот так: я смотрю в Call Stack моего процесса в Process Explorer и не вижу ни цикла, ни
потребляемых тиков процессора.

rdb_devWSAEventSelect крутит цикл в том же потоке из которого ты её вызвал.

WSAEventSelect вызывается для сокета ровно один раз и сразу возвращает управление мне.
Дальше всюду работает мой код.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39850394
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovrdb_devкак это "не видно"?
Да вот так: я смотрю в Call Stack моего процесса в Process Explorer и не вижу ни цикла, ни
потребляемых тиков процессора.
rdb_devWSAEventSelect крутит цикл в том же потоке из которого ты её вызвал.

WSAEventSelect вызывается для сокета ровно один раз и сразу возвращает управление мне.
Дальше всюду работает мой код.
Возможно, я перепутал работу этой функции с работой какой-то другой обёртки сокетов от MS, но принципиально это ничего не меняет - всегда есть некий массив хэндлов сокетов, по которому в цикле кто-то пробегает и опрашивая состояния неблокируемых сокетов инициирует те или иные действия меняющие состояния неких структур, отражающих состояния сокетов, а как ты анализируешь эти состояния - пробегая по массиву fd_set или по массиву объектов WSAEVENT, это уже малосущественные детали реализации. Как я уже говорил - тут чудес не бывает (если ты не используешь собственный NDIS драйвер).
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39850399
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devвсегда есть некий массив хэндлов сокетов, по которому в цикле кто-то пробегает и опрашивая
состояния неблокируемых сокетов инициирует те или иные действия меняющие состояния неких
структур, отражающих состояния сокетов

То есть вариант таблицы сокетов к которым внутри привязана очередь и эвент, которые
заполняются/взводятся непосредственно после приёма пакета тебе даже в голову не приходит?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39850407
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov, неа.
Само по себе ничего не взводится. Всегда где-то существует цикл, пробегающий по некоему ассоциативному массиву хэндлов неблокируемых сокетов и неких структур, в которых отмечается состояние сокетов.
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39850421
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov, по всей видимости, WSAEventSelect() используется лишь как инструмент для добавления пары socket handle/event object к ассоциативному массиву некой обёртки, внутри которой и крутится цикл, опрашивающий состояния неблокируемых сокетов и меняющий состояния ассоциированных с ними event objects. Потому WSAEventSelect() и переводит сокеты в неблокируемый режим, чтобы у обёртки была возможность при вызове некоей внутренней реализации чего-то, похожего на вызов select() с параметром timeout, указывающим на TIMEVAL{0,0}.
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39850613
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devКак я уже говорил - тут чудес не бывает (если ты не используешь собственный NDIS драйвер).Проблема только в том, что MS "кое-что меняла" и в драйверах и "вокруг них".
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39850653
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov, "кое-что" 1 , MS, конечно, меняла, а что-то 2 даже добавила, но тесной интеграции пользовательских процессов с ядром ждать точно не стоит.

---
1 What's New for Windows Sockets
2 Registered Input/Output (RIO) API Extensions
...
Рейтинг: 0 / 0
Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
    #39850737
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildSeryDimitry Sibiryakov, У него на любой вопрос всегда есть любой ответ.Тебя что-то смущает?
...
Рейтинг: 0 / 0
75 сообщений из 75, показаны все 3 страниц
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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