Что означает код NTSTATUS 0xC0190048 (STATUS_NO_SAVEPOINT_WITH_OPEN_FILES)?

 
Предыдущий Следующий
STATUS_NOT_SNAPSHOT_VOLUME STATUS_SPARSE_NOT_ALLOWED_IN_TRANSACTION

STATUS_NO_SAVEPOINT_WITH_OPEN_FILES

Открытые файлы препятствуют запрошенной операции с точкой сохранения

STATUS_NO_SAVEPOINT_WITH_OPEN_FILES означает, что TxF не может выполнить запрошенную операцию с точкой сохранения, пока в транзакции остаются открытые файлы. Точки сохранения изменяют границу отката, а открытые дескрипторы могут удерживать состояние, делающее такую границу небезопасной.

В прикладном коде обычно это проблема времени жизни дескрипторов. Перед установкой точки сохранения или откатом к ней закройте либо иным способом освободите дескрипторы, состояние которых будет затронуто.

Что следует проверить

  • Транзакционные файловые дескрипторы, остающиеся открытыми при вызове операции с точкой сохранения.
  • Дублированные или унаследованные дескрипторы либо дескрипторы, удерживаемые вспомогательными библиотеками.
  • Отображённые в память секции, сохраняющие ссылку на файловый объект даже после прекращения обычного ввода-вывода.
  • Не требуется ли коду более узкая область транзакции или меньше вложенных точек сохранения.

Полезное различие

Это ограничение относится именно к точке сохранения. Сама транзакция может оставаться пригодной, но TxF отклоняет данную операцию, пока не устранено состояние открытых файлов.

Ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.