Начало » Использование СУБД » Firebird, HQbird, InterBase » Непонятная транзакция
Непонятная транзакция [сообщение #568] |
Tue, 13 September 2022 14:43 |
ggreggory
Сообщений: 77 Зарегистрирован: July 2022
|
Member |
|
|
Приветствую знатоков и разработчиков!
WI-V3.0.7.33374 Firebird 3.0
Пытаюсь разобраться с периодическими блокировками. Включил трассировку.
Блокировка случилась. В тексте ошибки ссылка на номер транзакции 225895. В файле трассировки таковой не значится, сразу после 225894 идет 225896:
2022-09-13T11:57:32.6250 (1296:1CE01730) COMMIT_TRANSACTION
c:\DATABASE.FDB (ATT_2335, SYSDBA:NONE, UTF8, TCPv4:127.0.0.1/59261)
c:\PROGRAM.EXE:23888
(TRA_225894, READ_COMMITTED | REC_VERSION | NOWAIT | READ_WRITE)
0 ms, 1 fetch(es), 1 mark(s)
2022-09-13T11:57:42.7640 (1296:1CE01730) START_TRANSACTION
c:\DATABASE.FDB (ATT_2335, SYSDBA:NONE, UTF8, TCPv4:127.0.0.1/59261)
c:\PROGRAM.EXE:23888
(TRA_225896, READ_COMMITTED | REC_VERSION | NOWAIT | READ_WRITE)
Получается, трассировка не все транзакции обрабатывает?
|
|
|
|
|
|
|
|
|
|
Re: Непонятная транзакция [сообщение #579 является ответом на сообщение #577] |
Tue, 13 September 2022 20:36 |
ggreggory
Сообщений: 77 Зарегистрирован: July 2022
|
Member |
|
|
hvlad писал(а) Tue, 13 September 2022 16:22А сама ошибка (с номером тр-ции 225895) в трейс логе тоже есть ?
Можно это увидеть ? Нужна часть лога с момента старта тр-ции 225894 до ошибки.
Что удивительно, но и её нет.
Я использую IBExpert для запуска сессии трассировки. Предполагаю, что он работает через Service API и файл пишет самостоятельно. Так что может и IBExpert чудить.
Периодически встречаются в логе информация по перезапуску сессии:
2022-09-09T14:01:33.2590 (1296:0FFAA810) TRACE_FINI
SESSION_1 IBE_09.09.2022 10:07:02
2022-09-09T14:01:33.3540 (1296:0FFAA810) TRACE_INIT
SESSION_1 IBE_09.09.2022 10:07:02
Но сегодня днём, когда произошла блокировка, этих строк не было.
hvlad писал(а) Tue, 13 September 2022 16:22
Трейс может что-то "пропустить", если
а) у сессии трейса нет прав видеть сессию юзера, или
б) трейс настроен видеть конкретный коннект (см connection_id в fbtrace.conf), или
в) внутренний буфер сервера был переполнен и он приостанавливал сессию до тех пор, пока клиент не вычитает
данные и не освободит часть буфера (см. MaxUserTraceLogSize в firebird.conf).
Это не касатся аудита. В логе будут сообщения о приостановке сессии.
В момент когда были потерянные транзакции в логах попадался запрос вида:
SELECT (select result from PROCEDURE(...)), TBL.* FROM TBL
что вызывало огромное кол-во строк в логе:
2022-09-09T10:08:17.3740 (1296:01D6A910) EXECUTE_PROCEDURE_START
C:\DATABASE.FDB (ATT_2120, SYSDBA:NONE, UTF8, TCPv4:192.168.0.17/49858)
C:\PROGRAM.EXE:2668
(TRA_216134, READ_COMMITTED | REC_VERSION | NOWAIT | READ_WRITE)
Procedure PROCEDURE:
param0 = ...
param1 = ...
время у всех одинаковое или различается на 1/1000-ую секунды.
Мне видится наиболее вероятным вариант с переполнением буфера. Я увеличил MaxUserTraceLogSize до 100 и исключил отображение вызовов процедур из трассировки.
Посмотрю что будет. Блокировка происходит раз в неделю примерно.
|
|
|
|
Re: Непонятная транзакция [сообщение #584 является ответом на сообщение #581] |
Wed, 14 September 2022 10:29 |
ggreggory
Сообщений: 77 Зарегистрирован: July 2022
|
Member |
|
|
hvlad писал(а) Tue, 13 September 2022 22:34Т.е. неделю где-то висит запущенный с трейсом IBE ?
Да.
hvlad писал(а) Tue, 13 September 2022 22:34
Не проще ли запустить fbtracemgr с перенаправлением в файл ?
Ок, обязательно попробую.
|
|
|
Переход к форуму:
Текущее время: Sun Dec 22 14:37:31 GMT+3 2024
Общее время, затраченное на создание страницы: 0.00835 секунд
|