| Предыдущий | Следующий |
| hrInvalidTableId | hrIllegalOperation |
hrTooManyOpenTables
Что означает hrTooManyOpenTables
hrTooManyOpenTables (0xC800051F) — больше таблиц открыть нельзя.
Что проверить
Зафиксируйте базу, таблицу или сессию ESE и первый API Jet/ESENT, который вернул hrTooManyOpenTables.
- Проверьте состояние базы и журналов ESE, свободные ресурсы процесса и состояние активной транзакции именно в момент отказа.
- Если ошибка возникла при восстановлении или работе с журналами, сопоставьте поколения журналов, контрольную точку и выбранный набор файлов; не подменяйте восстановление простым повтором операции.
Практический смысл и диагностика
- ESE workload исчерпал capacity open tables/cursors на соответствующем уровне engine/session.
- Отличайте от `hrTooManySorts`, который относится к concurrent sort resources, и `hrTooManyOpenIndexes`, где исчерпаны index descriptor resources.
- `hrTooManyOpenDatabases` относится к одновременно открытым databases, а не tables внутри них.
- Сохраните per-session open table/cursor counts и call sites, которые открывают tables без своевременного close.
- Ищите lifecycle leak/reuse opportunity; увеличение concurrency без закрытия table handles только ускорит повторное исчерпание.
Технические ссылки
- JET_param enumeration
- Transactions and save points
- ESE files and storage paths
- ESE source repository
- Microsoft: JET_ERR enumeration
Нужно найти другой код? Найти другой код состояния или ошибки.