powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Lazarus. Access violation при TIBConnection.Open
25 сообщений из 30, страница 1 из 2
Lazarus. Access violation при TIBConnection.Open
    #40083956
Mironico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго дня!
Помогите разобраться, похоже не хватает знаний.

Написал простой http сервер на Lazarus+Synapse для обмена JSON-ами.
Сервер работает с БД Firebird 3.0.7.
На каждый запрос создается поток и свой TIBConnection.
Потоки короткие, отработал и закрылся.

В основном все работает прекрасно но 1-2 раза за сутки случается одна гадость.
В какой-то момент на всех новых запросах начинает лезть ексепшн "Access violation"
вызове TIBConnection.Open.

Все работает на Windows Server 2008 R2.

Вот код. (немного подредактирован)

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
  IBConnection := TIBConnection.Create(nil);
  IBConnection.DatabaseName := '100.100.100.100/3050:d:\my_prog\db.fdb';
  IBConnection.Dialect := 3;
  IBConnection.UserName := 'SYSDBA';
  IBConnection.Password := 'masterkey';
  IBConnection.LoginPrompt := false;
  IBConnection.CharSet:='UTF8';
  IBConnection.KeepConnection:=true;

  try
       IBConnection.Open;
  except
      on E : Exception do
      begin
        WriteErrLog(E.Message,'IBConnection.Connect');
      end;
  end;



Заранее спасибо!
...
Рейтинг: 0 / 0
Lazarus. Access violation при TIBConnection.Open
    #40083975
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько много коннектов поднимается за один присест?

Сталкивался на примерно 20 штуках, если разом порождаю все потоки в каждом по коннекту, временами (не всегда) сервер не успевал ответить всем и отказывал в новых соединениях (да параллельно сервер держал еще 200-300 коннектов открытыми). Разнес по времени банальным sleep и оно перестало отскакивать.

И таки по эксепту можно не только логи писать, но и предпринять еще пяток попыток соединиться, если уж с пятого раза сервер тебя не принял, тут уж можно и сообщение админу соорудить и на дальнейшие попытки соединиться забить.
...
Рейтинг: 0 / 0
Lazarus. Access violation при TIBConnection.Open
    #40083978
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
i:=0;
    while not IBCon.Connected do
    begin
      try
        IBCon.Connected := True;
      except
        on E: Exception do
        begin
          SaveToLog(E.Message);
          SaveToLog(Name +' Error connect to database '+inttostr(i));
          if i=4 then
          begin
            SaveToLog(E.Message,SMS_SEND_ERR);
            raise;
          end;
          sleep(1000);
        end;
      end;
      i:=i+1;
    end;
...
Рейтинг: 0 / 0
Lazarus. Access violation при TIBConnection.Open
    #40084005
Mironico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ivan_Pisarevsky,

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

Коннект поднимается 1 для каждого потока.
...
Рейтинг: 0 / 0
Lazarus. Access violation при TIBConnection.Open
    #40084023
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Надо отследить, где конкретно вылезает АВ.
А в целом это не очень хороший способ, правильней держать пул коннектов.
...
Рейтинг: 0 / 0
Lazarus. Access violation при TIBConnection.Open
    #40084024
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mironico
Коннект поднимается 1 для каждого потока.

а сколько вообще коннектов бывает когда AV ловишь?
...
Рейтинг: 0 / 0
Lazarus. Access violation при TIBConnection.Open
    #40084029
Mironico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Gallemar,

Не следил.
Допишу.
...
Рейтинг: 0 / 0
Lazarus. Access violation при TIBConnection.Open
    #40084040
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mironico
С момента появления проблемы сервер уже не может соединиться
Может клиент уже успел сделать себе харакири, а не сервер? Сервер от других клиентов не перестает принимать коннекты?

Таки да, коннект поднимается не мгновенно, лучше держать несколько штук открытыми, пул коннектов зело ускоряет дело.
...
Рейтинг: 0 / 0
Lazarus. Access violation при TIBConnection.Open
    #40084048
Mironico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ivan_Pisarevsky,
авторСервер от других клиентов не перестает принимать коннекты?

