powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
25 сообщений из 56, страница 2 из 3
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
    #39584529
MikeDD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
developer0118, VPN поставь и ходи через него.
...
Рейтинг: 0 / 0
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
    #39584612
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MikeDDdeveloper0118, VPN поставь и ходи через него.Забавно, как надстройка над нестабильным каналом добавит стабильности?
...
Рейтинг: 0 / 0
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
    #39584868
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_PisarevskyMikeDDdeveloper0118, VPN поставь и ходи через него.Забавно, как надстройка над нестабильным каналом добавит стабильности?Лишь устранит возможность ошибок передачи пакета, неотлавливаемых через CRC.
...
Рейтинг: 0 / 0
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
    #39584958
MikeDD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devIvan_Pisarevskyпропущено...
Забавно, как надстройка над нестабильным каналом добавит стабильности?Лишь устранит возможность ошибок передачи пакета, неотлавливаемых через CRC.
Чисто по субъективным ощущениям по VPN стабильность канала лучше на 3G/4G модемах. Опсосы могут на ходу менять внешний IP и тут VPN здорово выручает. Да и вообще выставлять наружу сервер FB мягко говоря плохо по соображениям безопасности. ТСу советую глянуть на SoftEher VPN.
...
Рейтинг: 0 / 0
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
    #39585047
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
developer0118hvladЭто полный статус-вектор ? Если в нём только isc_net_read_err и больше ничего нет, то это обычно значит что сокет уже закрыт. Т.е. реальная ошибка была раньше.
PS что за манера отвечать не на все поставленные вопросы ?
Видимо не правильно понимаю термин "статус-вектор", сходу гугл тоже не помог. Что и где надо ещё посмотреть? Или что и где почитать?Про статус-вектор (status-vector) можно почитать как в IB API Guide, так и в исходниках FIB+.
Впрочем, судя по всему, FIB+ полностью интерпретирует все эл-ты из статуса.

Я всё же хотел бы узнать - если коннект не рвётся, то где проблема ?
...
Рейтинг: 0 / 0
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
    #39585055
developer0118
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rdb_devКак именно осуществлено интернет подключение через провайдера сотовой связи? Стоит роутер с USB 3g/4g модемом? На USB модеме используется внутренняя антенна или же через AUX - репитер/усилитель + направленная антенна? Что за USB модем? Прошивка модема свежая? Настройки MTU на интерфейсе 3g/4g? Флажок "nailed-up" имеется и активирован?
У меня нет этой информации, проблемный комп находится территориально в другом городе от меня, я имею на него доступ только удаленно и изредка... Если у вас есть (могут появиться) советы/предположения, зависящие от спрашиваемых параметров - я постараюсь их выяснить.
...
Рейтинг: 0 / 0
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
    #39585062
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
developer0118У меня нет этой информации, проблемный комп находится территориально в другом городе от меня, я имею на него доступ только удаленно и изредка... Если у вас есть (могут появиться) советы/предположения, зависящие от спрашиваемых параметров - я постараюсь их выяснить.Советы легко выводятся из вопросов.
...
Рейтинг: 0 / 0
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
    #39585085
developer0118
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hvladЯ всё же хотел бы узнать - если коннект не рвётся, то где проблема ?
Ну проблема в том, что программа не работает :) Уже предчувствую кучу мнений на тему "надо правильно писать программы!", "не умеешь обрабатывать исключения!" и т.п.

В программе худо-бедно анализируются и обрабатываются исключения. Написан обработчик Application.OnException, в нём в зависимости от разных параметров информация может либо логгироваться в БД, либо в файл; по каждому исключению собирается максимально полная информация для логгирования; пользователю по-возможности выдается максимально понятное ему сообщение на русском языке и т.д., и т.п.

Такой подход полностью устраивал на протяжении 10+ лет, в том числе в проектах 24/7 с несколькими сотнями пользователей и т.п. И вот в одной довольно мелкой программке, с которой работает всего-то десяток человек, сервер которой хостится на минимальных (потому что самых дешевых) ресурсах RuVDS - возникла такая вот беда. Причем только в одном из нескольких офисов. Поэтому как-то логика подсказывает в первую очередь попытаться найти проблему в окружении, а не внутри программы...

Конечно наверно можно засунуть каждый вызов pFIBDataSet.Open в блок try-except с подробнейшим анализом исключений и с попыткой выполнить запрос ещё раз (или два? три? десять?), но мне кажется что это совсем уж по-джедайски...
...
Рейтинг: 0 / 0
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
    #39585093
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
16.01.2018 13:39, developer0118 пишет:

> Конечно наверно можно засунуть каждый вызов pFIBDataSet.Open в блок try-except с подробнейшим анализом исключений
> и с попыткой выполнить запрос ещё раз (или два? три? десять?), но мне кажется что это совсем уж по-джедайски...


