powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FibDataBase OnLostConnect
25 сообщений из 27, страница 1 из 2
FibDataBase OnLostConnect
    #39295290
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день
Здесь Delphi кто-нибудь знает?
Не могу понять в чем проблема - требуется обрабатывать потерю связи с базой, сделал через OnLostConnect, FibDataBase.Timeout выставил в 10000, для проверки. При потере связи один из label на форме меняет caption. Запускаю, завершаю службу сервера, считаю до 10 - сообщения о потери связи нет.Процедура:
Код: pascal
1.
2.
3.
4.
5.
procedure TForm1.pFIBDatabase1LostConnect(Database: TFIBDatabase;
  E: EFIBError; var Actions: TOnLostConnectActions);
begin
   LabelDisconnect.Caption := 'Связь потеряна';
end;
...
Рейтинг: 0 / 0
FibDataBase OnLostConnect
    #39295314
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar,

Из ихней доки:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
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;
...
Рейтинг: 0 / 0
FibDataBase OnLostConnect
    #39295321
Фотография o_v_a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для того, чтобы обнаружить потерю соединения, надо обратиться к серверу. Простого ожидания тут недостаточно. Дергай периодически любой холостой запрос.
Ну, хоть select current_time from rdb$database.
...
Рейтинг: 0 / 0
FibDataBase OnLostConnect
    #39295326
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
o_v_aДля того, чтобы обнаружить потерю соединения, надо обратиться к серверу. Простого ожидания тут недостаточно. Дергай периодически любой холостой запрос.
Ну, хоть select current_time from rdb$database.
Дергал с одновременной записью в базу мониторинга, в итоге за сутки получил два часа простоя, хотя база в тот день работала без сбоев и перезагрузок. Пока хочу сделать таймеру

Код: pascal
1.
2.
3.
4.
5.
6.
pFibDatabase.Connected := False;
try
pFibDatabase.Connected := True;
  except 
 //тут запись в базу мониторинга, что бд недоступна
 end;



как то вот так
...
Рейтинг: 0 / 0
FibDataBase OnLostConnect
    #39295327
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar,

а если с БД мониторинга соединение потеряно?
...
Рейтинг: 0 / 0
FibDataBase OnLostConnect
    #39295330
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисGallemar,

а если с БД мониторинга соединение потеряно?
Это будет печально :( Вообще планирую мониторинг вынести или на отдельный инстанс, или на отдельный сервер.
Мониторится пока запуски назначенных заданий, если база не работает и он не выполнился пока никакой информации не требуется, пока.
...
Рейтинг: 0 / 0
FibDataBase OnLostConnect
    #39295418
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно ещё вопрос? Как можно подавить эксепшены при потере связи с бд?
Есть вот такой код (проба пера, не кидайте подсвешниками):
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Label1.Caption := 'Связь установлена!';
pFibDatabase1.Connected := False;[FIXED][/FIXED]
pFibDatabase1.Connected := True;
try
Label2.Caption := 'Связь установлена!';
Label3.Caption:=TimeToStr(Now);
except
Label2.Caption := 'Связь потеряна;
  end;
end;



Ну и при запуске самой программы:
Код: pascal
1.
2.
3.
4.
procedure TForm1.FormCreate(Sender: TObject);
begin
pFibDatabase1.Connected := True;
end;



Т.е. суть понятна - программа при запуске подключается к БД и каждые n минут по таймеру делает реконнект (в документации по фибам b devrace.com не нашел реконнекта, писал вот так). Завершаю службу FB,получаю эксепшен:
Код: plaintext
Unseccesfull execution caused by.... Unavailable database.
Как его подавить?
...
Рейтинг: 0 / 0
FibDataBase OnLostConnect
    #39295422
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GallemarКак его подавить?
try..except?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FibDataBase OnLostConnect
    #39295424
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar,

зачем постоянно рвать коннект?

Код: pascal
1.
2.
3.
4.
...
if not pFibDatabase1.Connected then
   pFibDatabase1.Connected := True;
...
...
Рейтинг: 0 / 0
FibDataBase OnLostConnect
    #39295426
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин,что то не то вообще написал,сорри
...
Рейтинг: 0 / 0
FibDataBase OnLostConnect
    #39295431
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот так должно быть:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Label1.Caption := 'Связь установлена!';
pFibDatabase1.Connected := False;
try
pFibDatabase1.Connected := True;
Label2.Caption := 'Связь установлена!';
Label3.Caption:=TimeToStr(Now);
except
Label2.Caption := 'Связь потеряна!';
  end;
end;



не туда первый раз try except поставил :)
...
Рейтинг: 0 / 0
FibDataBase OnLostConnect
    #39295435
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисGallemar,

