Sync Service for ADONET 是微軟MSF(Microsoft Sync Framework)中的一個重要組成部分它的提供了一套完整的開發框架應對與各種場景的離線數據同步我們可以用其開發一些復雜的場景用以適應復雜的企業邏輯比如在一份分布式場景中我們創建一個Server然後使用幾十或上千台PCNotebook以及WM Device(手機PDA移動設備)作為Client段使用Sync Service for ADONET 進行數據同步
對於這個復雜的分布式同步場景如何進行調試與糾錯呢?這時候需要用到 Tracing in Sync Services
什麼是Tracing in Sync Services?
Tracing 記錄了程序的各種操作包括同步數據和Metadata然後將這些信息給了 Listener作為Listener可以把這些信息記錄到一個文件中作為LOG日志或者根據你的要求傳送的其他地方在一個分布式的程序中Tracing是相當重要的因為你需要用到它調試程序的錯誤找到問題發生的根源否則查找問題發生的根源是非常困難的
如何開始開啟Tracing in Sync Services
在缺省的情況下Tracing是關閉的 我們可以通過配置 Trace Listener來開啟Tracing
我們可以通過編輯 nfig來開啟Tracing請加入以下的代碼
<configuration>
<systemdiagnostics>
<switches>
<! off error warn info verbose >
<add name=SyncTracer value= />
</switches>
<trace autoflush=true>
<listeners>
<add name=TestListener type=SystemDiagnosticsTextWriterTraceListener initializeData=c:\TraceSampletxt/>
</listeners>
</trace>
</systemdiagnostics>
</configuration>
如何選擇合適的Trace Level
Trace的記錄會帶來一些性能上的影響你需要認真考慮如何設置TraceLevel從而達到Trace記錄與產品性能上的平衡
通常情況下如果只是想監控錯誤消息選擇TraceLevel=或即可 當你需要更多的LOG信息以便於調試觀察時你可以將TraceLevel=或請記住這時候產生的LOG是非常詳細的與其對應的LOG文件也會很大 這會給程序的性能帶來不小的影響通常情況下我們只會在調試錯誤以及開發過程中使用此TraceLevel
詳細信息請查看下表
Switch value
Tracing level
Output
off
No messages to trace listeners
error
Only error messages to trace listeners
warning
Error and warning messages to trace listeners
info
Informational warning and error messages to trace listeners
verbose
All messages to trace listeners
開始一個實例驗證Traceing是否能正常工作
按照上面的我介紹的方法將TraceLevel=運行程序後LOG文件被被產生
其格式如下
INFO MyAppvshost // ::: Connecting to server using string: Data Source=localhost;Initial Catalog=SyncSamplesDb;Integrated Security=True
INFO MyAppvshost // ::: Server Enumerating Changes to Client for Group Customer
INFO MyAppvshost // ::: Client Id: bcfbfcccdeee
INFO MyAppvshost // ::: Mapped Originator Id:
INFO MyAppvshost // :::
INFO MyAppvshost // ::: Enumerating Inserts for Table Customer
INFO MyAppvshost // ::: Changes Enumerated:
INFO MyAppvshost // ::: End Enumerating Inserts for Table Customer
怎麼樣整個同步的過程是不是清晰明了呢作為初學者我們可可以通過觀察LOG的變化從而深入的了解
From:http://tw.wingwit.com/Article/program/net/201311/12100.html