Site icon EfmSoft

Что означает код HRESULT 0x80630305 (PEER_E_DATABASE_ALREADY_PRESENT)?

 
Предыдущий Следующий
PEER_E_MAX_RECORD_SIZE_EXCEEDED PEER_E_DATABASE_NOT_PRESENT

PEER_E_DATABASE_ALREADY_PRESENT

Какой peer contract отклонён

PEER_E_DATABASE_ALREADY_PRESENT — HRESULT 0x80630305 означает, что для сочетания graph ID, peer ID и имени базы, указанного при создании/импорте, локальная база уже существует. PEER_E_DATABASE_ALREADY_PRESENT — Базовое описание сообщает результат; для диагностики нужен контракт данных и жизненный цикл, используемые PeerGraphCreate/Open и импортом базы графа.

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

Минимальный диагностический пакет

ЭлементДоказательство
Исходные данныеСохраните целевой путь, graph ID и peer ID, hash существующей базы, режим создания/импорта и намерение приложения: открыть, заменить или импортировать.
Контекст-владелецЗапишите Windows user, process integrity, graph/group handle, database path и выбранный cloud.
Предыдущий успехСохраните последний успешный результат create/open/enumerate/parse/register/sign-in, создавший объект.
Порядок результатовСохраняйте первый HRESULT, чтобы cleanup failures не заменили код, отклонивший запрос.

Целевое воспроизведение

используйте для импорта чистую временную цель и сравните с исходной занятой целью, не удаляя ни одну из баз. Используйте disposable identities/groups, если тест публикует names, создаёт credentials или изменяет replicated database.

Почему код сравнения отличается

PEER_E_DUPLICATE_GRAPH отличается тем, что database-already-present относится к identity постоянного хранилища, а duplicate-graph — к конфликту объекта графа внутри процесса. Диагностический отчёт должен сохранять symbolic constant и unsigned hexadecimal value.

Рекомендуемое изменение

откройте существующую базу, если именно она нужна, либо явно выберите новую цель для импорта; не заменяйте реплицируемое состояние без явного решения. Не удаляйте все peer databases, certificate store или firewall rules: широкие сбросы стирают доказательства и не подтверждают исправление caller contract.

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

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

Фиксируйте первый неудачный вызов, а не более поздний результат cleanup. Решающее значение имеют целевой путь, graph ID и peer ID, hash существующей базы, режим создания/импорта и намерение приложения: открыть, заменить или импортировать.

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

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

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


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

Exit mobile version