| Предыдущий | Следующий |
| ERROR_CANT_RECOVER_WITH_HANDLE_OPEN | ERROR_ENLISTMENT_NOT_SUPERIOR |
ERROR_RM_DISCONNECTED
Что означает ERROR_RM_DISCONNECTED
ERROR_RM_DISCONNECTED означает, что Resource Manager потерял рабочую связь с Kernel Transaction Manager или своим Transaction Manager. Сам разрыв не сообщает итог незавершённых транзакций: среди них могут быть commit, rollback или in-doubt.
Что проверить
- Сохраните transaction ID, Resource Manager ID и последнее уведомление prepare/commit/rollback для каждой незавершённой транзакции.
- Проверьте crash, перезапуск службы или закрытие TM/RM, после которого прекратились KTM notifications.
- Для durable RM используйте его журнал; состояние памяти процесса после reconnect не является доказательством исхода транзакции.
Как восстановиться
Выполните предусмотренный KTM recovery, заново установите enlistments и определите исход всех незавершённых транзакций. Не повторяйте неидемпотентную запись, пока её прежний результат неизвестен.
Как подтвердить исправление
После восстановления у каждого enlistment есть однозначное состояние, а новые транзакции проходят через полный цикл уведомлений без разрыва.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.
