Что означает код HRESULT 0xC800070D (hrTooManyAttachedDatabases)?

 
Предыдущий Следующий
hrTempFileOpenError hrDiskFull

hrTooManyAttachedDatabases

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

hrTooManyAttachedDatabases (0xC800070D) — открыто слишком много присоединённых баз данных.

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

Зафиксируйте базу, таблицу или сессию ESE и первый API Jet/ESENT, который вернул hrTooManyAttachedDatabases.

  • Проверьте состояние базы и журналов ESE, свободные ресурсы процесса и состояние активной транзакции именно в момент отказа.
  • Если ошибка возникла при восстановлении или работе с журналами, сопоставьте поколения журналов, контрольную точку и выбранный набор файлов; не подменяйте восстановление простым повтором операции.
  • Проверьте ресурс или лимит, на который указывает hrTooManyAttachedDatabases: память, дескрипторы, квота, буфер, место или размер коллекции. Сначала установите, какой лимит исчерпан, и только затем освобождайте или увеличивайте именно его.

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

  • ESE instance достигла лимита databases, одновременно attached к этой instance.
  • Сначала detach базы, которые больше не нужны, либо разделите workload между намеренно отдельными instances с понятным ownership.
  • Не дублируйте тот же workaround повышением unrelated resource limits: attached DB count — отдельный lifecycle/resource boundary.
  • `TooManyOpenDatabases` относится к одновременно открытым database handles в sessions; attached database может быть закрыта, но всё ещё занимать attachment slot.
  • `OutOfSessions` — другой pool (`JET_SESID`); считайте attachments, opens и sessions раздельно и найдите владельцев долгоживущих attachments.

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


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