Что означает код HRESULT 0xC800042E (hrCurrencyStackOutOfMemory)?

 
Предыдущий Следующий
hrVersionStoreOutOfMemory hrOutOfSessions

hrCurrencyStackOutOfMemory

Что означает hrCurrencyStackOutOfMemory

hrCurrencyStackOutOfMemory (0xC800042E) — не осталось курсоров.

Это старый HRESULT-вариант результата ESE (Extensible Storage Engine, ESENT); в JET API соответствующее условие известно как JET_errCurrencyStackOutOfMemory.

Что проверить

  • Сохраните позицию курсора перед вызовом: текущую запись, индекс, bookmark и уровень транзакции. После move/update/delete эта позиция может стать недействительной.
  • Bookmark и сохранённые идентификаторы должны относиться к той же таблице и контексту, где были получены; отсутствие текущей записи обрабатывайте отдельно от отсутствия объекта.

Практический смысл и диагностика

  • ESE исчерпал внутренний ресурс, используемый для сохранения cursor currency/navigation state.
  • Это не то же самое, что exhaustion количества cursor objects: проблема относится к stack/state, который поддерживает вложенные позиции cursor.
  • Temporary sort exhaustion имеет другой ресурсный предел; не увеличивайте все ESE limits одновременно, не установив какой именно pool исчерпан.
  • Упростите вложенную navigation, ограничьте recursion/bookmark nesting и закрывайте duplicated cursors в том scope, который их создал; зафиксируйте depth и последовательность операций перед первым отказом.

Технические ссылки


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