2

主にLINQtoSQLとSystem.Transactionsを使用するWebサービス(.asmxとWCFの混合)を提供するWebサイトがあります。時折、トランザクションが分散トランザクションに昇格し、MSDTCを使用できないようにWebサーバーがデータベースから分離されているために問題が発生することがあります。

web.configに以下を追加して、System.Transactionsのトレースを構成しました。

<system.diagnostics>
  <sources>
    <source name="System.Transactions" switchValue="Information">
      <listeners>
        <add
          name="tx"
          type="System.Diagnostics.XmlWriterTraceListener"
          initializeData="tx.log"
          />
      </listeners>
    </source>
  </sources>
</system.diagnostics>

これは非常に興味深いものであり、トランザクションがプロモートされたときに表示されますが、その理由を見つけるのに実際には役立たないことがわかりました。

プーリングに影響を与える変数(ユーザー、cnn文字列、トランザクションスコープ)など、接続が作成されたときに表示されるADO.NETの同等のトレースメカニズムはありますか?

4

1 に答える 1

2

SQL Server 2005のデータアクセストレースを確認できます(SQL Server 2008バージョンへのリンクもあります)。この記事では、トレースを構成する方法と、生成されたファイルを読み取る方法について説明します。それがあなたが望むものを正確に与えるかどうかはわかりませんが、それは間違いなく接続/接続文字列を表示します。欠点は、多くの出力が生成されることです。

もう1つのオプションは、SQL Server Profilerまたはサーバー側トレースを実行して、接続、SQLステートメント、およびトランザクションをキャプチャすることです。

于 2010-04-23T04:31:37.447 に答える