4

非常に単純な分散トランザクションは、最初の実行で完了するまでにかなりの時間 (3 ~ 4 秒) かかることに気付きました。しかし、同じトランザクション スコープが再度呼び出されると、はるかに高速になります (30 ミリ秒)。MSDTC は 1 時間後にスリープ状態になるようです。1 時間が経過すると、次のトランザクションの実行に 3 ~ 4 秒かかります。

サイトのトラフィックはそれほど多くないと思うので、個々の取引の間に何時間もかかる可能性があります。

おそらくこれは、MSDTC サービスが手動で開始するように設定されているためだと思いましたが、MSDTC サービスが両方とも自動的に実行されていることを確認しました。

どこかにレジストリ設定があると思いますが、MSDN で何かを見つけることができませんでした。

ありがとうございました!

4

2 に答える 2

2

MSDTC は COM コンポーネントを実行してトランザクションを処理し、20 分後 (デフォルトだと思います)、コンポーネントはメモリからアンロードされます。最初のトランザクションで見られるスローダウンは、環境がスピンアップしてメモリにロードされることです。

于 2009-05-15T16:15:20.467 に答える
1

私は今日この質問に出くわしました。質問がちょっと古いことは知っていますが、同様のことを調査していて、これに出くわしました:

http://support.microsoft.com/kb/197810

この KB も古いですが、アイドル状態の接続が閉じられていることに何か問題があるように見えます。また、レジストリ設定も一覧表示します。これが役立つかどうかはわかりませんが、私のシナリオはまったく異なるため、これは問題ではありません (これが実際に問題である場合)。何が起こっているのか知りたかっただけです。

MSDTC が COM+ コンポーネントとして実行されるかどうかはよくわかりません。それへの COM インターフェイスがありますが、それが COM+ コンポーネントであるという言及はどこにも見つかりませんでした。これはサービスとしてリストされており、COM インターフェイスをバイパスできるため、MSDTC に直接アクセスできます。以上のことから、これが COM+ コンポーネントであるとは思えません。そうは言っても、他にもいくつかの依存関係があります-RPCマッパーのように、それらもこの問題に関与している可能性があります。

于 2013-12-18T10:42:00.633 に答える