|
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
|
|||
---|---|---|---|
#18+
Коллеги, помогите советом куда копать... Ubuntu + Firebird 3.0.2, хостится на RuVDS. Клиентов штук 10-15 в нескольких территориально удаленных офисах. Клиентское приложение на Delphi, fbclient.dll тоже 3.0.2. Везде работает всё более-менее стабильно, кроме одного офиса, в котором интернет через сотового оператора. Там периодически (иной раз аж каждые 5 минут) возникает ошибка IBErrorCode = 335544727 "Error writing data to the connection", либо IBErrorCode = 335544726 "Error reading data from the connection". При этом в других приложениях проблем с интернетом не наблюдается (браузеры, почта и т.п. - работают нормально), в этот момент даже можно работать на компе удаленно через TeamViewer. Со слов пользователей "пинги до сервера БД идут, пакеты не теряются" (но не знаю как и чем они это проверяли). Включил сжатие трафика в Firebird (как вот тут написано). Надеялся, что если меньше трафик - реже ошибка. Но буквально в течение 10 минут её словили. Может кто с подобным сталкивался? Где копать? Ковырять сетевые настройки Убунты? Настройки фаерберда на сервере? Сетевые настройки винды на клиенте? Или же в программе искать косяк? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2018, 21:38 |
|
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
|
|||
---|---|---|---|
#18+
developer0118Может кто с подобным сталкивался? Где копать? Ковырять сетевые настройки Убунты? Настройки фаерберда на сервере? Сетевые настройки винды на клиенте? Или же в программе искать косяк? ответ вот тут, в вашем же сообщении " Везде работает всё более-менее стабильно, кроме одного офиса, в котором интернет через сотового оператора. " какой тогда может быть "косяк в программе", "настройки ФБ на сервере", "сетевые настройки убунты"? если сотовый оператор рвет соединения, чем вы это "настроите", интересно? Впрочем, теоретически может помочь, если в программе 1 раз в минуту "тыкать" в сервер каким-нибудь примитивным запросом, типа select * from rdb$database. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2018, 21:57 |
|
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
|
|||
---|---|---|---|
#18+
kdvесли сотовый оператор рвет соединения, чем вы это "настроите", интересно? Почему тогда у других программ нет проблем с интернетом? И потом, соединение-то не рвется. В программе реализовано логгирование ошибок в БД. Так вот, некоторая часть этих ошибок (имею в виду упомянутые Error writing data to the connection) успешно записываются в БД. Стало быть коннект не оборвался, сервер не требует повторной авторизации и т.п. kdvВпрочем, теоретически может помочь, если в программе 1 раз в минуту "тыкать" в сервер каким-нибудь примитивным запросом, типа select * from rdb$database. Да тыкали уже, правда для других целей. Бестолку. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2018, 22:22 |
|
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
|
|||
---|---|---|---|
#18+
developer0118Там периодически (иной раз аж каждые 5 минут) возникает ошибка IBErrorCode = 335544727 "Error writing data to the connection", либо IBErrorCode = 335544726 "Error reading data from the connection". При этом в других приложениях проблем с интернетом не наблюдаетсяЯ такие проблемы наблюдаю в локалке. Раз в 30-40 минут. В локалке, но не на локалхост. В локалке, где раньше с 2.1. проблем не было. Не писал пока об этой проблеме - не уверен был, что из-за ФБ. Но блин именно на 3.0.2. и у меня проблемы. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2018, 22:26 |
|
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
|
|||
---|---|---|---|
#18+
kdvВпрочем, теоретически может помочь, если в программе 1 раз в минуту "тыкать" в сервер каким-нибудь примитивным запросом, типа select * from rdb$database.Это не поможет. Поможет только следствие проблемы поймать. У меня кое где раз в 5 секунд делается подобное. Только не select, а CommitRetaining у readonly-транзакции. Для удостоверения, что коннект не пропал. Так вот, именно эта же ошибка именно на этом CommitRetain и стала на 3.0.2 появляться в локалке, где раньше годами на 2.1 работал без проблем этот механизм. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2018, 22:30 |
|
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
|
|||
---|---|---|---|
#18+
YuRock, это проблемы с разрывом соединением, а CommitRetaining здесь вообще не причём. У меня подозрения что некоторые программы переживают кратковременное отсутствие соединения гораздо лучше чем Firebird, и возможно даже восстанавливают его. Поэтому в TeamViewer это не заметно. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2018, 22:43 |
|
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
|
|||
---|---|---|---|
#18+
developer0118...Почему тогда у других программ нет проблем с интернетом?...Программы такие потому что. Для клиентской части клиент-серверного приложения обрыв соединения фатален, если только это самое приложение не написано специально с учетом возможности обрыва. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2018, 23:05 |
|
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
|
|||
---|---|---|---|
#18+
developer0118И потом, соединение-то не рвется. В программе реализовано логгирование ошибок в БД. Так вот, некоторая часть этих ошибок (имею в виду упомянутые Error writing data to the connection) успешно записываются в БД. Стало быть коннект не оборвался, сервер не требует повторной авторизации и т.п. Не факт. Соединение может автоматически восстанавливаться приложением. Проконсультируйтесь у его автора. Кстати, а в firebird.log что об этих ошибках написано? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2018, 23:15 |
|
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
|
|||
---|---|---|---|
#18+
Симонов Денисэто проблемы с разрывом соединением, а CommitRetaining здесь вообще не причёмЭто понятно, я об этом и говорю. Просто CommitRetaining я вызываю очень часто именно для того, чтобы этот разрыв соединения поймать. И ловлю. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2018, 23:17 |
|
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovКстати, а в firebird.log что об этих ошибках написано?Я лично еще не готов нормальный отчет об этой проблеме воспроизвести, но собираюсь сделать это. Сейчас так, в тему просто написал. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2018, 23:19 |
|
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
|
|||
---|---|---|---|
#18+
developer0118Почему тогда у других программ нет проблем с интернетом?Потому что они не поддерживают постоянное соединение. RTFM: statefull connection, stateless connection ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2018, 23:59 |
|
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovСоединение может автоматически восстанавливаться приложением. Проконсультируйтесь у его автора. Я его автор, правда не первый :) Автоматического восстановления коннекта в программе нет. Более того, в случае "нормального" разрыва соединения пользователю выдается страшное сообщение, мол, всё пропало, ваши данные возможно в БД не попали, переподключитесь и проверьте. И программа закрывается. Но в данном случае разрыва как такового не происходит, pFIBDatabase.Connected = True, да и сервер при следующих запросах не требует авторизации, то есть тоже не считает что клиент отвалился. Dimitry SibiryakovКстати, а в firebird.log что об этих ошибках написано? Ничего не нашел, но возможно плохо смотрел. Гляну ещё разок повнимательнее... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2018, 09:12 |
|
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
|
|||
---|---|---|---|
#18+
developer0118Но в данном случае разрыва как такового не происходит, pFIBDatabase.Connected = True, да и сервер при следующих запросах не требует авторизации, то есть тоже не считает что клиент отвалился.Тогда в чём проблема ? Полный статус-вектор с ошибкой есть ? Там всегда есть имя операции, которая дала ошибку ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2018, 09:31 |
|
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
|
|||
---|---|---|---|
#18+
hvladТогда в чём проблема ? Полный статус-вектор с ошибкой есть ? Там всегда есть имя операции, которая дала ошибку Проблема в том, что в одном офисе операции не дают ошибку, а в другом - дают. Даже если я точно определю какая конкретно операция не выполнилась (какой Query с каким SQL) - что мне это даст? Ведь минутой раньше или минутой позже этот же SQL нормально выполняется. А в других офисах, повторюсь, вообще не возникает подобной ошибки. Всё что у меня есть: Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2018, 10:00 |
|
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
|
|||
---|---|---|---|
#18+
developer0118Проблема в том, что в одном офисе операции не дают ошибку, а в другом - дают.Ещё раз, медленно: если коннект не рвётся - в чём проблема ? Научить обрабатывать ошибки ? developer0118Даже если я точно определю какая конкретно операция не выполнилась (какой Query с каким SQL) - что мне это даст?Речь идёт о том вызове API (winsock, в данном случае), который завершился с ошибкой. И о самой ошибке - она тоже есть в статус-векторе. Это может помочь нам определить как с этим бороться. developer0118Всё что у меня естьЭто полный статус-вектор ? Если в нём только isc_net_read_err и больше ничего нет, то это обычно значит что сокет уже закрыт. Т.е. реальная ошибка была раньше. Что в firebird.log на стороне клиента ? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2018, 10:23 |
|
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
|
|||
---|---|---|---|
#18+
developer0118Почему тогда у других программ нет проблем с интернетом? у каких у других? Какие из них держат постоянно открытое соединение с сервером? "Браузер и почта" к таким программам не относятся, совсем. А Teamviewer - так он постоянно что-то передает, у него соединение и не рвется. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2018, 10:30 |
|
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
|
|||
---|---|---|---|
#18+
Такое не пробовал? DummyPacketInterval = 30 в firebird.conf ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2018, 11:56 |
|
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
|
|||
---|---|---|---|
#18+
Я во избежание такого принудительного обрыва делал в своих приложениях на читающей транзакции запрос SELECT 1 FROM RDB$DATABASE по таймеру раз в 65500 милисекунд. Если запрос выполнялся с ошибкой - значит, с базой или с коннектом есть какие-то проблемы, и можно не продолжать долбиться к серверу. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2018, 11:59 |
|
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
|
|||
---|---|---|---|
#18+
hvladЧто в firebird.log на стороне клиента ? Только вот такая строка: Код: sql 1.
Причем этих записей значительно меньше, нежели возникающих ошибок. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2018, 12:29 |
|
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
|
|||
---|---|---|---|
#18+
rstrelbaТакое не пробовал? DummyPacketInterval = 30 в firebird.conf Неа, страшно Код: sql 1. 2. 3. 4.
Шевелил tcp_keepalive_*, но не помогло. Либо мало шевелил... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2018, 12:46 |
|
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
|
|||
---|---|---|---|
#18+
developer0118Или же в программе искать косяк?Не то чтобы косяк, но менять надо подход: с коннект-вся_работа-дисконнект на пока_работа(коннект_пачка_операторов-дисконнект) Хотя те же фибы к такому подходу прямо скажем не расположены. В качестве полумеры поставить на той же площадке терминальный сервер и работать через него. Это быстрый и самый простой в реализации вариант. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2018, 13:15 |
|
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
|
|||
---|---|---|---|
#18+
developer0118Только вот такая строка: Код: sql 1.
Не думаю, что от 127.0.0.1 к серверу лежит сотовая связь PS что за манера отвечать не на все поставленные вопросы ? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2018, 13:31 |
|
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
|
|||
---|---|---|---|
#18+
У меня такое впечатление, что приложение работает одновременно с двумя БД и соединение рвётся только с одной. Причём локальной. И рвёт его антивирус. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2018, 13:36 |
|
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovУ меня такое впечатление, что приложение работает одновременно с двумя БД и соединение рвётся только с одной. Причём локальной. И рвёт его антивирус. Программа работает либо с удаленной БД, либо с локальной. С какой работать - выбирает пользователь при запуске программы. Про антивирус спасибо за наводку, проверю. hvladНе думаю, что от 127.0.0.1 к серверу лежит сотовая связь Да-да, это я уже туплю, взял видимо не тот firebird.log. Но других firebird.log не нашел на компе. hvladЭто полный статус-вектор ? Если в нём только isc_net_read_err и больше ничего нет, то это обычно значит что сокет уже закрыт. Т.е. реальная ошибка была раньше. PS что за манера отвечать не на все поставленные вопросы ? Видимо не правильно понимаю термин "статус-вектор", сходу гугл тоже не помог. Что и где надо ещё посмотреть? Или что и где почитать? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2018, 14:09 |
|
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
|
|||
---|---|---|---|
#18+
Как именно осуществлено интернет подключение через провайдера сотовой связи? Стоит роутер с USB 3g/4g модемом? На USB модеме используется внутренняя антенна или же через AUX - репитер/усилитель + направленная антенна? Что за USB модем? Прошивка модема свежая? Настройки MTU на интерфейсе 3g/4g? Флажок "nailed-up" имеется и активирован? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2018, 14:51 |
|
|
start [/forum/topic.php?fid=40&fpage=37&tid=1561269]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
144ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
68ms |
get tp. blocked users: |
1ms |
others: | 317ms |
total: | 569ms |
0 / 0 |