Страница 2 из 2

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

Добавлено: 06 сен 2012, 21:25
hvlad
А был ли мальчик ? Что не так-то ? Я пока не видел ни одного примера "ошибочных" данных от isc_database_info

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

Добавлено: 10 сен 2012, 16:15
Devart
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.

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

Добавлено: 10 сен 2012, 17:26
hvlad
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.

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

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