Что означает код HRESULT 0x80630306 (PEER_E_DATABASE_NOT_PRESENT)?

 
Предыдущий Следующий
PEER_E_DATABASE_ALREADY_PRESENT PEER_E_IDENTITY_NOT_FOUND

PEER_E_DATABASE_NOT_PRESENT

Переход состояния, представленный HRESULT

PEER_E_DATABASE_NOT_PRESENT — HRESULT 0x80630306 означает, что операция графа или группы ожидает локальную базу, отсутствующую по настроенному пути. PEER_E_DATABASE_NOT_PRESENT — Ранее успешный вызов не гарантирует, что позднее полученные дескриптор, identity, запись или сетевое присутствие всё ещё действительны.

Восстановите последовательность событий

  1. Определите первый вызов среди PeerGraphOpen, PeerGroupOpen и путей импорта/настройки базы, вернувший этот HRESULT.
  2. Сохраните разрешённый путь к базе, профиль пользователя, identity графа/группы, предыдущие действия удаления/экспорта, события файловой системы и изменения конфигурации.
  3. Сопоставьте события graph, group, PNRP и collaboration с cancellation, disconnect, shutdown и sign-out приложения.
  4. Выполните узкое сравнение: запишите полностью нормализованный путь и сравните открытие отсутствующей цели с созданием новой временной базы под той же учётной записью.

Peer-записи объединяют типизированную структуру записи, необязательные доступные для поиска XML-атрибуты, полезную нагрузку, метаданные создателя и срок действия. Локальная база может получать записи в порядке, отличающемся от зависимостей приложения.

Матрица интерпретации

НаблюдениеИнтерпретация для PEER_E_DATABASE_NOT_PRESENT
Ни один create/open/enumerate вызов не вернул объектСбой происходит до контракта записи, описанного здесь.
Сначала произошло событие close, delete, disconnect, expiration или sign-outИсследуйте гонку lifecycle объекта до предположений о malformed network data.
Контролируемый запуск продвигается до другого HRESULTИсходное локальное реплицируемое хранилище исправлено, а новый код указывает на следующее невыполненное условие.

Ближайший альтернативный диагноз

PEER_E_RECORD_NOT_FOUND отличается тем, что отсутствие записи не означает отсутствия самого файла базы. Оба кода могут появиться в одном workflow, но не требуют одинакового исправления.

Исправление и подтверждение

восстановите или импортируйте правильную базу либо осознанно пересоздайте граф/группу; не создавайте пустое хранилище, если необходимы прежнее членство или записи. Проверяйте результат перечислением ожидаемых records, members, connections, endpoints или presence state, а не только исчезновением ошибки вызова.

Инструментирование и регрессионное покрытие

Фиксируйте первый неудачный вызов, а не более поздний результат cleanup. Решающее значение имеют разрешённый путь к базе, профиль пользователя, identity графа/группы, предыдущие действия удаления/экспорта, события файловой системы и изменения конфигурации.

Регрессионный уровеньПроверяемый случайУсловие прохождения
Входные данные и время жизни объектаПостройте минимальный сценарий, в котором операция графа или группы ожидает локальную базу, отсутствующую по настроенному пути.В тесте фиксируются владеющий дескриптор, контекст пользователя и точный API из PeerGraphOpen, PeerGroupOpen и путей импорта/настройки базы.
Контролируемое сравнениезапишите полностью нормализованный путь и сравните открытие отсутствующей цели с созданием новой временной базы под той же учётной записью.Между неудачным и успешным запуском меняется только нужное локальное реплицируемое хранилище.
Путь восстановлениявосстановите или импортируйте правильную базу либо осознанно пересоздайте граф/группу; не создавайте пустое хранилище, если необходимы прежнее членство или записи.Нужная операция завершается успешно без замены несвязанных метаданных поиска и срока действия.

Сохраняйте unsigned hexadecimal HRESULT, symbolic names и timestamps в одной trace. Такая запись позволяет регрессионному тесту отличить этот контракт записи от последующего сбоя транспорта, авторизации или приложения.

Исходные материалы


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