Isc_database_info. Информация о транзакциях.

Access Violation, некорректное выполнение запросов или вызовов API, ошибки утилит командной строки, в общем все, что вам мешает работать

Модераторы: kdv, dimitr

hvlad
Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48

Re: Isc_database_info. Информация о транзакциях.

Сообщение hvlad » 06 сен 2012, 21:25

А был ли мальчик ? Что не так-то ? Я пока не видел ни одного примера "ошибочных" данных от isc_database_info

Devart
Сообщения: 2
Зарегистрирован: 10 сен 2012, 13:20

Re: Isc_database_info. Информация о транзакциях.

Сообщение Devart » 10 сен 2012, 16:15

gstat -h возвращает:
Oldest transation - 23
Oldest active - 24
Oldest snapshot - 24
Next transaction - 25
Эти данные являются корректными. Без старта транзакции все протестированные нами компоненты возвращают те же значения. Если стартовать транзакцию то тот же самый код во всех компонентах возвращает следующие значения:
Oldest transation - 25
Oldest active - 26
Oldest snapshot - 26
Next transaction - 26 !!!
Next transaction должна стать 27, но сервер возвращает 26. Данные результаты получены для Firebird-2.5.1.26351_1_Win32 .
для вызова isc_database_info стартовать транзакцию не нужно
Мы это знаем, IBDAC стартует транзакцию не для вызова isc_database_info.

hvlad
Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48

Re: Isc_database_info. Информация о транзакциях.

Сообщение hvlad » 10 сен 2012, 17:26

Devart писал(а):Если стартовать транзакцию то тот же самый код во всех компонентах возвращает следующие значения:
Oldest transation - 25
Oldest active - 26
Oldest snapshot - 26
Next transaction - 26 !!!
Next transaction должна стать 27, но сервер возвращает 26.
Кому она должна ? :)
Старт тр-ции обновляет все счётчики, но на диск записывается только Next.
Остальные счётчики живут в переменных (до следующего обновления header page).
gstat читает счётчики с диска.
isc_database_info выдаёт состояние переменных, поэтому тут могут быть более свежие данные.

Как я уже писал выше, Next есть номер последней выданной тр-ции, а не следующей.
Так было всегда, по крайней мере в Firebird это не менялось после IB6.

Devart
Сообщения: 2
Зарегистрирован: 10 сен 2012, 13:20

Re: Isc_database_info. Информация о транзакциях.

Сообщение Devart » 11 сен 2012, 10:49

Тогда, как мы и отвечали пользователю SyntaXErr0r, это корректное поведение Firebird.
Спасибо Вам, hvlad, за разъяснение данного вопроса.

Ответить