Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FibDataBase OnLostConnect / 25 сообщений из 27, страница 1 из 2
22.08.2016, 08:51
    #39295290
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FibDataBase OnLostConnect
Добрый день
Здесь 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
22.08.2016, 09:30
    #39295314
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FibDataBase OnLostConnect
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
22.08.2016, 09:38
    #39295321
o_v_a
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FibDataBase OnLostConnect
Для того, чтобы обнаружить потерю соединения, надо обратиться к серверу. Простого ожидания тут недостаточно. Дергай периодически любой холостой запрос.
Ну, хоть select current_time from rdb$database.
...
Рейтинг: 0 / 0
22.08.2016, 09:46
    #39295326
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FibDataBase OnLostConnect
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
22.08.2016, 09:48
    #39295327
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FibDataBase OnLostConnect
Gallemar,

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

а если с БД мониторинга соединение потеряно?
Это будет печально :( Вообще планирую мониторинг вынести или на отдельный инстанс, или на отдельный сервер.
Мониторится пока запуски назначенных заданий, если база не работает и он не выполнился пока никакой информации не требуется, пока.
...
Рейтинг: 0 / 0
22.08.2016, 12:15
    #39295418
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FibDataBase OnLostConnect
А можно ещё вопрос? Как можно подавить эксепшены при потере связи с бд?
Есть вот такой код (проба пера, не кидайте подсвешниками):
Код: 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
22.08.2016, 12:22
    #39295422
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FibDataBase OnLostConnect
GallemarКак его подавить?
try..except?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
22.08.2016, 12:22
    #39295424
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FibDataBase OnLostConnect
Gallemar,

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

Код: pascal
1.
2.
3.
4.
...
if not pFibDatabase1.Connected then
   pFibDatabase1.Connected := True;
...
...
Рейтинг: 0 / 0
22.08.2016, 12:23
    #39295426
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FibDataBase OnLostConnect
Блин,что то не то вообще написал,сорри
...
Рейтинг: 0 / 0
22.08.2016, 12:32
    #39295431
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FibDataBase OnLostConnect
Вот так должно быть:
Код: 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
22.08.2016, 12:36
    #39295435
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FibDataBase OnLostConnect
Симонов ДенисGallemar,

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

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



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

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

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

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

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

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

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


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