Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Firebird, InterBase Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2 3      [все]
 Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
rdb_dev
Member

Откуда: с болот
Сообщений: 2929
Перелез на бету 4-ки. После гибернации происходит разрыв соединения с базой (клиент и сервер на одном и том же десктопе), чего с 2.5.x не происходит. Это чиниться какой-нибудь настройкой или ...?
12 авг 19, 09:15    [21946798]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9831
rdb_dev,

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

Строка коннекта какая?
12 авг 19, 09:35    [21946815]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
rdb_dev
Member

Откуда: с болот
Сообщений: 2929
Симонов Денис
rdb_dev,

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

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

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

172.31.127.1/30525:another_db_alias

Оба сервера сервера Super.
12 авг 19, 09:49    [21946828]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
o_v_a
Member

Откуда: Тула
Сообщений: 1063
rdb_dev
После гибернации происходит разрыв соединения с базой (клиент и сервер на одном и том же десктопе), чего с 2.5.x не происходит. Это чиниться какой-нибудь настройкой или ...?

А проверить в диспетчере устройств, что там с настройками энергопотребления сетевого адаптера.
Не надо разрешать его отключать.
А по уму... кто ж на сервере (пускай и для разработки) использует гибернацию?!
12 авг 19, 10:28    [21946857]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
WildSery
Member

Откуда: да, оттуда.
Сообщений: 16403
o_v_a,

Ааа, **! - Сказали суровые сибирские мужики, и пошли валить лес топорами (ц)
12 авг 19, 10:39    [21946866]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
rdb_dev
Member

Откуда: с болот
Сообщений: 2929
o_v_a, ась?! Power management у "Адаптер Microsoft замыкания на себя"?
Ты бы ещё предложил проверить у фильтр-драйвера, обслуживающего 127.0.0.0/8. :)
12 авг 19, 11:02    [21946895]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
rdb_dev
Member

Откуда: с болот
Сообщений: 2929
o_v_a
А по уму... кто ж на сервере (пускай и для разработки) использует гибернацию?!
Сколько же ты вчера выпил? :)
rdb_dev
Перелез на бету 4-ки. После гибернации происходит разрыв соединения с базой (клиент и сервер на одном и том же десктопе), чего с 2.5.x не происходит. Это чиниться какой-нибудь настройкой или ...?
12 авг 19, 11:04    [21946898]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
akrush
Member

Откуда: Киев, Украина
Сообщений: 352
на 3 гибернация работает.
Тестировал один проект.
Процесс шел целый день (БОЛЬШОЙ импорт) и потом обработка после импорта.
Пора было в пятницу идти домой.
Увел комп в гибернацию - на следующий день, в субботу, включил - процесс продолжился.
Правда подключение к БД, так как это все на одном ноуте - локально, без сетевых адресов
12 авг 19, 11:20    [21946917]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
rdb_dev
Member

Откуда: с болот
Сообщений: 2929
Подключение работает без компрессии, но с шифрованием:
MON$WIRE_COMPRESSED=FALSE
MON$WIRE_ENCRYPTED=TRUE

На всякий случай приведу выдержку из firebird.conf:
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
12 авг 19, 11:28    [21946932]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
rdb_dev
Member

Откуда: с болот
Сообщений: 2929
akrush
Увел комп в гибернацию - на следующий день, в субботу, включил - процесс продолжился.
Правда подключение к БД, так как это все на одном ноуте - локально, без сетевых адресов
У тебя шифрование трафика включено?
12 авг 19, 11:29    [21946935]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 48163

Приложения при уходе в гибернацию обязаны разрывать сетевые соединения. Абы на другом
конце не было непоняток с их состоянием. Кто так не делает - ССЗБ.

Posted via ActualForum NNTP Server 1.5

12 авг 19, 12:40    [21947044]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
Arioch
Member

Откуда:
Сообщений: 10967
Dimitry Sibiryakov,

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

вообще, гибернация - это типа слепок текущего состояния ПК, чтобы потом продолжить с того еж самого места. Так что с тем же основанием можно сказать, что приложения вообще знать не должны, что такое гибернация, и что это случилось, это дело операционки. Также, например, как перетыкание USB-диска в другой порт. Для низкоуровневых приложений такое отслеживать нужно, но в общем случае - нет.
12 авг 19, 13:29    [21947113]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 30321

"на том конце" провода никто не знает что клиент не помер, а всего лишь окуклился.
а посему, вычёркивается из списка живых.

