2009-05-15 6 views
4

Ich habe festgestellt, dass sehr einfache verteilte Transaktionen eine Menge Zeit (3-4 s) benötigen, um bei einem ersten Lauf abzuschließen. Aber wenn der gleiche Transaktionsbereich erneut aufgerufen wird, ist es viel schneller (30 ms). Es scheint, als würde MSDTC nach einer Stunde schlafen gehen. Nachdem die Stunde verstrichen ist, dauert die nächste auszuführende Transaktion 3-4 s.MSDTC (Distributed Transaction Coordinator) langsamen Erststart

Ich erwarte nicht viel Verkehr auf der Website, so ist es wahrscheinlich, dass viele Stunden zwischen einzelnen Transaktionen passieren könnten.

Ich dachte, dass dies möglicherweise aufgrund des MSDTC-Dienstes wurde manuell gestartet, aber ich habe dafür gesorgt, dass die MSDTC-Dienste werden beide automatisch ausgeführt.

Vermutung, dass es irgendwo eine Registrierungseinstellung gibt, aber ich hatte kein Glück, etwas in MSDN zu finden.

Vielen Dank!

Antwort

2

MSDTC führt COM-Komponenten zur Verarbeitung von Transaktionen aus und nach 20 Minuten (ich glaube, die Standardeinstellung) werden die Komponenten aus dem Speicher entladen. Die Verlangsamung, die Sie bei der ersten Transaktion feststellen, ist das Hochfahren der Umgebung und das Laden von Dingen in den Speicher.

+0

Haben Sie Referenzen dafür? – itchi

+0

Das ist nicht wahr. msdtc verwendet COM und RPC aber nicht COM +. –

1

kam ich heute über diese Frage, und ich weiß, die Frage etwas alt ist, aber ich war eine ähnliche Sache untersucht, und kam über diese:

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

Dieses KB ist auch alt, aber es Sieht für mich aus, dass da etwas in der Nähe von Leerlaufverbindungen ist. Es listet auch Registrierungseinstellungen auf. Ich bin nicht sicher, ob das hilft, aber meine Szenarien sind ziemlich unterschiedlich, so dass dies kein Problem ist (wenn das tatsächlich das Problem ist), wollte ich nur wissen, was vor sich ging.

Ich bin nicht ganz sicher, dass MSDTC als COM + -Komponente ausgeführt wird. Es gibt eine COM-Schnittstelle, aber ich konnte nirgendwo eine COM + -Komponente finden. Es wird als Dienst aufgeführt, und die COM-Schnittstelle kann umgangen werden, sodass direkt auf MSDTC zugegriffen werden kann. Mit all dem bezweifle ich wirklich, dass es eine COM + -Komponente ist. Nachdem ich das gesagt habe - es hat einige andere Abhängigkeiten - wie RPC Mapper denke ich, sie könnten auch einen Teil in diesem Problem haben.