|
Отваливается соединение
|
|||
---|---|---|---|
#18+
Здравствуйте, прошу помощи ) Конфигурация такая Ubuntu 13.10/3.11.0-26/Firebird 1.5.6 На сервере одна база данных, подключение происходит из клиента под Windows. Проблема в том, что если оставить клиента на 20-30 минут без активности, то соединение обрывается при этом в firebird.log появляется строка Код: plaintext 1.
Читал вот эту статью, пробовал разные значения, ничего не меняется. Сейчас значения такие: Код: plaintext 1. 2. 3. 4. 5. 6.
В firebird.conf выставлен ConnectionTimeout = 300, а DummyPacketInterval закомментирован. Мониторю трафик до и от сервера через WireShark, но keepalive-пакетов там не ходит совсем, ssh-подключение не отваливается, пинги тоже идут без потерь, проблема только с Firebird. Благодарю за помощь. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2016, 08:19 |
|
Отваливается соединение
|
|||
---|---|---|---|
#18+
chebyrek, говорят, что Windows сама снимает соединение, если оно долго не используется. Я когда-то (еще на FB 1.0) решал "проблему" в лоб: по таймеру, раз в 5 минут делал запросы к серверу, что-то вроде select 1 from rdb$database. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2016, 08:26 |
|
Отваливается соединение
|
|||
---|---|---|---|
#18+
Говорят, Дело в том, что у меня нет исходников клиента, а связь с разработчиками утеряна еще до того как я пришел на это место, программа где-то 2005-2006 года выпуска. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2016, 08:31 |
|
Отваливается соединение
|
|||
---|---|---|---|
#18+
Написать обертку над gds32, которая будет "пинговать"? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2016, 09:05 |
|
Отваливается соединение
|
|||
---|---|---|---|
#18+
wadman, оу, тут я не мастер ) Если поделитесь ссылкой на что-то похожее, я попробую ) Сейчас заметил, что если одновременно запустить несколько клиентов и работать только в одном, то остальные отвалятся, а то в котором работаешь - нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2016, 09:19 |
|
Отваливается соединение
|
|||
---|---|---|---|
#18+
wadmanНаписать обертку над gds32, которая будет "пинговать"? :) Как ты контекст tcp коннекта получишь? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2016, 09:23 |
|
Отваливается соединение
|
|||
---|---|---|---|
#18+
wadman, И вот еще, у меня есть еще один самописный "клиент" к этой базе, он каждые 2 минуты забирает из базы данные, пишет их в csv и пересылает на другой сервер, он запущен на той же машине вместе с обычным клиентом. И он не отваливается. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2016, 09:24 |
|
Отваливается соединение
|
|||
---|---|---|---|
#18+
chebyrekwadman, И вот еще, у меня есть еще один самописный "клиент" к этой базе, он каждые 2 минуты забирает из базы данные, пишет их в csv и пересылает на другой сервер, он запущен на той же машине вместе с обычным клиентом. И он не отваливается. Потому что авторон каждые 2 минуты ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2016, 09:26 |
|
Отваливается соединение
|
|||
---|---|---|---|
#18+
Как ты, ведмедьwadmanНаписать обертку над gds32, которая будет "пинговать"? :) Как ты контекст tcp коннекта получишь? Зачем? Обертка - это такая штука, которая через себя пропускает весь функционал gds32, вызывая оригинальную dll. chebyrekЕсли поделитесь ссылкой на что-то похожее, я попробую ) Проблемно... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2016, 09:41 |
|
Отваливается соединение
|
|||
---|---|---|---|
#18+
А нельзя ли просто клиентскую библиотеку заменить на более новую? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2016, 09:46 |
|
Отваливается соединение
|
|||
---|---|---|---|
#18+
Говорятchebyrek, говорят, что Windows сама снимает соединение, если оно долго не используется. Я когда-то (еще на FB 1.0) решал "проблему" в лоб: по таймеру, раз в 5 минут делал запросы к серверу, что-то вроде select 1 from rdb$database. Это слишком сложно. Достаточно "периодически" запрашивать информацию о сервере/базе данных через isc_database_info. Что то типа Код: 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. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35.
Клиентская библиотека не кэширует эту информацию, так что в результате на сервер уходит пакет и от него приходит ответ. Можно вообще ничего не запрашивать, а передать "пустой" список db_items - {isc_api::ibp_isc_info_end}; Тоже пока работает. --- Кстати периодическое дерганье сервера это не только три-четыре килограмма в случае FB2.1+ помогает проталкивать на сервер отложенные пакеты и устраняет адские тормоза с очисткой массива этих отложенных пакетов. Как-то так. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2016, 10:29 |
|
Отваливается соединение
|
|||
---|---|---|---|
#18+
Коваленко Дмитрий, Как я понял, обрывание связи это стандартное поведение сервера firebird и никак от него не избавиться, если нет возможности поправить код клиента? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2016, 10:35 |
|
Отваливается соединение
|
|||
---|---|---|---|
#18+
chebyrekКоваленко Дмитрий, Как я понял, обрывание связи это стандартное поведение сервера firebird и никак от него не избавиться, если нет возможности поправить код клиента? 18962066 - ? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2016, 10:36 |
|
Отваливается соединение
|
|||
---|---|---|---|
#18+
А нельзя ли просто, в смысле скачать более новый gds32.dll? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2016, 10:38 |
|
Отваливается соединение
|
|||
---|---|---|---|
#18+
?????, я сейчас скачал firebird-2.5, взял из него fbclient.dll, переименовал в gds32.dll и положил в папку с клиентом. Ничего не изменилось, даже быстрее отвалилось ) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2016, 10:43 |
|
Отваливается соединение
|
|||
---|---|---|---|
#18+
Говорятговорят, что Windows сама снимает соединение, если оно долго не используется. Нагло врут. Ни Windows ни клиент Firebird этого не делают. Это работа какого-то софта или железа на пути. Наиболее известны таким поведением Comodo Firewall, NOD32, Cisco. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2016, 11:58 |
|
Отваливается соединение
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovГоворятговорят, что Windows сама снимает соединение, если оно долго не используется. Нагло врут. Ни Windows ни клиент Firebird этого не делают. Это работа какого-то софта или железа на пути. Наиболее известны таким поведением Comodo Firewall, NOD32, Cisco. Что это меняет? Что-то "снимает соединение". Куда проще "пинговать" связь, чем искать очередного "зловреда". ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2016, 12:06 |
|
Отваливается соединение
|
|||
---|---|---|---|
#18+
Что это меняетКуда проще "пинговать" связь, чем искать очередного "зловреда". Без исходников приложения пинговать ты будешь как?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2016, 12:16 |
|
Отваливается соединение
|
|||
---|---|---|---|
#18+
chebyrek, А и правда. На машине с виндой антивирь есть? Отключить для теста на время пробовали? Между клиентом и сервером что-то кроме свичей есть? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2016, 13:26 |
|
Отваливается соединение
|
|||
---|---|---|---|
#18+
miwaonlineМежду клиентом и сервером что-то кроме свичей есть? Ставлю на WiFi роутер. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2016, 13:33 |
|
Отваливается соединение
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, inject dll во все процессы если процесс - нужный, то активируемся и обшариваем открытые порты если находим 3050 - запускаем фоновый поток idle-приоритета и из него периодически туда какую-нибудь пустышку в wire protocol пихаем. геморрой конечно, но в принципе и без исходников можно ...а если из gds32.dll можно хэндл коннекта выташить... а ведь можно! - перехватываем какой-нибудь вызов isc_..., ждём пока приложение его вызовет и вытаскиваем из параметров хендл, после чего запускаем фоновый поток и т.д.... PS. если программа в процессе работы может закрывать/переоткрывать соединения или того паче выгружать и заново загружать клиента - то потребуется и на это заложиться. Но большинство программ так не делают. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2016, 14:46 |
|
Отваливается соединение
|
|||
---|---|---|---|
#18+
Я таки сделал обертку. Жаль, IBExpert нормально с ней живет ровно до детача. Из плюсов: теперь можно видеть всё, что делает программа с сервером и даже старому приложению (которое только с gds32 умеет) можно указывать, что и откуда грузить. Осталось прикрутить механизм пинга. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2016, 15:33 |
|
Отваливается соединение
|
|||
---|---|---|---|
#18+
Arioch, не понимаю, зачем такие страшные фантазии. разве что для развития собственного интеллекта. но так это никуда не годится - из фонового процесса ты никогда не поймешь, решит в следующую секунду основной процесс дернуть коннект, или нет. А следовательно, это все - карточный домик. Так что, если и можно такое сделать, то только подменой клиентской части, типа прокси, между приложением и настоящей клиентской частью. Теоретически может такое кто-то и делал, только я об этом не слышал. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2016, 15:33 |
|
Отваливается соединение
|
|||
---|---|---|---|
#18+
wadmanЯ таки сделал обертку. гигант! ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2016, 15:34 |
|
Отваливается соединение
|
|||
---|---|---|---|
#18+
авторА и правда. На машине с виндой антивирь есть? Отключить для теста на время пробовали? Между клиентом и сервером что-то кроме свичей есть? miwaonlineМежду клиентом и сервером что-то кроме свичей есть? Ставлю на WiFi роутер. Сервер этот виртуальный,находится в датацентре, так что между мной и сервером много чего быть может. Если говорить об оборудовании с моей стороны, то в данный момент подо мной машинка с Windows 7, ходит в интернет напрямую через циску, без прокси, шлюзов и т.п, антивирус отключен. В остальных офисах, компьютеры с windows 8.1, выходят в интернет через Wi-fi роутеры, так же без прокси и шлюзов, антивирус только встроенный в Windows. Вот и не смотря на то, что железки везде разные, проблема одна и время, через которое происходит обрыв примерно одно. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2016, 03:11 |
|
Отваливается соединение
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovГоворятговорят, что Windows сама снимает соединение, если оно долго не используется. Нагло врут. Ни Windows ни клиент Firebird этого не делают. Это работа какого-то софта или железа на пути. Наиболее известны таким поведением Comodo Firewall, NOD32, Cisco. Опять же, почему тогда ssh-соединение не обрывается.Допустим, открыт клиент базы и ssh-сессия в putty, бездействуем полчаса, wireshark показывает, что никаких пакетов между мной и сервером не было, проверяем клиент - отвалился, проверяем putty - работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2016, 03:18 |
|
Отваливается соединение
|
|||
---|---|---|---|
#18+
chebyrekОпять же, почему тогда ssh-соединение не обрывается. Его может держать и putty и сервер. Аналогичного механизма нет ни в fb, ни в его клиентской части (fbclient). Все ложится на хлипкие плечи разработчика. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2016, 08:50 |
|
Отваливается соединение
|
|||
---|---|---|---|
#18+
Резюмируя: 1. В самом fb нет механизма обрывающего или, наоборот, поддерживающего соединения 2. Вероятнее всего соединение рвет какая-то нехорошая железка/программа установленная на пути между клиентом и сервером Верно? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2016, 09:02 |
|
Отваливается соединение
|
|||
---|---|---|---|
#18+
chebyrekходит в интернет напрямую через циску "А вот и он, больной зуб." (с) www.google.cz/search?nord=1&q=cisco+idle+timeout chebyrekпочему тогда ssh-соединение не обрывается.Допустим, открыт клиент базы и ssh-сессия в putty А у меня - обрывается. Такой же киской. Возможно, твоя модель имеет разные настройки для разных протоколов. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2016, 11:41 |
|
Отваливается соединение
|
|||
---|---|---|---|
#18+
chebyrekВ самом fb нет механизма обрывающего или, наоборот, поддерживающего соединения Теперь есть :) @me.ru /files/gds32a.zip Кратко, как приготовить: 1. Удалить отовсюду gds32.dll 2. Переименовать gds32a.dll в gds32.dll и выложить в system32 (WOW64), либо в папку приложения 3. Переименовать IBExpert.gds (на нем тренировался) в название нужного исполняемого файла.gds и положить рядом с этим файлом 4. Настроить/заполнить как нужно файл приложение.gds (библиотеку лучше брать fbclient.dll, либо gds32 из папки Firebird) 5. На первое время рекомендую формировать лог=1 и если ошибок не будет, то потом отключить П.С. Не тестировал под интенсивной нагрузкой, но ibexpert не падает. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2016, 13:40 |
|
Отваливается соединение
|
|||
---|---|---|---|
#18+
chebyrek1. В самом fb нет механизма обрывающего или, наоборот, поддерживающего соединения Есть. Но это же конфиг читать надо... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2016, 13:46 |
|
Отваливается соединение
|
|||
---|---|---|---|
#18+
kdv, ну не без того, да. зато - весело. поправка принята. Если в процессе пинга по конкретному хэндлу (а пинговать надо все открытые) приходить с тем же хэндлом запрос - его приславший поток примораживается до прихода понга. насчет прокси-клиента - это кстати возможно была бы нелохая штатная функциональность, причём логирование/мониторинг/пинговалка - даже вторично, а первично бы - проверка корректности протокола обмена, защита от крешей/взлома, "проверка контракта" кстати, а нужен ли в данном случае прокси именно в виде подмены клиентской либы? а если туннелировать к удалённому серверу через локальный - не замётся ли промежуточный сервер поддержанием коннекта от разрывов по таймауту ? Ну если ему конф-файл соответсвенно прописать ? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2016, 15:33 |
|
Отваливается соединение
|
|||
---|---|---|---|
#18+
О! ещё одна гениально-идиотская идея. Завести в FB database trigger срабатывающий по таймеру в автономной транзакции И пусть на клиентов делает post_event вот тебе и пинговалка осталось придумать как в программу без исходников подбросить регистрацию на этот ивент ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2016, 15:37 |
|
Отваливается соединение
|
|||
---|---|---|---|
#18+
Arioch... Завести в FB database trigger срабатывающий по таймеру в автономной транзакции ... Прикинь, как оживится местный (и не только) форум по ib/fb... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2016, 15:57 |
|
Отваливается соединение
|
|||
---|---|---|---|
#18+
А сделать по науке, т.е. поднять ВПН и всю движуху по 3050 порту вести внутри ВПН-а, кто-нибудь предложил? А то все больше прыжки в ширину какие-то. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2016, 15:58 |
|
Отваливается соединение
|
|||
---|---|---|---|
#18+
Ivan_Pisarevsky, так у них наверняка Циска и занимается VPNом, инае она зачем такая дорогая нужна... https://supportforums.cisco.com/discussion/10895346/logoff-idle-vpn-users-possible-asa-5520 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2016, 16:27 |
|
Отваливается соединение
|
|||
---|---|---|---|
#18+
wadman, как скачать? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2016, 03:10 |
|
Отваливается соединение
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Подскажите если знаете, я нашел в конфиге только ConnectionTimeout и DummyPacketInterval, ничто из этого не помогает ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2016, 03:11 |
|
Отваливается соединение
|
|||
---|---|---|---|
#18+
wadmanchebyrekВ самом fb нет механизма обрывающего или, наоборот, поддерживающего соединения Теперь есть :) @me.ru /files/gds32a.zip Кратко, как приготовить: 1. Удалить отовсюду gds32.dll 2. Переименовать gds32a.dll в gds32.dll и выложить в system32 (WOW64), либо в папку приложения 3. Переименовать IBExpert.gds (на нем тренировался) в название нужного исполняемого файла.gds и положить рядом с этим файлом 4. Настроить/заполнить как нужно файл приложение.gds (библиотеку лучше брать fbclient.dll, либо gds32 из папки Firebird) 5. На первое время рекомендую формировать лог=1 и если ошибок не будет, то потом отключить П.С. Не тестировал под интенсивной нагрузкой, но ibexpert не падает. Я нашел как скачать, но что-то оно не завелось, клиент не запускается совсем, ibexpert запускается, но вылетает при попытке соединения ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2016, 04:57 |
|
Отваливается соединение
|
|||
---|---|---|---|
#18+
AriochIvan_Pisarevsky, так у них наверняка Циска и занимается VPNом, инае она зачем такая дорогая нужна... https://supportforums.cisco.com/discussion/10895346/logoff-idle-vpn-users-possible-asa-5520 Я уже говорил, что в других офисах обычные wi-fi роутеры и там тоже обрывается, так что врядли дело в циске ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2016, 05:49 |
|
Отваливается соединение
|
|||
---|---|---|---|
#18+
chebyrekЯ нашел как скачать, но что-то оно не завелось, клиент не запускается совсем, ibexpert запускается, но вылетает при попытке соединения Можешь кинуть конфиг (лог, если есть) и оригинальный gds32 на self@me. Может подскажу что... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2016, 08:41 |
|
Отваливается соединение
|
|||
---|---|---|---|
#18+
wadmanМожет подскажу что... Ставлю на то, что лог пытается писАться внитуда. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2016, 08:51 |
|
Отваливается соединение
|
|||
---|---|---|---|
#18+
AriochЗавести в FB database trigger срабатывающий по таймеру в автономной транзакции Было бы очень круто! Все сервисные чистки можно на него повесить... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2016, 10:16 |
|
Отваливается соединение
|
|||
---|---|---|---|
#18+
kdvТак что, если и можно такое сделать, то только подменой клиентской части, типа прокси, между приложением и настоящей клиентской частью. Теоретически может такое кто-то и делал, только я об этом не слышал. Вот теперь услышал. Работает и пингует у ТСа. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2016, 11:45 |
|
Отваливается соединение
|
|||
---|---|---|---|
#18+
wadman, жаль... а я надеялся кто-то servers chaining попробует в деле чччД, уже оживился! ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2016, 13:31 |
|
Отваливается соединение
|
|||
---|---|---|---|
#18+
chebyrekя нашел в конфиге только ConnectionTimeout и DummyPacketInterval, ничто из этого не помогает Второе - должно помогать. Если нет - что-то ты делаешь неправильно. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2016, 13:34 |
|
Отваливается соединение
|
|||
---|---|---|---|
#18+
Благодаря товарищу Wadman, ночь прошла без единого разрыва, за что ему отдельное спасибо. За подробностями решения, думаю, лучше обращаться к нему. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2016, 03:07 |
|
Отваливается соединение
|
|||
---|---|---|---|
#18+
Собственно сам архив, если вдруг кому еще приспичит. Описание 18968142 ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2016, 10:05 |
|
Отваливается соединение
|
|||
---|---|---|---|
#18+
Подумалось тут, что таким образом можно запускать процедуры при длительном бездействии... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2016, 13:08 |
|
Отваливается соединение
|
|||
---|---|---|---|
#18+
chebyrek Читал вот эту статью, пробовал разные значения, ничего не меняется. Сейчас значения такие: Код: plaintext 1. 2. 3. 4. 5. 6.
Мониторю трафик до и от сервера через WireShark, но keepalive-пакетов там не ходит совсем, ssh-подключение не отваливается, пинги тоже идут без потерь, проблема только с Firebird. Благодарю за помощь. Плохо читал статью :) 3200 - это секунды. Почти час. Ждал столько, чтоб увидеть KEEPALIVE-пакеты в сокете? ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2016, 14:48 |
|
|
start [/forum/topic.php?all=1&fid=40&tid=1562278]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
36ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
74ms |
get tp. blocked users: |
1ms |
others: | 265ms |
total: | 420ms |
0 / 0 |