Сессия, связанная с TM REQUEST и обработкой плана 0x0000
У нас есть периодическое событие, в котором много соединений зависает на TM REQUEST (от sys.dm_os_waiting_tasks
) и не продвигается. KILL
по затронутому session_id
ничего не делает
Сервер выполняет зеркальное отображение базы данных (2008R2). Приостановка и возобновление зеркалирования устраняет проблему, когда это происходит.
Сеанс, застрявший в этом состоянии, неуязвим. Нагрузка на зеркало является обычной, а не взрывоопасной. Как только большое количество соединений застряло в этом состоянии, система зависает, и зеркало перестает реплицироваться (все запросы блокируются).
Кто-нибудь видел это раньше и знал, что его вызывает? В журналах ошибок ничего нет.
2 ответа
TM означает Transaction Manager. Текущая команда установлена в TM Запрос означает, что нить в настоящее время обслуживает запрос DTC (Distributed Transaction Coordinator), либо заручиться транзакцией DTC, либо получить от него дефект, либо передать его, или так далее. Распределенные транзакции не поддерживаются для зеркалирования базы данных, поскольку они не могут гарантировать целостность транзакции. Запретите транзакции DTC, и это должно исчезнуть.
Service Broker использует диспетчер транзакций SQL Servers вместо Microsoft Distributed Transaction Coordinator (MS DTC). Транзакция выполняется не через экземпляры, а внутри экземпляра. Вы используете Service Broker?