2009-02-03 3 views
12

Gibt es eine Möglichkeit, genau zu bestimmen, warum ein System.Transaction TrasactionScope zu dem DTC eskaliert wird? Wir stoßen auf eine unserer Komponenten, die die Transaktion zu eskalieren scheinen, während alle anderen Komponenten (die täuschend ähnlich aussehen) keine Eskalation auslösen.Verfolgen Sie, warum eine Transaktion an DTC eskaliert wird

Gibt es Informationen über die Gründe für die Eskalation und wie können sie gefunden und beobachtet werden? SQL Profiler? Protokolldateien? Oder habe ich hier kein Glück?

UPDATE: Ich renne gegen SQL Server 2005 für Informationen

+0

Vorausgesetzt, die Datenbank ist SQL 2005 oder SQL 2008? – Kev

Antwort

7

Sie könnten versuchen, den Distributed Transaction Cordinator-Dienst herunterzufahren und seinen Starttyp auf deaktiviert zu setzen. Dies führt zu einer Ausnahme, wenn die Transaktion hochgestuft wird, die den Problemcode in der Aufrufliste enthält.

Natürlich hilft das nicht, wenn Sie andere Elemente auf dem Rechner haben, die diesen Dienst benötigen, aber auf einem Debug-Rechner möglich wären.

+0

Dies markieren die akzeptierte Antwort, weil es mir tatsächlich geholfen hat, das Problem aufzuspüren (was verursacht wurde indem eine zweite Verbindung geöffnet wird, wie Anton in http://stackoverflow.com/questions/506733/trace-why-a-transaction-is-escaled-to-dtc/506753#506753 erwähnt. –

9

Wenn TransactionScope mit einer Transaktion eskaliert wird, wenn Anwendung eine zweite Verbindung öffnet (auch mit derselben Datenbank) im Transaktionsbereich in Frage.

+0

Weitere Informationen: http://StackOverflow.com/Questions/1690892/TransactionsCope-Automatisch-escaling-to-msdtc-on-Some-Machines –

Verwandte Themen