| Предыдущий | Следующий |
| 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.
Технические ссылки
- JET_param enumeration
- Transactions and save points
- ESE files and storage paths
- ESE source repository
- Microsoft: JET_ERR enumeration
Нужно найти другой код? Найти другой код состояния или ошибки.
