|
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
|
|||
---|---|---|---|
#18+
developer0118, VPN поставь и ходи через него. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2018, 15:52 |
|
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
|
|||
---|---|---|---|
#18+
MikeDDdeveloper0118, VPN поставь и ходи через него.Забавно, как надстройка над нестабильным каналом добавит стабильности? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2018, 17:13 |
|
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
|
|||
---|---|---|---|
#18+
Ivan_PisarevskyMikeDDdeveloper0118, VPN поставь и ходи через него.Забавно, как надстройка над нестабильным каналом добавит стабильности?Лишь устранит возможность ошибок передачи пакета, неотлавливаемых через CRC. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2018, 10:19 |
|
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
|
|||
---|---|---|---|
#18+
rdb_devIvan_Pisarevskyпропущено... Забавно, как надстройка над нестабильным каналом добавит стабильности?Лишь устранит возможность ошибок передачи пакета, неотлавливаемых через CRC. Чисто по субъективным ощущениям по VPN стабильность канала лучше на 3G/4G модемах. Опсосы могут на ходу менять внешний IP и тут VPN здорово выручает. Да и вообще выставлять наружу сервер FB мягко говоря плохо по соображениям безопасности. ТСу советую глянуть на SoftEher VPN. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2018, 12:07 |
|
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
|
|||
---|---|---|---|
#18+
developer0118hvladЭто полный статус-вектор ? Если в нём только isc_net_read_err и больше ничего нет, то это обычно значит что сокет уже закрыт. Т.е. реальная ошибка была раньше. PS что за манера отвечать не на все поставленные вопросы ? Видимо не правильно понимаю термин "статус-вектор", сходу гугл тоже не помог. Что и где надо ещё посмотреть? Или что и где почитать?Про статус-вектор (status-vector) можно почитать как в IB API Guide, так и в исходниках FIB+. Впрочем, судя по всему, FIB+ полностью интерпретирует все эл-ты из статуса. Я всё же хотел бы узнать - если коннект не рвётся, то где проблема ? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2018, 13:10 |
|
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
|
|||
---|---|---|---|
#18+
rdb_devКак именно осуществлено интернет подключение через провайдера сотовой связи? Стоит роутер с USB 3g/4g модемом? На USB модеме используется внутренняя антенна или же через AUX - репитер/усилитель + направленная антенна? Что за USB модем? Прошивка модема свежая? Настройки MTU на интерфейсе 3g/4g? Флажок "nailed-up" имеется и активирован? У меня нет этой информации, проблемный комп находится территориально в другом городе от меня, я имею на него доступ только удаленно и изредка... Если у вас есть (могут появиться) советы/предположения, зависящие от спрашиваемых параметров - я постараюсь их выяснить. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2018, 13:21 |
|
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
|
|||
---|---|---|---|
#18+
developer0118У меня нет этой информации, проблемный комп находится территориально в другом городе от меня, я имею на него доступ только удаленно и изредка... Если у вас есть (могут появиться) советы/предположения, зависящие от спрашиваемых параметров - я постараюсь их выяснить.Советы легко выводятся из вопросов. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2018, 13:24 |
|
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
|
|||
---|---|---|---|
#18+
hvladЯ всё же хотел бы узнать - если коннект не рвётся, то где проблема ? Ну проблема в том, что программа не работает :) Уже предчувствую кучу мнений на тему "надо правильно писать программы!", "не умеешь обрабатывать исключения!" и т.п. В программе худо-бедно анализируются и обрабатываются исключения. Написан обработчик Application.OnException, в нём в зависимости от разных параметров информация может либо логгироваться в БД, либо в файл; по каждому исключению собирается максимально полная информация для логгирования; пользователю по-возможности выдается максимально понятное ему сообщение на русском языке и т.д., и т.п. Такой подход полностью устраивал на протяжении 10+ лет, в том числе в проектах 24/7 с несколькими сотнями пользователей и т.п. И вот в одной довольно мелкой программке, с которой работает всего-то десяток человек, сервер которой хостится на минимальных (потому что самых дешевых) ресурсах RuVDS - возникла такая вот беда. Причем только в одном из нескольких офисов. Поэтому как-то логика подсказывает в первую очередь попытаться найти проблему в окружении, а не внутри программы... Конечно наверно можно засунуть каждый вызов pFIBDataSet.Open в блок try-except с подробнейшим анализом исключений и с попыткой выполнить запрос ещё раз (или два? три? десять?), но мне кажется что это совсем уж по-джедайски... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2018, 13:39 |
|
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
|
|||
---|---|---|---|
#18+
16.01.2018 13:39, developer0118 пишет: > Конечно наверно можно засунуть каждый вызов pFIBDataSet.Open в блок try-except с подробнейшим анализом исключений > и с попыткой выполнить запрос ещё раз (или два? три? десять?), но мне кажется что это совсем уж по-джедайски... но… зачем же?! это ж ведь очень и очень! да! да! но нет! © если я всё правильно путаю, у плюсов есть ЦЕНТРАЛИЗОВАННЫЙ обработчик ошибок. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2018, 13:48 |
|
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
|
|||
---|---|---|---|
#18+
Мимопроходящийесли я всё правильно путаю, у плюсов есть ЦЕНТРАЛИЗОВАННЫЙ обработчик ошибок. А если я правильно путаю, у них же есть опция автоматического восстановления оборванного соединения, которая, скорее всего, у аффтара и включена. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2018, 13:54 |
|
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
|
|||
---|---|---|---|
#18+
16.01.2018 13:54, Dimitry Sibiryakov пишет: > у них же есть опция автоматического восстановления оборванного > соединения, которая, скорее всего, у аффтара и включена. "Как принять? Стоя? Сидя? Лёжа!" © упаси Господи от такого неестественного интеллекта... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2018, 14:03 |
|
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
|
|||
---|---|---|---|
#18+
developer0118И вот в одной довольно мелкой программке, с которой работает всего-то десяток человек, сервер которой хостится на минимальных (потому что самых дешевых) ресурсах RuVDS - возникла такая вот беда. Причем только в одном из нескольких офисов. Поэтому как-то логика подсказывает в первую очередь попытаться найти проблему в окружении, а не внутри программы...Всё правильно. И приз выиграла сотовая связь. Не так ли ? :) PS можно долго пинать друг друга, но без доп инф-ции (которую не получить без доп телодвижений) я, со своей стороны, сделать ничего не могу ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2018, 16:00 |
|
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovА если я правильно путаю, у них же есть опция автоматического восстановления оборванного соединения, которая, скорее всего, у аффтара и включена. pFIBDataBase.AutoReconnect = False pFIBDataBase.Timeout = 0 pFIBDataBase.WaitForRestoreConnect = 0 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2018, 16:02 |
|
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
|
|||
---|---|---|---|
#18+
developer0118, выдержка из FIBPlus Developer's Guide: Обработка потери соединения FIBPlus предоставляет своим пользователям уникальную возможность обработки потери соединения. Для обработки потери соединения используется сам компонент TpFIBDatabase и компонент централизованной обработки всех ошибок библиотеки TpFIBErrorHandler. Пример использования этой функциональности представлен в примере ConnectionLost. Коротко опишем, как он устроен. Компонент TpFIBDatabase реализует три специальных события: AfterRestoreConnect – возникает при успешном восстановлении соединения. OnLostConnect – возникает при потере соединения. Событие возникает в момент очередного обращения к БД, которое завершается ошибкой. Здесь вы можете задать одно из трех возможных действий, которые можно предпринять в этой ситуации (смотрите описание TOnLostConnectActions) - закрыть приложение, закрыть соединение, проигнорировать, попытаться восстановить соединение. OnErrorRestoreConnect – возникает при очередной ошибке попытки восстановления соединения. При потере соединения пользователю предоставляется выбор, какое из действий предпринять. В случае успеха выдается сообщение, что соединение восстановлено. При очередной ошибке восстановления соединения мы можем посчитать попытки в нашем коде и предпринимать какие-то иные действия в случае необходимости. На компоненте TpFIBErrorHandler мы остановимся в отдельном разделе, сейчас же скажем, что обработчик ошибок при возникновении потери соединения просто подавляет стандартную реакцию на ошибку. Код: pascal 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. 36.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2018, 16:20 |
|
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
|
|||
---|---|---|---|
#18+
rdb_devdeveloper0118, выдержка из FIBPlus Developer's Guide: Обработка потери соединения Спасибо. Но в моём случае нет потери соединения. Нет автоматического (так же как и вручную реализованного) восстановления соединения. Если компонент pFIBDatabase обнаружит потерю соединения, то возникнет соответствующее исключение, которое у меня безусловно завершит программу, выдав при этом пользователю соответствующее сообщение. Так вот, в описываемом случае подобных исключений не происходит! Происходит абсолютно непонятное для меня исключение: Код: sql 1. 2. 3. 4.
Происходит оно хоть и часто, но непредсказуемо. Не удалось выявить никаких закономерностей чтобы гарантированно его повторить. Я не смог нагуглить внятного описания возможных причин этого исключения. И сейчас у меня дилемма: либо пытаться в программе как-то обработать эту ситуацию (но, если честно, даже не знаю как), либо пытаться найти причину в настройках окружения. Уважаемый hvlad хоть и намекает что вместо болтовни мне не помешало бы сделать какие-то телодвижения, но мне бы догадаться какие именно... Имеющуюся информацию об исключении я приводил. Другой нет. Из фибов я постарался вытащить все какие есть коды/сообщения, на большее у меня, видимо, уже знаний не хватает. Остались только вопросы по параметрам мобильного интернета, о которых меня спросили тут, но я пока их не имею. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2018, 16:36 |
|
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
|
|||
---|---|---|---|
#18+
Ну сотовый оператор - это замечательно, а приложение при этом случайно не многопоточное? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2018, 16:44 |
|
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
|
|||
---|---|---|---|
#18+
developer0118Но в моём случае нет потери соединения Ты заблуждаешься. Есть всего пара ошибок чтения/записи сокета, которые не сопровождаются его потерей, но они - не твой случай. И сделай так, чтобы firebird.log писался и на клиентской стороне. Обычно для этого достаточно положить fbclient.dll и firebird.msg в папку с приложением. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2018, 17:31 |
|
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakovdeveloper0118Но в моём случае нет потери соединения Ты заблуждаешься. Похоже да, заблуждаюсь. Но не совсем... Поэкспериментировал на локальной базе. Действительно, при остановке FB иногда сперва возникает исключение "Error reading data from the connection". Но не всегда это исключение сопровождается потерей коннекта. В некоторых случаях (на реальной БД) я получаю в лог (который пишется в ту же БД через то же соединение) информацию о таком исключении... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2018, 19:18 |
|
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
|
|||
---|---|---|---|
#18+
16.01.2018 19:18, developer0118 пишет: > я получаю в лог (который пишется в ту же БД не делай так Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2018, 19:20 |
|
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
|
|||
---|---|---|---|
#18+
Гаджимурадов РустамНу сотовый оператор - это замечательно, а приложение при этом случайно не многопоточное? Нет. По крайней мере вручную потоки не создаются. Если только где-то в дебрях дельфи-ехлиб-фиб, но это вроде не так (или ошибаюсь?) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2018, 19:20 |
|
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
|
|||
---|---|---|---|
#18+
Мимопроходящий16.01.2018 19:18, developer0118 пишет: > я получаю в лог (который пишется в ту же БД не делай так Аргументируй. Если в БД записать не удается, то пишется в файл. Но как правило удается, так как бОльшая часть исключений связана с интерфейсом, а не коннектом к БД. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2018, 19:24 |
|
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
|
|||
---|---|---|---|
#18+
developer0118... Аргументируй. ... Данный конкретный случай не заставляет задуматься о то, что твой лог может оказаться неполным? ... И, тебя уже раз 15 спросили про firebird.log на клиентской стороне, а ты все о своем. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2018, 19:37 |
|
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
|
|||
---|---|---|---|
#18+
developer0118проблемный комп находится территориально в другом городе от меня, я имею на него доступ только удаленно и изредка... Ну а сервер, к которому он подключается, под вашим контролем? Запустите на нём аудит подключений/отключений и ошибок. Сдаётся мне, это будет занятное чтиво. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2018, 22:07 |
|
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
|
|||
---|---|---|---|
#18+
чччД> И, тебя уже раз 15 спросили про firebird.log на клиентской стороне, а ты все о своем. Да ему 15 раз 15 разных вопросов задали, на половину из которых он толком не ответил/не сделал, ибо "не знает как и что толком делать". :) Ну вон, хоть многопотока дарвинисткого нету, и-то хлеб. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2018, 23:15 |
|
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
|
|||
---|---|---|---|
#18+
В общем, всем спасибо за помощь, даже тем, кто в первую очередь язвил, но при этом и помогал :) Выяснилось тут масса деталей. Похоже, я с самого начала ввел всех в заблуждение. Поэтому тему можно закрывать. Если кому вдруг интересны подробности: Коннект, похоже, всё-таки пропадает при возникновении этой ошибки. Программа древняя, с большим багажом "так исторически сложилось". В ней открывается одновременно два коннекта: через TIBDatabase и через TpFIBDatabase. При этом коннекты рвались не одновременно, поэтому в некоторых случаях информация об исключении в одном коннекте успешно записывалась в БД через другой коннект. Пользовательский посыл "Невозможно работать! Ошибка каждые пять минут!" так же оказался преувеличенным (кто бы мог подумать :) Выяснилось, что программа отваливалась только после нескольких минут бездействия. Учитывая предыдущий пункт возникло предположение, что кто-то (сетевой драйвер, либо какая-нить железка типа свич/модем) отрубает коннект если в нем нет активности свыше какого-то таймаута. Для проверки этой гипотезы сделал таймер с выполнением раз в 15 секунд запроса "SELECT CURRENT_TIMESTAMP FROM RDB$DATABASE" - пока что полёт нормальный. Изменил параметры KEEPALIVE_TIME = 3 мин, KEEPALIVE_PROBES = 5, KEEPALIVE_INTERVAL = 15 сек. Но эффект увижу, видимо, только после перезагрузки сервера. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2018, 13:28 |
|
|
start [/forum/search_topic.php?author=Serega182&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
29ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
others: | 440ms |
total: | 590ms |
0 / 0 |