Что означает код NTSTATUS 0xC0420009 (STATUS_BTH_ATT_PREPARE_QUEUE_FULL)?

 
Предыдущий Следующий
STATUS_BTH_ATT_INSUFFICIENT_AUTHORIZATION STATUS_BTH_ATT_ATTRIBUTE_NOT_FOUND

STATUS_BTH_ATT_PREPARE_QUEUE_FULL

Транзакция надёжной записи превысила ёмкость временной очереди сервера

STATUS_BTH_ATT_PREPARE_QUEUE_FULL соответствует ошибке ATT 0x09. Запросы Prepare Write помещают фрагменты в промежуточное состояние до последующего решения Execute Write; сервер возвращает этот код, когда в очереди нет места для ещё одного фрагмента.

Это более конкретное состояние, чем общий недостаток ресурсов. На сервере уже могут находиться принятые фрагменты, а автоматический повтор способен продублировать или переупорядочить транзакцию. ATT не фиксирует подготовленные значения до запроса Execute Write, поэтому восстановление должно учитывать состояние незавершённой транзакции.

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

  • Отслеживайте каждый подготовленный фрагмент: дескриптор, смещение, диапазон байтов, ответ, идентификатор транзакции приложения и отправку Execute Write или Cancel.
  • Ограничивайте число и суммарный размер ожидающих подготовленных записей; при небольшой очереди периферийного устройства завершайте или отменяйте одну транзакцию до начала другой.
  • После отключения или ошибки явно восстанавливайте состояние транзакции, не предполагая, что сервер сохранил либо отбросил фрагменты очереди.

Ссылки


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