さまざまなMSSQL2008データベースを備えたリンクサーバーを介して分散トランザクションを開始するストアドプロシージャがあります。
を使用しております
SET XACT_ABORT ON;
そしてまた
BEGIN TRY / CATCH blocks
トランザクションの周囲でエラーをキャッチし、エラーコードとメッセージを呼び出し元のクライアントに返します。
ただし、分散トランザクション内のコマンドが失敗すると、MS DTCが制御を引き継いでいるようで、catchブロックは「正常に」ロールバックできず、エラーメッセージなどを返すことができません。代わりにエラーが発生します:Microsoft分散トランザクションコーディネーター(MS DTC)は分散トランザクションをキャンセルしました。(エラー1206)。
そのような分散txエラーがcatchブロックによってキャッチされる方法はありますか?