SYSTEM ERROR: Invalid recid

Обсуждение вопросов по администрированию СУБД Progress OpenEdge
SergeSV
Новичок
Сообщения: 7
Зарегистрирован: 07 сен 2012, 06:00

SYSTEM ERROR: Invalid recid

Сообщение SergeSV » 11 апр 2014, 15:09

Добрый день!

Сегодня при просмотре логов базы обнаружил такое сообщение
SYSTEM ERROR: Invalid recid in index 1028 on file 84. Entry ignored.

Подскажите куда копать (как определить таблицу и индекс)?

Сейчас на базе запустил idxcheck, жду результатов.

OpenEdge Release 10.2B0723

Аватара пользователя
Arelav
Администратор
Сообщения: 1881
Зарегистрирован: 25 мар 2005, 17:05
Откуда: Progress Technologies
Контактная информация:

Re: SYSTEM ERROR: Invalid recid

Сообщение Arelav » 11 апр 2014, 16:11

Узнать название таблицы:

Код: Выделить всё

FOR EACH _file WHERE _file-num = 84 no-lock.
DISPL _file-name.
END.


Узнать имя индекса:

Код: Выделить всё

FOR EACH _index WHERE _idx-num = 1028 NO-LOCK.
DISPL  _index-name.
END.


Ну а потом просто переиндексировать проблемный индекс.

Но idxcheck это тоже неплохо, заодно всё сразу проверится.

SergeSV
Новичок
Сообщения: 7
Зарегистрирован: 07 сен 2012, 06:00

Re: SYSTEM ERROR: Invalid recid

Сообщение SergeSV » 11 апр 2014, 16:20

Спасибо.
Результаты - получил имя таблицы, посмотрю на нее, а вот имя индекса выдало _AreaExtent-Area. Что странно.
IdxCheck все еще в процессе, оставлю его работать на выходные.

Аватара пользователя
George
Старожил
Сообщения: 2871
Зарегистрирован: 12 май 2004, 17:03
Откуда: Питер

Re: SYSTEM ERROR: Invalid recid

Сообщение George » 11 апр 2014, 21:24

Opening a query based on zero, negative or unknown RECID or ROWID values generates error (18) in the database log file.
http://knowledgebase.progress.com/artic ... le/P12127/

SergeSV
Новичок
Сообщения: 7
Зарегистрирован: 07 сен 2012, 06:00

Re: SYSTEM ERROR: Invalid recid

Сообщение SergeSV » 12 апр 2014, 12:31

Я так понимаю, только текстовый передамп таблицы с такой записью спасет положение?

Аватара пользователя
George
Старожил
Сообщения: 2871
Зарегистрирован: 12 май 2004, 17:03
Откуда: Питер

Re: SYSTEM ERROR: Invalid recid

Сообщение George » 12 апр 2014, 18:45

Я сомневаюсь, что ошибка вызвана повреждением в какой-либо записи этой таблицы или её индекса. Статья из knowledgebase говорит о том, что ошибка может быть вызвана кодом приложения.

SergeSV
Новичок
Сообщения: 7
Зарегистрирован: 07 сен 2012, 06:00

Re: SYSTEM ERROR: Invalid recid

Сообщение SergeSV » 12 апр 2014, 19:06

Понятно, спасибо. Значит придется еще и с кодом разбираться :(

Аватара пользователя
George
Старожил
Сообщения: 2871
Зарегистрирован: 12 май 2004, 17:03
Откуда: Питер

Re: SYSTEM ERROR: Invalid recid

Сообщение George » 13 апр 2014, 21:02

Можно поправить promsgs файл таким образом, чтобы ошибка выдавалась и на экран - если она проявляется часто, то кто-нибудь из пользователей обратит на неё внимание. Если ошибка очень редкая, то можно сделать так, чтобы сессия на ней упала с генерацией protrace файла. Так и заметней будет, и код, на котором ошибка возникает, будет указан с точностью до оператора.

SergeSV
Новичок
Сообщения: 7
Зарегистрирован: 07 сен 2012, 06:00

Re: SYSTEM ERROR: Invalid recid

Сообщение SergeSV » 14 апр 2014, 06:45

Посмотрел логи базы на несколько дней, ошибка за день появляется в среднем 10-15 раз. Есть дни, когда эта ошибка вообще не возникает, видимо искомый код не выполняется :)
Что нужно поправить в promsgs и как вызвать падение сессии? Я бы попробовал смоделировать ситуацию на демобазе, т.к. есть подозрение на одно приложение.

Аватара пользователя
George
Старожил
Сообщения: 2871
Зарегистрирован: 12 май 2004, 17:03
Откуда: Питер

Re: SYSTEM ERROR: Invalid recid

Сообщение George » 14 апр 2014, 07:55

Нужно отредактировать копию promsgs файла в hex-редакторе - найти текст сообщения (благо оно в самом начале файла). Текст начинается с тэга "%L", означающего "писать только в лог базы". Его можно заменить на "%B" - (Both) писать в лог и на экран, или на "%G" - ("Большая Жо") аварийно завершить сессию с созданием protrace файла. Подменять строго буква на букву - без смещения текста. Клиентские сессии должны запускаться с отредактированной версией файла promsgs.

SergeSV
Новичок
Сообщения: 7
Зарегистрирован: 07 сен 2012, 06:00

Re: SYSTEM ERROR: Invalid recid

Сообщение SergeSV » 14 апр 2014, 12:06

Огромное спасибо за помощь, буду пробовать.