jjccx

jjccx's blog
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Enable Exchange Trace(转)

Posted on 2009-12-30 23:15  jjccx  阅读(458)  评论(0编辑  收藏  举报
One interesting thing is that the Exchange 2007 actually provides a set of diagnostics tracers interface for its internal agents. In Exchange 2003 age, it is hard to use them in our own application. But Exchange 2007 actually exposes them freely for the DEV peoples. Meanwhile, the tracers are very powerful and have the following advantages:

1.    Easy to invoke and easy to use.
2.    It is using ETL tracing. The performance impact is small than normal tracers like log files or event log or database.
3.    We can use the tool “Mail Flow Troubleshooter” in Exchange Management console to catch, view, search and export the trace (can be XML/CSV/HTML format).


Is it cool?

Now let’s talk how to this works:

In this example (C#), we will use the Commontracer of the Exchange server’s internal diagnostic tracers.

// First of all, you need to add reference library by adding the following DLL file.
Exchange Server\Bin\Microsoft.Exchange.Diagnostics.dll

//Now you load the tracer functions.
//To output Error type trace
ExTraceGlobals.CommonTracer.TraceError()

//To output Debug type trace
ExTraceGlobals.CommonTracer.TraceDebug(int lid, long id, string, params)

//Others like
ExTraceGlobals.CommonTracer.TraceWarning()
ExTraceGlobals.CommonTracer.TraceInformation()
ExTraceGlobals.CommonTracer.TraceFunction()
ExTraceGlobals.CommonTracer.TracePerformance()
ExTraceGlobals.CommonTracer.Pfd()



//Sample code:
ExTraceGlobals.CommonTracer.TraceDebug(this.GetHashCode(), "My name is {0} {1}. I come from {2}", myfirstname, mysecondname, mycountry);


How to trace the agent
---------------------------------
The trace is using the Microsoft Exchange Diagnostics tracer and provides very detail output for every step in the mail flow. We can enable, capture, view, search, and export the trace easily in Microsoft Exchange Management Console.



NOTE:
1. Trace could affect the server performance.

2. ETL trace file could be big on a busy server. Please make sure you have enough disk space.



To enable and catch trace:
1. Open Exchange Management Console, go to Toolbox, open Mailflow Troubleshooter
2. Click “Select a task” in the left window, click “Trace Control” in the right window, click OK.
3. Change the ETL filename and path, click “set manual trace tag”
4. Under “Trace Type”, select one or several from Pfd/Fatal/Error/Warning/Info/Debug/Function/Performance.
5. Under “Components to trace”, select Common.
6. Under “Trace tag”, fill the checkbox Common. Leave the other checkboxes empty.
7. Click “Start Tracing”.
8. After running a while or reproducing some issue, you can click “Stop tracing now” to stop trace.


To view trace:
In the left window, click “select a result file to view”, select one report from the list, and then click “View result”.



To search words in the trace:
After opening one trace report, click “Find” to find strings.



To export trace:
After opening one trace report, click Export report, you can then export the report into a file with HTML/XML/CSV format.