Posted via ActualForum NNTP Server 1.5

12 авг 19, 13:31    [21947114]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
Arioch
Member

Откуда:
Сообщений: 10967
Мимопроходящий
не знает что клиент не помер, а всего лишь окуклился.


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

в том, что через месяц одного клиента из гибернации выведут, а другого отправят на переплавку из гибернации не выводя? так это будет только в будущем, здесь и сейчас этого никто не знает, и следовательно сиюминутно - разницы просто нет
12 авг 19, 13:46    [21947134]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 30321

12.08.2019 13:46, Arioch пишет:
> следовательно сиюминутно - разницы просто нет

дык и я об том же

Posted via ActualForum NNTP Server 1.5

12 авг 19, 13:47    [21947137]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
WildSery
Member

Откуда: да, оттуда.
Сообщений: 16403
Мимопроходящий,

А даже если б знал. Вдруг он реанимируется через полгода? Так и держать его коннект с его снэпшотом?
12 авг 19, 13:47    [21947138]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
Arioch
Member

Откуда:
Сообщений: 10967
но это - когда существует "другой конец провода", чего у топикстартера нет

сервера и клиента замораживают и размораживают одновременно
12 авг 19, 13:48    [21947139]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 30321

12.08.2019 13:48, Arioch пишет:
> сервера и клиента замораживают и размораживают одновременно

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

Posted via ActualForum NNTP Server 1.5

12 авг 19, 13:50    [21947141]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 28117
Мимопроходящий,

Сказали ведь, "клиент и сервер на одном и том же десктопе".
Чего флудить фантазиями на тему гибернации разных компов?
12 авг 19, 14:53    [21947214]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 30321
12.08.2019 14:53, kdv пишет:
> Сказали ведь, "клиент и сервер на одном и том же десктопе".

совершенно ***
12 авг 19, 14:55    [21947217]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 48163

kdv
Сказали ведь, "клиент и сервер на одном и том же десктопе".

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

Поэтому повторяю: правильные приложения должны закрывать все сетевые коннекты при гибернации.

Posted via ActualForum NNTP Server 1.5

12 авг 19, 15:04    [21947224]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 28117
Dimitry Sibiryakov,

как ты себе представляешь режим гибернации?
Ничего, что сохраняется "замороженное" состояние памяти?
У меня что десктоп, что ноут, выключаются в 90% случаев в режим гибернации или сна.
И ничего, локальные tcp коннекты вполне себе сохраняются (например FB + какая-то программа).
Почему это внутренние tcp-соединения должны закрываться, с какой целью???
12 авг 19, 15:34    [21947265]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 30321

12.08.2019 15:34, kdv пишет:
> Ничего, что сохраняется "замороженное" состояние памяти?

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

зы: не нужно фантазировать опираясь на "банальную эрудицию"

Posted via ActualForum NNTP Server 1.5

12 авг 19, 15:36    [21947269]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
WildSery
Member

Откуда: да, оттуда.
Сообщений: 16403
"Локальные TCP коннекты" :)
12 авг 19, 15:43    [21947280]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
hvlad
Member

Откуда:
Сообщений: 10531
Попробуй

TcpLoopbackFastPath = 0

я других "радикальных" изменений в нашем INET не помню.
Ну, IPv6 ещё, но это вроде не при чём.
12 авг 19, 15:45    [21947284]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
rdb_dev
Member

Откуда: с болот
Сообщений: 2929
hvlad, не проканает. У меня сервак висит не на фильтр-драйвере 127.0.0.0/8, а на программном адаптере Microsoft loopback, который ставится из драйверов. Я на этот адаптер ещё виртуалки вешаю с них же, порой, и тестирую.
12 авг 19, 16:02    [21947310]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 28117
Мимопроходящий,

так, стоп.
- у ФБ 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 - вот ёп, опять всё работает.

Что я сделал не так?
12 авг 19, 16:06    [21947314]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
rdb_dev
Member

Откуда: с болот
Сообщений: 2929
hvlad
Ну, IPv6 ещё, но это вроде не при чём.
Это у меня вообще отключено через:
reg add "HKLM\SYSTEM\CurrentControlSet\services\TCPIP6\Parameters"^
/v "DisabledComponents" /t "REG_DWORD" /d 0x20

Шифрование как-то может влиять? Может по времени сбивается какая-то последовательность, используемая в шифровании?
12 авг 19, 16:07    [21947319]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
ёёёёё
Member

