次の方法で共有


サーバー構成: in-doubt xact resolution

適用対象: SQL Server Azure SQL Managed Instance Azure VM 上の SQL Server

in-doubt xact resolution オプションは、 Microsoft 分散トランザクション コーディネーター (MS DTC) で解決できないトランザクションの既定の結果を制御する場合に使用します。 トランザクションを解決できない原因は、復旧時の MS DTC のダウン タイムまたは状態が不明なトランザクション結果に関連している場合があります。

次の表は、状態が不明なトランザクションの解決について考えられる結果の値を示しています。

結果の値 説明
0 推測しません。 状態が不明なトランザクションを MS DTC で解決できない場合、復旧は失敗します。
1 コミットを推測します。 MS DTC の状態が不明なトランザクションは、コミットされたと見なされます。
2 中断を推測します。 MS DTC の状態が不明なトランザクションは、中断されたと見なされます。

次の例のように、長時間にわたるダウン タイムの可能性を最低限に抑えるために、管理者はコミットまたは中断を推測するようにこのオプションを設定できます。

sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'in-doubt xact resolution', 2; -- presume abort
GO
RECONFIGURE;
GO
sp_configure 'show advanced options', 0;
GO
RECONFIGURE;
GO

また、次の例のように、DTC エラーを認識するために、既定値 (推測なし) のままにして復旧を失敗させることができます。

sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'in-doubt xact resolution', 1; -- presume commit
GO
RECONFIGURE
GO
ALTER DATABASE pubs SET ONLINE -- run recovery again
GO
sp_configure 'in-doubt xact resolution', 0 -- back to no assumptions
GO
sp_configure 'show advanced options', 0
GO
RECONFIGURE
GO

in-doubt xact resolution オプションは拡張オプションです。 この設定の変更に、sp_configure システム ストアド プロシージャを使用する場合、show advanced options1 に設定されている場合のみ、in-doubt xact resolution の設定を変更することができます。 新しい設定は、サーバーを再起動しなくてもすぐに有効になります。

Note

分散トランザクションに関係するすべての SQL Server インスタンスで、このオプションを同じように構成すると、データの不整合を防ぐことができます。