но… зачем же?!
это ж ведь очень и очень!
да! да! но нет!
©

если я всё правильно путаю, у плюсов есть ЦЕНТРАЛИЗОВАННЫЙ обработчик ошибок.

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
    #39585100
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийесли я всё правильно путаю, у плюсов есть ЦЕНТРАЛИЗОВАННЫЙ обработчик ошибок.

А если я правильно путаю, у них же есть опция автоматического восстановления оборванного
соединения, которая, скорее всего, у аффтара и включена.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
    #39585105
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
16.01.2018 13:54, Dimitry Sibiryakov пишет:

> у них же есть опция автоматического восстановления оборванного
> соединения, которая, скорее всего, у аффтара и включена.

"Как принять? Стоя? Сидя? Лёжа!" ©

упаси Господи от такого неестественного интеллекта...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
    #39585206
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
developer0118И вот в одной довольно мелкой программке, с которой работает всего-то десяток человек, сервер которой хостится на минимальных (потому что самых дешевых) ресурсах RuVDS - возникла такая вот беда. Причем только в одном из нескольких офисов. Поэтому как-то логика подсказывает в первую очередь попытаться найти проблему в окружении, а не внутри программы...Всё правильно. И приз выиграла сотовая связь. Не так ли ? :)

PS можно долго пинать друг друга, но без доп инф-ции (которую не получить без доп телодвижений) я, со своей стороны, сделать ничего не могу
...
Рейтинг: 0 / 0
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
    #39585209
developer0118
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovА если я правильно путаю, у них же есть опция автоматического восстановления оборванного
соединения, которая, скорее всего, у аффтара и включена.

pFIBDataBase.AutoReconnect = False
pFIBDataBase.Timeout = 0
pFIBDataBase.WaitForRestoreConnect = 0
...
Рейтинг: 0 / 0
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
    #39585225
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.
procedure TForm1.dbAfterRestoreConnect(Database: TFIBDatabase);
begin
  MessageDlg('Connection restored', mtInformation, [mbOk], 0);
end;

procedure TForm1.dbErrorRestoreConnect(Database: TFIBDatabase; E: EFIBError;
    var Actions: TOnLostConnectActions);
begin
  Inc(AttemptRest);
  Label4.Caption:=IntToStr(AttemptRest);
  Label4.Refresh
end;

procedure TForm1.dbLostConnect(Database: TFIBDatabase; E: EFIBError;
    var Actions: TOnLostConnectActions);
begin
  case cmbKindOnLost.ItemIndex of
    0: begin
      Actions := laCloseConnect;
      MessageDlg('Connection lost. TpFIBDatabase will be closed!', mtInformation, [mbOk], 0);
    end;
    1:begin
      Actions := laTerminateApp;
      MessageDlg('Connection lost. Application will be closed!', mtInformation, [mbOk], 0);
    end;
    2:Actions := laWaitRestore;
  end;
end;

procedure TForm1.pFibErrorHandler1FIBErrorEvent(Sender: TObject; ErrorValue: EFIBError;
    KindIBError: TKindIBError; var DoRaise: Boolean);
begin
  if KindIBError = keLostConnect then begin
    DoRaise := false;
  end;
end;
...
Рейтинг: 0 / 0
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
    #39585247
developer0118
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rdb_devdeveloper0118, выдержка из FIBPlus Developer's Guide:
Обработка потери соединения

Спасибо. Но в моём случае нет потери соединения. Нет автоматического (так же как и вручную реализованного) восстановления соединения. Если компонент pFIBDatabase обнаружит потерю соединения, то возникнет соответствующее исключение, которое у меня безусловно завершит программу, выдав при этом пользователю соответствующее сообщение.

Так вот, в описываемом случае подобных исключений не происходит! Происходит абсолютно непонятное для меня исключение:
Код: sql
1.
2.
3.
4.
SQLCode: -902
IBErrorCode: 335544726
IBMessage: Error reading data from the connection.
SQLMessage: Unsuccessful execution caused by a system error that precludes successful execution of subsequent statements.


Происходит оно хоть и часто, но непредсказуемо. Не удалось выявить никаких закономерностей чтобы гарантированно его повторить.

Я не смог нагуглить внятного описания возможных причин этого исключения.

И сейчас у меня дилемма: либо пытаться в программе как-то обработать эту ситуацию (но, если честно, даже не знаю как), либо пытаться найти причину в настройках окружения.