Не перестает.
...
Рейтинг: 0 / 0
Lazarus. Access violation при TIBConnection.Open
    #40084057
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fr0sT-Brutal
Надо отследить, где конкретно вылезает АВ.
У меня в лазаре на open ничего не лезло, да, если сразу запросить пачку коннектов, может и отскочить, но ав-шек не было.
Отладчик что говорит?
...
Рейтинг: 0 / 0
Lazarus. Access violation при TIBConnection.Open
    #40084068
Mironico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ivan_Pisarevsky,

С отладчиком не запускал.
...
Рейтинг: 0 / 0
Lazarus. Access violation при TIBConnection.Open
    #40084069
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таки "Access Violation" или "Connection Refused"?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Lazarus. Access violation при TIBConnection.Open
    #40084073
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а меня заинтересовала строчка:
Код: pascal
1.
IBConnection.KeepConnection:=true;


что за чудо?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Lazarus. Access violation при TIBConnection.Open
    #40084128
Mironico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov

Таки "Access Violation" или "Connection Refused"?..


Первое.
...
Рейтинг: 0 / 0
Lazarus. Access violation при TIBConnection.Open
    #40084131
Mironico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мимопроходящий

а меня заинтересовала строчка:
Код: pascal
1.
IBConnection.KeepConnection:=true;


что за чудо?


По хелпу написано типа такого:
Держать ли коннект открытым после выполнения первого запроса.
Хз нафига оно но на всякий поставил ))).
...
Рейтинг: 0 / 0
Lazarus. Access violation при TIBConnection.Open
    #40084137
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MironicoПервое.

Значит Firebird вообще и сервер в частности тут ни при чём. Топик может отправляться к
Рустаму.

Для решения проблемы чаще всего достаточно снять Call Stack при возникновении этой ошибки.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Lazarus. Access violation при TIBConnection.Open
    #40084149
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну и пул какой прикрутить
птичка и web с коннектом на запрос эт прям боль
...
Рейтинг: 0 / 0
Lazarus. Access violation при TIBConnection.Open
    #40084151
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дегтярев Евгенийптичка и web с коннектом на запрос эт прям боль

XNET с его отсутствием шифрования не должен быть по идее "прямо боль"...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Lazarus. Access violation при TIBConnection.Open
    #40084153
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

на линухе оно работает?
оно ж локальное?
...
Рейтинг: 0 / 0
Lazarus. Access violation при TIBConnection.Open
    #40084156
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дегтярев Евгенийна линухе оно работает?

Нет. Хотя ничто не мешает. Но у аффтара по-любому Windows, поскольку в Линухе не возникает
ни сам Access Violation, ни проблемы с его устранением: там падающий по SEGFAULT процесс
отбрасывает легко анализируемую корку.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Lazarus. Access violation при TIBConnection.Open
    #40084164
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mironico
В какой-то момент на всех новых запросах начинает лезть ексепшн "Access violation"
вызове TIBConnection.Open.

В итоге на соединениях или на запросах сыпется?
...
Рейтинг: 0 / 0
Lazarus. Access violation при TIBConnection.Open
    #40084172
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

Дегтярев Евгенийна линухе оно работает?

Но у аффтара по-любому Windows

ну там и веба нет )
...
Рейтинг: 0 / 0
Lazarus. Access violation при TIBConnection.Open
    #40084191
Mironico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadman
Mironico
В какой-то момент на всех новых запросах начинает лезть ексепшн "Access violation"
вызове TIBConnection.Open.

В итоге на соединениях или на запросах сыпется?


На соединениях.
С момента появления первой ошибки на каждую попытку
TIBConnection.Open
дальше только "Access violation" во всех потоках.
Приходится перезапускать приложение.
...
Рейтинг: 0 / 0
Lazarus. Access violation при TIBConnection.Open
    #40084194
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
имхо, глюк реализации TIBConnection
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Lazarus. Access violation при TIBConnection.Open
    #40084198
Mironico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мимопроходящий

имхо, глюк реализации TIBConnection


Были такие мысли
но, думал, может чего не знаю.
...
Рейтинг: 0 / 0
25 сообщений из 30, страница 1 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Lazarus. Access violation при TIBConnection.Open
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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