Откуда:
Сообщений: 740
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 - вот ёп, опять всё работает.

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


Оборудование у тебя другое, и настройки. Ему - "повезло", тебе - нет. :)
12 авг 19, 16:10    [21947325]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
hvlad
Member

Откуда:
Сообщений: 10531
rdb_dev
hvlad, не проканает
Ну тогда продолжай вести монологи. Ты сам всё за всех знаешь.
12 авг 19, 16:12    [21947328]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
rdb_dev
Member

Откуда: с болот
Сообщений: 2929
kdv
Перевожу комп в режим сна. Включаю опять. Повторяю запрос в IBE - все нормально, никаких проблем.
Перевожу комп в гибернацию, включаю. Повторяю запрос в IBE - вот ёп, опять всё работает.

Что я сделал не так?
Использовал фильтр-драйвер 127.0.0.0/8, вместо "Адаптер Microsoft замыкания на себя"?
12 авг 19, 16:14    [21947330]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 28117
rdb_dev,

это понятно. Но ставить MS loopback adapter как-то геморройно, и мне оно незачем. Пусть еще кто-то проверит.
https://support.microsoft.com/ru-ru/help/842561/how-to-install-the-microsoft-loopback-adapter-in-microsoft-windows-ser
12 авг 19, 16:53    [21947379]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
rdb_dev
Member

Откуда: с болот
Сообщений: 2929
kdv, во всех современных Windows он уже есть и ставится элементарно из "Диспетчера устройст":
1. Правой кнопкой по корню, в "Диспетчере устройств",
2. "Установить старое устройство",
3. "Установка оборудования, выбранного из списка вручную",
4. "Сетевые адаптеры",
5. "Microsoft",
6. "Адаптер Microsoft замыкания на себя".
12 авг 19, 20:07    [21947513]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 28117
rdb_dev,

спасибо, вижу, но не хочу. Пусть кто-нибудь из оппонентов проверит.
12 авг 19, 21:33    [21947540]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
rdb_dev
Member

Откуда: с болот
Сообщений: 2929
kdv, я не настаиваю. Лишь привёл порядок установки для тех, кому интересно.
12 авг 19, 22:42    [21947580]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
akrush
Member

Откуда: Киев, Украина
Сообщений: 352
rdb_dev,
Проверил.
Установил "Адаптер замыкания..." (у меня 10)
Запустил IBExpert, в коннекте к БД прописал адрес адаптера.
Подключился, выполнил запрос в одной из таблиц, грубо говоря, select * from
Вот на таком состоянии, просмотр результата запроса, увел ноут в гибернацию.

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

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

Сейчас попробую прописать адрес ручками.
Результат сообщу
13 авг 19, 15:23    [21948228]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
akrush
Member

Откуда: Киев, Украина
Сообщений: 352
akrush,
забыл написать:
Все это на Win10, Firebird 3.0.... один из последних, но возможно не самый последний релиз
13 авг 19, 15:25    [21948232]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
akrush
Member

Откуда: Киев, Украина
Сообщений: 352
akrush,
Проверил при статическом адресе.
То же самое.
Эксперт ругается:
Error writing data to the connection

Connection will be closed immediately

Получается что если хочется работать с гибернацией - нужно использовать исключительно локальный коннект, без сетевых адресов и т.п.
13 авг 19, 15:29    [21948240]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 30321

13.08.2019 15:29, akrush пишет:
> если хочется работать с гибернацией - нужно использовать исключительно локальный коннект, без сетевых адресов и т.п.

об чём ТС-у и было сказано с самого начала.

Posted via ActualForum NNTP Server 1.5

13 авг 19, 15:32    [21948245]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
rdb_dev
Member

Откуда: с болот
Сообщений: 2929
akrush
Получается что если хочется работать с гибернацией - нужно использовать исключительно локальный коннект, без сетевых адресов и т.п.
2.5.9 после гибернации не теряет соединение - IBExpert работает и не ругается.
13 авг 19, 16:23    [21948307]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 48163

rdb_dev
2.5.9 после гибернации не теряет соединение

Влад уже сказал какую настройку надо проверить.

Posted via ActualForum NNTP Server 1.5

13 авг 19, 16:40    [21948336]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
rdb_dev
Member

