Что означает код NTSTATUS 0xC0190054 (STATUS_TRANSACTION_NOT_ROOT)?

 
Предыдущий Следующий
STATUS_TRANSACTIONMANAGER_RECOVERY_NAME_COLLISION STATUS_TRANSACTION_OBJECT_EXPIRED

STATUS_TRANSACTION_NOT_ROOT

STATUS_TRANSACTION_NOT_ROOT означает, что вызывающая сторона попыталась создать superior enlistment на подчинённой ветви транзакции. KTM разрешает superior-роль только корневой транзакции, поскольку она координирует подготовку и исход всего дерева.

Это отличается от STATUS_TRANSACTION_SUPERIOR_EXISTS. Not-root отклоняет место в дереве, даже если superior там ещё не создавался; superior-exists отклоняет второго координатора после уже существующего разрешённого superior enlistment.

Только корневая транзакция может стать superior

  • Проследите отношение родительской и корневой транзакции для дескриптора, использованного в вызове enlistment.
  • Создавайте superior enlistment только у предполагаемого корневого координатора, а для участвующих диспетчеров ресурсов используйте subordinate enlistments.
  • Зафиксируйте, интегрирует ли вызывающая сторона внешний компонент обработки транзакций, а не предполагает, что любой дескриптор может координировать исходы.

Ссылки


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