TM REQUESTおよび計画ハンドル0x0000でセッションがハングする


12

多数の接続がTM REQUEST(from sys.dm_os_waiting_tasks)でハングアップし、進行しない定期的なイベントがあります。KILL影響を受けた上でsession_id何もしません

サーバーはデータベースミラーリング(2008R2)を実行します。ミラーリングを一時停止して再開すると、問題が発生したときに修正されます。

この状態のままになっているセッションは強制終了できません。ミラーへの負荷は通常のもので、バースト的ではありません。この状態で多数の接続がスタックすると、システムがフリーズし、ミラーの複製が停止します(すべてのクエリがブロックされます)。

誰もこれを前に見て、それが何を引き起こしているのか知っていますか?エラーログには何もありません。


ミラーリングはどのモードとして構成されていますか?この問題が発生した場合の待機タイプは何ですか?SQL Serverが構成されている可能性はありますfiber modeか?
キンシャー

ミラーリングは同期モードです。繊維なし。他の待機はありません
トーマス・ケジール14年

resource_descriptionセットは何でしたか?
トーマスストリンガー14年

私もこれにあまりにも気づきませんでした(非同期を実行しますが、フェイルオーバーやパッチ適用などを行うと同期するように変更します)。DBが完全に同期された後もspidは残りますか?
サブハッシュパンツ14年

SPIDは一時停止後に消えます。しかし、問題が進行している間、彼らは殺すことができません
トーマス・ケッジェール14年

回答:


9

TMはTransaction Managerの略です。TM Requestに設定されている現在のコマンドは、スレッドが現在DTC(Distributed Transaction Coordinator)要求を処理しており、DTCトランザクションに参加するか、DTCトランザクションから障害を発生させるか、コミットするなどのことを意味します。分散トランザクションは、トランザクションの整合性を保証できないため、データベースミラーリングではサポートされていません。DTCトランザクションを抑制すると、これは消えるはずです。


クレジットS.アシュウィン、同僚、Microsoft SQLサポート
stacylaray 14年

これがどこから来たのかをどのように診断しますか?サーバー上のMSDTCログは空です
トーマスKejser

同じインスタンスでデータベース間トランザクションがある場合、DTCは関与できますか?
トーマスケイサー14年

@ThomasKejser- sp_configure 'Ad Hoc Distributed Queries'オンですか?-おそらく、一部のシステムはOPENQUERYアドホックステートメントなどを使用してデータベース間トランザクションを発行していますか?
マックスヴァーノン14年

1
クロスデータベーストランザクションは、DTCトランザクションが使用するのと同じ基本コードを使用します。主な違いは、DTCマネージャーの調整不足です。代わりに、SQL Serverはトランザクション内の最小のDBIDをトランザクションコーディネーターとして選択します。
stacylaray 14

0

Service Brokerは、Microsoft分散トランザクションコーディネーター(MS DTC)の代わりにSQL Serverトランザクションマネージャーを使用します。トランザクションはインスタンス間ではなく、インスタンス内にあります。Service Brokerを使用していますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.