Откуда: с болот
Сообщений: 2929
akrush
П.С. На что я обратил внимание: У меня было открыто окно настроек сетевых адаптером. Так вот для адаптера замыкания, сразу после включения статус "Идентификация". Судя по всему типа получить адрес. Я не пробовал адрес прописывать ручками, но подозреваю что при выводе из гибернации будет тоже самое - идентификация.
Это называется APIPA и данное поведение можно отключить.
13 авг 19, 16:42    [21948340]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
rdb_dev
Member

Откуда: с болот
Сообщений: 2929
Dimitry Sibiryakov
Влад уже сказал какую настройку надо проверить.
Как и ожидалось, не помогло.
SIO_LOOPBACK_FAST_PATH работает только для фильтр-драйвера, обслуживающего 127.0.0.0/8.
14 авг 19, 09:23    [21948818]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
rdb_dev
Member

Откуда: с болот
Сообщений: 2929
Как оказалось, последний релиз 2.5.9 тоже теряет соединение после гибернации.
На уровне обслуживания соединения fbclient.dll никакие изменения не вносились?

Попробовал использовать в параметре RemoteBindAddress два адреса привязки
RemoteBindAddress = 172.31.127.1,127.0.0.1
В качестве разделителя пробовал пробел, запятую, точку с запятой... Ничего не вышло, сервер подхватывает только последний адрес - 127.0.0.1 :( Несколько удивлён, что в XXI-ом веке серверу СУБД нельзя задать несколько адресов привязки.
15 авг 19, 09:22    [21949802]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
rdb_dev
Member

Откуда: с болот
Сообщений: 2929
Возможно, я зря грешу на ФБ и выедаю чужой серотонин. Очень может быть, что всему виной "VirtualBox NDIS6 Bridged Network Driver", установленный не так давно вместе с соответствующим ПО.
15 авг 19, 09:26    [21949806]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 48163

rdb_dev
Несколько удивлён, что в XXI-ом веке серверу СУБД нельзя задать несколько адресов привязки.

А все твои собственные программы уже это умеют?

Posted via ActualForum NNTP Server 1.5

15 авг 19, 13:51    [21950087]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 48163

Даже несмотря на то, что на дворе 21-й век и космические корабли бороздят просторы
большого театра, IP сокеты по-прежнему способны привязываться только на один адрес.
А чтобы сетевая подсистема сервера научилась работать с несколькими слушающими сокетами
одновременно, её надо перелопатить чуть ли не до основания.

Posted via ActualForum NNTP Server 1.5

15 авг 19, 15:06    [21950179]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
rdb_dev
Member

Откуда: с болот
Сообщений: 2929
Dimitry Sibiryakov, зачем перелопачивать до основания, если достаточно запустить эту подсистему в разных потоках по количеству привязок, при условии, конечно, что эта подсистема изначально грамотно спроектирована ещё до времён открытия исходных кодов InterBase и появления форков?
15 авг 19, 16:45    [21950309]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
rdb_dev
Member

Откуда: с болот
Сообщений: 2929
Dimitry Sibiryakov
rdb_dev
Несколько удивлён, что в XXI-ом веке серверу СУБД нельзя задать несколько адресов привязки.
А все твои собственные программы уже это умеют?
Для этих целей я специально писал библиотечную обёртку сокетов, позволяющую делать подобное - слушать в разных потоках по количеству привязок и пинать колбэк в порождаемых потоках при получении данных, по принципу "выстрелил и забыл".
15 авг 19, 16:50    [21950319]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 9302
Сделай патч, если это так тривиально - делов-то ...
15 авг 19, 16:50    [21950320]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 48163

rdb_dev
достаточно запустить эту подсистему в разных потоках по количеству привязок

Мнда...

Posted via ActualForum NNTP Server 1.5

15 авг 19, 17:17    [21950359]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
rdb_dev
Member

Откуда: с болот
Сообщений: 2929
Basil A. Sidorov
Сделай патч, если это так тривиально - делов-то ...
Не выйдет! Обёртка на виртуальных методах C++.
15 авг 19, 21:58    [21950532]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
rdb_dev
Member

Откуда: с болот
Сообщений: 2929
Dimitry Sibiryakov
rdb_dev
достаточно запустить эту подсистему в разных потоках по количеству привязок
Мнда...
Ты знаешь другой способ "слушать" сокеты? Я таких не знаю... Даже реализация под вендой через сообщения, мьютексы и т.д. является лишь обёрткой, работающей с сокетами в отдельном потоке через стандартный сишный API.
15 авг 19, 22:02    [21950536]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 48163

rdb_dev
Ты знаешь другой способ "слушать" сокеты?

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

Posted via ActualForum NNTP Server 1.5

15 авг 19, 22:06    [21950541]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
rdb_dev
Member

Откуда: с болот
Сообщений: 2929
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, что на уровень выше, а нет... Таким образом, параметр с привязками, игнорируемый клиентом и перекрывающий для сервера старые параметры привязки, стал бы решением.
16 авг 19, 10:07    [21950752]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 48163

rdb_dev
мелкософтовая WSAEventSelect(), это, как раз, та самая обёртка, о которой я писал

А, значит ты как обычно писал нагугленную чушь.

Posted via ActualForum NNTP Server 1.5

16 авг 19, 12:15    [21950908]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 9302
rdb_dev
Казалось бы, fbclient должен читать тот firebird.conf, что на уровень выше, а нет
... понимания изменений FB 3.0+ под виндой.
16 авг 19, 12:40    [21950928]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
rdb_dev
Member

Откуда: с болот
Сообщений: 2929
Basil A. Sidorov
rdb_dev
Казалось бы, fbclient должен читать тот firebird.conf, что на уровень выше, а нет
... понимания изменений FB 3.0+ под виндой.
Я, таки, не понял, что ты имеешь в виду. Разве fbclient 2.5.x не хавает firebird.msg и firebird.conf каталогом выше, при том, что fbclient 3.0+ привычно хавает те же файлы в том же каталоге, где находится сам?
16 авг 19, 13:05    [21950969]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
rdb_dev
Member

Откуда: с болот
Сообщений: 2929
Dimitry Sibiryakov
rdb_dev
мелкософтовая WSAEventSelect(), это, как раз, та самая обёртка, о которой я писал
А, значит ты как обычно писал нагугленную чушь.
Нет, это моё личное мнение исходя из наблюдений работы этой функции. Мелкософт упростила жизнь разработчикам, написав за них эту обёртку и собрав её в ту же библиотеку, что и Беркли сокеты - ws2_32.dll. Чудес не бывает...
16 авг 19, 13:23    [21950987]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 48163

rdb_dev
это моё личное мнение исходя из наблюдений работы этой функции

И тебя не смущает, что она оперирует очередью событий непосредственно из драйвера, а
потому несёт больше информации чем select(), который, по твоим словам, она оборачивает?..

Posted via ActualForum NNTP Server 1.5

16 авг 19, 13:32    [21951003]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
rdb_dev
Member

Откуда: с болот
Сообщений: 2929
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."
16 авг 19, 13:40    [21951012]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 48163

rdb_dev
Зачем же тогда функция WSAEventSelect переводит сокеты в nonblocking mode, если получает
всю необходимую информацию прямо из драйвера?

Хороший вопрос на который я не знаю ответа. А у тебя есть ответ зачем нужен неблокирующий
режим при использовании унутре select-а?

Posted via ActualForum NNTP Server 1.5

16 авг 19, 13:49    [21951025]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
rdb_dev
Member

Откуда: с болот
Сообщений: 2929
Dimitry Sibiryakov, конечно есть! Чтобы в цикле по сокетам дёргать POSIX функции сокетов, которые тут же возвращают состояние и анализируя эти состояния посылать те или иные windows messages соответствующим event objects.
16 авг 19, 13:55    [21951036]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
WildSery
Member

Откуда: да, оттуда.
Сообщений: 16403
Dimitry Sibiryakov,

У него на любой вопрос всегда есть любой ответ.
16 авг 19, 13:57    [21951038]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
rdb_dev
Member

Откуда: с болот
Сообщений: 2929
Dimitry Sibiryakov, разница между WSAEventSelect() и select() лишь в том, что в первом случае ьы получаешь два параллельных цикла - в WSAEventSelect() и в WSAWaitForMultipleEvents(), а во втором случае - два последовательных цикла, первый, собственно, в select(), а второй - свой цикл, в котором нужно обработать массив после выхода из select().
16 авг 19, 14:08    [21951050]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 48163

rdb_dev
Чтобы в цикле по сокетам дёргать POSIX функции сокетов, которые тут же возвращают
состояние и анализируя эти состояния посылать те или иные windows messages соответствующим
event objects.

Прелестно, но в каком потоке крутится этот цикл и почему его не видно в стэке вызовов?

Posted via ActualForum NNTP Server 1.5

16 авг 19, 14:08    [21951052]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
rdb_dev
Member

Откуда: с болот
Сообщений: 2929
Dimitry Sibiryakov, как это "не видно"? WSAEventSelect крутит цикл в том же потоке из которого ты её вызвал.
16 авг 19, 14:15    [21951060]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 48163

rdb_dev
как это "не видно"?

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

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

WSAEventSelect вызывается для сокета ровно один раз и сразу возвращает управление мне.
Дальше всюду работает мой код.

Posted via ActualForum NNTP Server 1.5

16 авг 19, 14:18    [21951062]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
rdb_dev
Member

Откуда: с болот
Сообщений: 2929
Dimitry Sibiryakov
rdb_dev
как это "не видно"?
Да вот так: я смотрю в Call Stack моего процесса в Process Explorer и не вижу ни цикла, ни
потребляемых тиков процессора.
rdb_dev
WSAEventSelect крутит цикл в том же потоке из которого ты её вызвал.

WSAEventSelect вызывается для сокета ровно один раз и сразу возвращает управление мне.
Дальше всюду работает мой код.
Возможно, я перепутал работу этой функции с работой какой-то другой обёртки сокетов от MS, но принципиально это ничего не меняет - всегда есть некий массив хэндлов сокетов, по которому в цикле кто-то пробегает и опрашивая состояния неблокируемых сокетов инициирует те или иные действия меняющие состояния неких структур, отражающих состояния сокетов, а как ты анализируешь эти состояния - пробегая по массиву fd_set или по массиву объектов WSAEVENT, это уже малосущественные детали реализации. Как я уже говорил - тут чудес не бывает (если ты не используешь собственный NDIS драйвер).
16 авг 19, 14:46    [21951091]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 48163

rdb_dev
всегда есть некий массив хэндлов сокетов, по которому в цикле кто-то пробегает и опрашивая
состояния неблокируемых сокетов инициирует те или иные действия меняющие состояния неких
структур, отражающих состояния сокетов

То есть вариант таблицы сокетов к которым внутри привязана очередь и эвент, которые
заполняются/взводятся непосредственно после приёма пакета тебе даже в голову не приходит?..

Posted via ActualForum NNTP Server 1.5

16 авг 19, 14:56    [21951097]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
rdb_dev
Member

Откуда: с болот
Сообщений: 2929
Dimitry Sibiryakov, неа.
Само по себе ничего не взводится. Всегда где-то существует цикл, пробегающий по некоему ассоциативному массиву хэндлов неблокируемых сокетов и неких структур, в которых отмечается состояние сокетов.
16 авг 19, 15:05    [21951108]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
rdb_dev
Member

Откуда: с болот
Сообщений: 2929
Dimitry Sibiryakov, по всей видимости, WSAEventSelect() используется лишь как инструмент для добавления пары socket handle/event object к ассоциативному массиву некой обёртки, внутри которой и крутится цикл, опрашивающий состояния неблокируемых сокетов и меняющий состояния ассоциированных с ними event objects. Потому WSAEventSelect() и переводит сокеты в неблокируемый режим, чтобы у обёртки была возможность при вызове некоей внутренней реализации чего-то, похожего на вызов select() с параметром timeout, указывающим на TIMEVAL{0,0}.
16 авг 19, 15:28    [21951132]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 9302
rdb_dev
Как я уже говорил - тут чудес не бывает (если ты не используешь собственный NDIS драйвер).
Проблема только в том, что MS "кое-что меняла" и в драйверах и "вокруг них".
17 авг 19, 02:33    [21951587]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
rdb_dev
Member

Откуда: с болот
Сообщений: 2929
Basil A. Sidorov, "кое-что"1, MS, конечно, меняла, а что-то2 даже добавила, но тесной интеграции пользовательских процессов с ядром ждать точно не стоит.

---
1 What's New for Windows Sockets
2 Registered Input/Output (RIO) API Extensions
17 авг 19, 11:54    [21951659]     Ответить | Цитировать Сообщить модератору
 Re: Напрягает разрыв соединения после гибернации. С этим что-то можно сделать?  [new]
rdb_dev
Member

Откуда: с болот
Сообщений: 2929
WildSery
Dimitry Sibiryakov, У него на любой вопрос всегда есть любой ответ.
Тебя что-то смущает?
18 авг 19, 01:27    [21951880]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2 3      [все]
Все форумы / Firebird, InterBase Ответить