Уважаемый hvlad хоть и намекает что вместо болтовни мне не помешало бы сделать какие-то телодвижения, но мне бы догадаться какие именно... Имеющуюся информацию об исключении я приводил. Другой нет. Из фибов я постарался вытащить все какие есть коды/сообщения, на большее у меня, видимо, уже знаний не хватает. Остались только вопросы по параметрам мобильного интернета, о которых меня спросили тут, но я пока их не имею.
...
Рейтинг: 0 / 0
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
    #39585264
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну сотовый оператор - это замечательно, а приложение при этом случайно не многопоточное?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
    #39585324
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
developer0118Но в моём случае нет потери соединения

Ты заблуждаешься. Есть всего пара ошибок чтения/записи сокета, которые не сопровождаются
его потерей, но они - не твой случай. И сделай так, чтобы firebird.log писался и на
клиентской стороне. Обычно для этого достаточно положить fbclient.dll и firebird.msg в
папку с приложением.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
    #39585387
developer0118
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakovdeveloper0118Но в моём случае нет потери соединения
Ты заблуждаешься.
Похоже да, заблуждаюсь. Но не совсем...

Поэкспериментировал на локальной базе. Действительно, при остановке FB иногда сперва возникает исключение "Error reading data from the connection". Но не всегда это исключение сопровождается потерей коннекта. В некоторых случаях (на реальной БД) я получаю в лог (который пишется в ту же БД через то же соединение) информацию о таком исключении...
...
Рейтинг: 0 / 0
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
    #39585388
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
16.01.2018 19:18, developer0118 пишет:
> я получаю в лог (который пишется в ту же БД

не делай так
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
    #39585389
developer0118
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гаджимурадов РустамНу сотовый оператор - это замечательно, а приложение при этом случайно не многопоточное?

Нет. По крайней мере вручную потоки не создаются. Если только где-то в дебрях дельфи-ехлиб-фиб, но это вроде не так (или ошибаюсь?)
...
Рейтинг: 0 / 0
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
    #39585391
developer0118
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мимопроходящий16.01.2018 19:18, developer0118 пишет:
> я получаю в лог (который пишется в ту же БД

не делай так

Аргументируй.

Если в БД записать не удается, то пишется в файл. Но как правило удается, так как бОльшая часть исключений связана с интерфейсом, а не коннектом к БД.
...
Рейтинг: 0 / 0
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
    #39585400
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
developer0118...
Аргументируй.
...
Данный конкретный случай не заставляет задуматься о то, что твой лог может оказаться неполным?
...
И, тебя уже раз 15 спросили про firebird.log на клиентской стороне, а ты все о своем.
...
Рейтинг: 0 / 0
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
    #39585445
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
developer0118проблемный комп находится территориально в другом городе от меня, я имею на него доступ
только удаленно и изредка...

Ну а сервер, к которому он подключается, под вашим контролем? Запустите на нём аудит
подключений/отключений и ошибок. Сдаётся мне, это будет занятное чтиво.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
    #39585456
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччД> И, тебя уже раз 15 спросили про firebird.log на клиентской стороне, а ты все о своем.

Да ему 15 раз 15 разных вопросов задали, на половину из которых он
толком не ответил/не сделал, ибо "не знает как и что толком делать". :)
Ну вон, хоть многопотока дарвинисткого нету, и-то хлеб.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
    #39585769
developer0118
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В общем, всем спасибо за помощь, даже тем, кто в первую очередь язвил, но при этом и помогал :)

Выяснилось тут масса деталей. Похоже, я с самого начала ввел всех в заблуждение. Поэтому тему можно закрывать.

Если кому вдруг интересны подробности:
Коннект, похоже, всё-таки пропадает при возникновении этой ошибки. Программа древняя, с большим багажом "так исторически сложилось". В ней открывается одновременно два коннекта: через TIBDatabase и через TpFIBDatabase. При этом коннекты рвались не одновременно, поэтому в некоторых случаях информация об исключении в одном коннекте успешно записывалась в БД через другой коннект.

Пользовательский посыл "Невозможно работать! Ошибка каждые пять минут!" так же оказался преувеличенным (кто бы мог подумать :) Выяснилось, что программа отваливалась только после нескольких минут бездействия.

Учитывая предыдущий пункт возникло предположение, что кто-то (сетевой драйвер, либо какая-нить железка типа свич/модем) отрубает коннект если в нем нет активности свыше какого-то таймаута. Для проверки этой гипотезы сделал таймер с выполнением раз в 15 секунд запроса "SELECT CURRENT_TIMESTAMP FROM RDB$DATABASE" - пока что полёт нормальный.

Изменил параметры KEEPALIVE_TIME = 3 мин, KEEPALIVE_PROBES = 5, KEEPALIVE_INTERVAL = 15 сек. Но эффект увижу, видимо, только после перезагрузки сервера.
...
Рейтинг: 0 / 0
25 сообщений из 56, страница 2 из 3
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Firebird 3.0.2, Интернет через сотового оператора, Error reading data from the connection
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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