問題タブ [msdtc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
vpn - MSDTC 通信は VPN 経由でフェールオーバーします
同じサーバー上の複数のデータベースにまたがるトランザクションを実行するアプリケーションがあります。当然、これには Microsoft Distributed Transaction Coordinator が関与し、すべてが想定どおりに機能します。
ただし、サーバーがホストされているネットワークに VPN 経由でリモート接続し、ローカル マシンでアプリケーションを実行すると、次のエラーが表示され
ます。
原因:
System.Runtime.InteropServices.COMException:
エラー HRESULT E_FAIL が COM コンポーネントへの呼び出しから返されました。
元の例外のスタック トレースは次のとおりです。
System.Transactions.Oletx.IDtcProxyShimFactory.ReceiveTransaction (UInt32 propgationTokenSize、Byte[] propgationToken、IntPtr managedIdentifier、Guid& transactionIdentifier、OletxTransactionIsolationLevel& isolationLevel、ITransactionShim& transactionShim)
で
この問題は、VPN トンネル経由でサーバーに接続する場合にのみ発生します。
また、MSDTC をブロックしないようにするために、ローカル マシンで Windows ファイアウォールを一時的に無効にしていることにも注意してください。
VPN を介して MSDTC を実行する際の問題を知っている人はいますか?
.net - 単一のトランザクション、昇格されたトランザクションの下で同じ接続文字列を持つ複数の接続?
ado.net を使用し、1 つのトランザクション内で MS SQL Server データベースへの複数の接続を作成する場合 (System.Transactions.TransactionScope を使用)、System.Transactions はトランザクションを軽量トランザクション マネージャーから分散トランザクション コーディネーター (カーネル トランザクション コーディネーター) に昇格させますか?接続文字列がすべての接続オブジェクトで同じであっても?
ドキュメントは、この特定の状況についてややあいまいです。トランザクション中にサーバーへの別の接続が開かれると、トランザクションが昇格すると言われていますが、それが常に行われるのか、接続文字列が異なる場合にのみ行われるのかはわかりません。接続文字列が同じである場合にトランザクションが昇格することは私には意味がありませんが、そうである場合、基本的に軽量トランザクションマネージャーは完全に役に立たなくなります.IMO.
c# - MSDTC構成を読み取る
現在のマシンでMSDTC構成を読み取る方法について誰かがアイデアを持っていますか?私は特に、ユーザーが次の手順を実行したことを確認しようとしています。
コンポーネント管理を開きます([スタート]>[すべてのプログラム]>[管理ツール]>[コンポーネントサービス])
[コンポーネントサービス]をダブルクリックし、[コンピューター]を展開します。[マイコンピュータ]を右クリックして、[プロパティ]を選択します
[MSDTC]タブで、[セキュリティの構成]ボタンをクリックし、次のようにプロパティを構成します。
ネットワークDTCアクセス:チェック済み
リモートクライアントを許可する:チェック済み
インバウンドを許可:チェック済み
アウトバウンドを許可:チェック済み
必要な着信発信者認証:選択済み
これは、エンドユーザーの構成を検証するために作成する必要のある小さなコンポーネントの一部です。間違っていた場合は修正を試みないと思います。ユーザーにヘルプファイルを指定するだけなので、読み取り専用が必要です。
transactions - 取引範囲
トランザクション スコープはどのように機能しますか? 別のコンテキストが既に使用されていることをどのように認識し、コードに別の種類のスコープを実装するにはどうすればよいでしょうか。
私は主に vb.net の開発者ですが、c# を記述すれば読むことができます。
上記が曖昧すぎる場合:
system.transactions の機能とその使用方法を理解しています。私が知りたいのは、system.transactions スコープと同じ方法でそれを処理できるコードをラップできる、同様の独自のライブラリを作成する方法です。これをキャッシング モデルで使用する予定であり、大幅に強化されます。たとえば、トランザクションスコープが親スコープがあり、それにアタッチできること、またはコミットをより高いレベルまたはより高い連絡先で行う必要があることをどのように認識するかについての詳細を探しています。
たとえば、次のものがあれば
スコープ 1 はコミットされず、スコープ 2 もスコープ 3 もコミットされません。これは、それらすべての親がスコープ 1 のコンテキストであるためです。これを独自のライブラリで設定できるようにしたいと思います。
sql - MSDTC を使用したリンク サーバー エラー
インターネットを介した2つのシステム間の「リンクサーバー」を使用したデータトランザクションのストアドプロシージャの例を示しています
ストアドプロシージャを実行すると、さまざまな実行時間でさまざまなエラーが発生します
しばらくすると、このエラーが表示されます
別の時間にこのタイプのエラーが表示される
クライアント側で Windows XP と SQL Server 2005 を使用しており、ネット サーバーで Windows Server 2003 と SQL Server 2005 を使用しています。
両方のシステムで MSDTC を設定します
この問題を解決するにはどうすればよいですか (また、Windows XP および Windows Server 2003 で MSDTC を設定するための正しい情報を提供してください)
sql-server - Msdtcトランザクション
トランザクションの
例にリンクサーバーを使用しています
これは発生したエラーです:
Microsoft分散トランザクションコーディネーター(MS DTC)が分散トランザクションをキャンセルしました。
trace - トランザクションが DTC にエスカレートされる理由を追跡する
System.Transaction TrasactionScope が DTC にエスカレートされている理由を正確に判断する方法はありますか? トランザクションをエスカレートしているように見えるコンポーネントの 1 つにぶつかりましたが、他のすべてのコンポーネント (一見似ているように見えます) はエスカレーションを行いません。
エスカレーションの理由に関する情報は提供されていますか? また、それらをどのように見つけて観察することができますか? SQL プロファイラ? ログファイル?それとも、これで運が悪いのですか?
更新: 情報を得るために SQL Server 2005 に対して実行しています
ssis - DTC トランザクションに SSIS パッケージを登録する際に断続的に失敗する
パッケージがランダムに失敗し、次のエラー メッセージが表示されます。
SSIS エラー コード
DTS_E_OLEDBERROR
。OLE DB エラーが発生しました。エラー コード: 0x8004D00A。COM エラー オブジェクト情報が利用可能です。ソース: "[パッケージ名]" エラー コード: 0x8004D00A 説明: "SSIS ランタイムは、分散トランザクションに OLE DB 接続を登録できませんでした。エラー 0x8004D00A "トランザクションに登録できません"。
これは常に発生するわけではなく、パッケージを再実行すると成功することが多いため、DTC またはネットワーク構成の問題ではないと思います。これは、Studio 内から、または SQL エージェント ジョブによってパッケージを実行しているかどうかに関係なく発生します。後者の場合、パッケージは、接続しようとしているのと同じ SQL Server インスタンスで実行されています。
ログから、トランザクションが正しい時点で開始されていることがわかりますが、数秒後にエラーが発生します。
この時点でどんな提案もありがたく受け取った!
SQL Server の詳細: Server 2003 64 ビット エンタープライズ (3790) で実行されている 64 ビット エンタープライズ エディション (v9.0.3233)。サーバーは E5345 Xeon を実行し、6 GB の RAM を搭載しています。
msdtc - MSDTC(分散トランザクションコーディネーター)サービスが予期せず停止する
Windows Server 2008で作業していますが、MSDTC(分散トランザクションコーディネーター)サービスが予期せず停止し、再起動できません。
イベントビューアにアクセスすると、次のエラーメッセージが表示されます。「MSDTCコンポーネントで重大なエラーが発生したため、プロセスが終了します。カテゴリフィールドは、エラーが発生したコンポーネントを識別します。マイクロソフト製品サポートにお問い合わせください。エラーの詳細:hr = 0x80070002、d:\ rtm \ com \ complus \ dtc \ dtc \ msdtc \ src \ cservice.cpp:473、CmdLine:C:\ Windows \ System32 \ msdtc.exe、Pid:4504 "
誰かがそのサービスを再開する方法を知っていますか?
助けてくれてありがとう。セルジオ