[I128-2847] Record: устаревшее содержимое SID-кеша при разном регистре имени БД


НАЧАЛО >> Оглавление >> Общее описание >> История изменений >> Что нового в проекте I128 >> Версия 2026.3 >> [I128-2847] Record: устаревшее содержимое SID-кеша при разном регистре имени БД📄 Скачать в DOCX


Тип Версия Статус Приоритет Исполнитель
⚙️ Исправление ошибок 2026.3 🔘 Завершено Средний Ilya Mikhaylenko

Компоненты: ИРБИС 128. Модуль Record - Запись ИРБИС

Завершено: 09.09.2026 06:53

Проблема: При сохранении записи с SID устаревшее содержимое записи могло оставаться в системном кеше, если запись ранее была закеширована с тем же именем БД в другом регистре. Из-за этого последующее чтение записи по SID могло вернуть прежнее содержимое до очистки кеша.

Ожидаемое поведение: После сохранения или удаления записи чтение по SID должно видеть актуальное состояние записи независимо от регистра имени БД, использованного при создании старой cache map и ключей Record*Content**.

Решение: Ключи Record*Content** для новых записей формируются с нормализованным именем БД. При сохранении и удалении записи система очищает Record*SidMap*<sid>, explicit contentKey из карты SID и legacy-варианты Record*Content*<db>_<mfn> для текущей пары БД/MFN.

Результат для пользователя: Изменения записей с SID становятся видны сразу после сохранения без ручной очистки системного кеша.

-

PR по I128~~2847 исправляет системную инвалидацию SIDкеша записей в модуле Record. Ветка `hotfix/I1282847создана отdevelop; изменение затрагивает только ключиRecord*Content*, картуRecordSidMap`, операции сохранения/удаления записи и regression~~сценарий TestA.

Куда смотреть:

Изменения по файлам:

modules/Database/__call/SaveAndUpdateRecord.inc

modules/Database/__call/DeleteRec.inc

modules/Database/__call/RecRead.inc

modules/Record/__call/GetBySid.inc

modules/Record/__call/SidReload.inc

modules/Record/__call/SidSave.inc

modules/Database/Tests/Scenarios/ProviderMatrixRecordCacheIterationEdgeContracts.inc

modules/Record/Help/SidCache.md

1. Связанные задачи

1.1. 🔗 relates to: I128-2721

[I128-2721] Record: не возвращать чужую запись из SID-кеша Статус: Завершено | Автор: Ilya Mikhaylenko

1.2. 🔗 relates to: I128-2846

[I128-2846] Bookland: настройка порядка видов поиска в форме «Выдача без заказа» Статус: Завершено | Автор: Ilya Mikhaylenko