問題タブ [mstdc]

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.

0 投票する
1 に答える
4378 参照

transactions - 分散トランザクションはどのように機能しますか (MSDTC など)?

通常の ACID トランザクションがどのように機能するか、あいまいな方法で理解しています。ある種のコミットフラグが設定されるまで作業が確認されないように、データベースでいくつかの作業を実行します。コミット部分は、いくつかの基本的な仮定に基づいています (単一のディスク ブロックの書き込みがアトミックであるなど)。壊滅的なエラーが発生した場合は、リカバリ フェーズでコミットされていないデータを消去できます。

分散トランザクションはどのように機能しますか? MS のドキュメントのいくつかで、データベースとファイルシステム間で何らかの方法でトランザクションを実行できることを読みました (とりわけ)。

このテクノロジーは、プログラムを完全にインストールするか、完全に存在させないようにするインストーラーに使用できます (おそらく使用されています)。インストーラーの開始時にトランザクションを開始するだけです。次に、レジストリとファイルシステムに接続して、インストールを定義する変更を行います。ジョブが完了したら、単純にコミットするか、何らかの理由でインストールが失敗した場合はロールバックします。レジストリとファイル システムは、この魔法の分散トランザクション コーディネーターによって自動的にクリーンアップされます。

2 つの異なるシステムがこのように処理される可能性はありますか? ファイルシステムが変更をコミットし、レジストリがコミットしていないという、一貫性のない状態でシステムを放置することは常に可能であるように私には思えます。MSDTC では、ネットワークを介してトランザクションを実行することさえ可能だと思います。

http://blogs.msdn.com/florinlazar/archive/2004/03/04/84199.aspxを読みましたが、説明の冒頭に過ぎず、手順 4 を大幅に拡張する必要があるように感じます。

編集: http://en.wikipedia.org/wiki/Distributed_transactionで収集したものから、2 フェーズ コミット ( http://en.wikipedia.org/wiki/Two-phase_commit )によって実現できます。これを読んだ後でも、私はまだこの方法を 100% 理解していません。ステップ間にエラーの余地がたくさんあるようです。

0 投票する
5 に答える
3088 参照

c# - 2 つのリモート SQL 接続時に Transactionscope が機能しない

C# コンソール アプリケーション プロジェクトで 2 つの SQL Server 接続オブジェクトを使用しています。これを単一のトランザクションで行う必要があるため、Transactionscope (分散トランザクション) を使用しました

transactionscope 内で接続を使用できません エラーが表示されます

サーバー上の MSDTC は利用できません。

どうすれば解決できますか....1つのSQL接続はリモートサーバーであり、もう1つはローカルサーバーです。

注:- msdtc サービスは既に開始されています。

サーバーは両方のマシンで起動しました。それでも私は問題に直面しています。ローカル イントラネット マシンのファイアウォールを無効にする必要がありますか。

0 投票する
4 に答える
17599 参照

asp.net - MSDTC - 基になるトランザクション マネージャーとの通信に失敗しました (ファイアウォールが開いており、MSDTC ネットワーク アクセスがオンになっています)。

ASP.NET Web フォーム システムに問題があります。

テストサーバーでは機能しましたが、サーバーの1つがDMZ内にあり、SQLサーバーがその外にあります(ただし、ネットワーク上ではまだ-異なるサブネットですが)ライブにしています

これら2つのボックス間のファイアウォールを完全に開いて、それが問題であるかどうかを確認しましたが、「TransactionScope」を使用しようとするたびに、「基礎となるトランザクションマネージャーとの通信に失敗しました」というエラーメッセージが表示されます。データにアクセスして取得できますが、それを壊すのはトランザクションだけです。

また、msdtc ping を使用して接続をテストし、ping が成功するファイアウォールの修正を行いましたが、同じエラーが発生します。

このエラーを解決するにはどうすればよいですか?

私たちは今日稼働するシステムを持っているので、どんな助けも素晴らしいでしょう. パニック :)

編集:以下のようなトランザクションでより簡単なテスト ページを作成しましたが、これは正常に動作します。入れ子になったトランザクションがこの種のエラーを引き起こす可能性がありますか?もしそうなら、なぜこれはファイアウォールを備えた DMZ でライブボックスを使用するときにのみ問題を引き起こすのでしょうか?

これは、問題が発生したときに取得する ErrorStack です。

0 投票する
1 に答える
480 参照

wcf - トランザクション スコープ wcf を使用し、分散トランザクションへの不要なエスカレーションを回避します

wcf アプリケーションのエスカレーション分散トランザクションに問題があります。

私のコードは次のようになります:

ログリポジトリ

LogService

プロジェクトは.NET 4にあり、Sql Server 2008R2を使用しています

上記のコードは、このように構成されている私の wcf サービスを呼び出します

私の問題はトランザクション スコープにあり、これは常に配布されたものとして宣伝されます。

私は何か間違ったことをしていますか?(私はwcfサービスプログラミングに少し慣れていません)

ありがとう

0 投票する
2 に答える
13656 参照

windows - アクセスが拒否される SUBINACL

MSDTC サービスの情報を表示するだけの SUBINACL ユーティリティを取得しようとしています。

subinacl /service mstdc と入力すると、エラー 5 アクセスが拒否されました

DHCP サービスに対して同じコマンドを実行すると、すべてのセキュリティが得られます。管理者の下で実行しています。MSDTC でこれを修正できるレジストリの場所はありますか ???

Windows 2008 R2 64 ビットを使用しています。

ありがとう。

0 投票する
2 に答える
791 参照

performance - DB2 テーブルに対するパフォーマンス トランザクション スコープ

パフォーマンスの問題の原因を突き止めようとしています。

主キーとカウンターを含む単一行のテーブルがあります。トランザクション内で、カウンターの値を読み取り、値を 1 つ増やして、新しい値を保存します。

読み取りと更新は Entity Framework を使用して行われます。シリアル化可能なトランザクション スコープを使用します。カウンター値が 1 回だけ読み取られるようにする必要があります。

ほとんどの場合、これには 0.1 秒かかりますが、1 秒以上かかることもあります。なぜこれが起こるのかについてのパターンを見つけることができませんでした.

トランザクション スコープを使用しているときに、他の誰かがさまざまなパフォーマンスを経験しましたか? トランザクション スコープを使用して削除し、トランザクションを接続に直接設定すると役立つでしょうか?

0 投票する
0 に答える
36 参照

.net - DTC - トランザクションの終了を知る方法

MSDN によると、.net メソッド ContextUtil.SetComplete を使用すると、「COM+ コンテキストは現在のトランザクションをコミットし、オブジェクトはメソッドの戻り時に非アクティブ化されます」。トランザクションの終了後にコードを追加する方法がわからないという問題はありますか?

お知らせ下さい