зачем постоянно рвать коннект?

Код: pascal
1.
2.
3.
4.
...
if not pFibDatabase1.Connected then
   pFibDatabase1.Connected := True;
...



Я проверяю есть ли коннект к БД. Если нет - делаю запись в другую БД, что БД недоступна, потом эти данные аналитики перегонят в отчет с графиком, график - высокому руководству. Сейчас график строится на основании запроса 'select 1 from rdb$database', но почему то за 48 часов (выходные) почти 5 часов простоя, хотя их не было.
...
Рейтинг: 0 / 0
FibDataBase OnLostConnect
    #39296150
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Gallemar!
You wrote on 23 августа 2016 г. 12:13:14:

Gallemar> почему то за 48 часов (выходные) почти 5 часов простоя, хотя их не было.
суслика видишь? а он есть... (с)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FibDataBase OnLostConnect
    #39296205
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МимопроходящийHello, Gallemar!
You wrote on 23 августа 2016 г. 12:13:14:

Gallemar> почему то за 48 часов (выходные) почти 5 часов простоя, хотя их не было.
суслика видишь? а он есть... (с)

База работает 24/7, если будет простой 2 часа (какое два, за полчаса уши надерут в лучшем случае!!!) я бы знал
...
Рейтинг: 0 / 0
FibDataBase OnLostConnect
    #39296208
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GallemarБаза работает 24/7, если будет простой 2 часа (какое два, за полчаса уши надерут в лучшем
случае!!!)

Кластеризоваться тебе надо, барин, а не с мониторингом баловаться.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FibDataBase OnLostConnect
    #39296216
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov, каким образом?
...
Рейтинг: 0 / 0
FibDataBase OnLostConnect
    #39296225
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemarкаким образом?
Любым доступным.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FibDataBase OnLostConnect
    #39296265
miwaonline
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GallemarDimitry Sibiryakov, каким образом?
2 сервера + репликация проще всего, разве нет?
...
Рейтинг: 0 / 0
FibDataBase OnLostConnect
    #39296293
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miwaonline2 сервера + репликация проще всего, разве нет?проще пожалуй классика в виде пары серверов и шаред стораджа, только ценник на железо может спугнуть неподготовленного бойца. :)
...
Рейтинг: 0 / 0
FibDataBase OnLostConnect
    #39296299
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Ivan Pisarevsky!
You wrote on 23 августа 2016 г. 14:22:01:

Ivan Pisarevsky> проще пожалуй классика в виде пары серверов и шаред стораджа,
> только ценник на железо может спугнуть неподготовленного бойца. :)
если я всё правильно путаю, у них там денег - как у Жучки блох ;)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FibDataBase OnLostConnect
    #39296314
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уже было. Два сервера и репликация. И умирающая база с такой нагрузкой.
...
Рейтинг: 0 / 0
FibDataBase OnLostConnect
    #39296380
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийденег - как у Жучки блох ;)В соседнем разделе не очень давно была вакансия со смехотворной, даже для моей глубинки ЗП, не говоря уж о столичной, то ли от сибирского то ли от дальневосточного коллеги. Так что блохи могут быть сильно разного размера, а помимо блох еще бывает такое "животное" - жаба. :)
...
Рейтинг: 0 / 0
FibDataBase OnLostConnect
    #39296396
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_Pisarevskymiwaonline2 сервера + репликация проще всего, разве нет?проще пожалуй классика в виде пары серверов и шаред стораджа, только ценник на железо может спугнуть неподготовленного бойца. :)
Железо уже круче вареных яиц стоит :) Проблема в самой проге. Есть очень веселые вещи,типа обращений к mon$ для разруливания блокировок на изменение справочников/документов, обращение к ним же при выходе и т.п. По fb_lock_print видно, что менеджер не справляется с разруливанием.
...
Рейтинг: 0 / 0
FibDataBase OnLostConnect
    #39296400
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_PisarevskyМимопроходящийденег - как у Жучки блох ;)В соседнем разделе не очень давно была вакансия со смехотворной, даже для моей глубинки ЗП, не говоря уж о столичной, то ли от сибирского то ли от дальневосточного коллеги. Так что блохи могут быть сильно разного размера, а помимо блох еще бывает такое "животное" - жаба. :)
И сколько? Я свою зп озвучу и 3/4 раздела скинется мне на хлеб :)
...
Рейтинг: 0 / 0
FibDataBase OnLostConnect
    #39296685
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar,

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


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