診斷交易式應用程式
本主題說明如何使用 Windows Communication Foundation (WCF) 的管理和診斷功能,對交易式應用程式進行疑難排解。
效能計數器
WCF 提供了一組標準的效能計數器,可讓您測量交易式應用程式的效能。如需詳細資訊,請參閱 WCF 效能計數器。
效能計數器分為三種不同的層級:服務、端點和作業,如下表所述。
服務效能計數器
效能計數器 | 描述 |
---|---|
流動的交易數 |
流動至此服務中作業的交易數。每當傳送給服務的訊息中出現一筆交易時,此計數器就會遞增。 |
每秒流動的交易數 |
每秒鐘流動至此服務中作業的交易數。每當傳送給服務的訊息中出現一筆交易時,此計數器就會遞增。 |
認可的交易作業數 |
此服務中交易已完成且其結果已經過認可的交易作業數。在這類作業下完成的工作會完全經過認可。資源會根據作業中完成的工作來更新。 |
每秒認可的交易作業數 |
每秒鐘此服務中交易已完成且其結果已經過認可的交易作業數。在這類作業下完成的工作會完全經過認可。資源會根據作業中完成的工作來更新。 |
中止的交易作業數 |
此服務中交易已完成且其結果已中止的交易作業數。在這類作業下完成的工作會復原。資源會還原為其先前狀態。 |
每秒中止的交易作業數 |
每秒鐘此服務中交易已完成且其結果已中止的交易作業數。在這類作業下完成的工作會復原。資源會還原為其先前狀態。 |
不確定的交易作業數 |
此服務中交易已完成且其結果不確定的交易作業數。結果不確定的已完成工作會處於不定狀態。資源會保留,以等待結果。 |
每秒不確定的交易作業數 |
每秒鐘此服務中交易已完成且其結果不確定的交易作業數。結果不確定的已完成工作會處於不定狀態。資源會保留,以等待結果。 |
端點效能計數器
效能計數器 | 描述 |
---|---|
流動的交易數 |
流動至此端點處作業的交易數。每當傳送給端點的訊息中出現一筆交易時,此計數器就會遞增。 |
每秒流動的交易數 |
每秒鐘流動至此端點處作業的交易數。每當傳送給端點的訊息中出現一筆交易時,此計數器就會遞增。 |
作業效能計數器
效能計數器 | 描述 |
---|---|
流動的交易數 |
流動至此端點處作業的交易數。每當傳送給端點的訊息中出現一筆交易時,此計數器就會遞增。 |
每秒流動的交易數 |
每秒鐘流動至此端點處作業的交易數。每當傳送給端點的訊息中出現一筆交易時,此計數器就會遞增。 |
Windows Management Instrumentation
WCF 會透過 WCF Windows Management Instrumentation (WMI) 提供者,在執行階段公開服務的檢查資料。如需 如需存取 WMI 資料的詳細資訊,請參閱使用 Windows Management Instrumentation 進行診斷。
許多唯讀的 WMI 屬性會指示服務套用的交易設定,下表則列出這些設定。
服務的 ServiceBehaviorAttribute 具有下列屬性。
名稱 | 型別 | 描述 |
---|---|---|
ReleaseServiceInstanceOnTransactionComplete |
Boolean |
指定是否會在目前的交易完成時回收服務物件。 |
TransactionAutoCompleteOnSessionClose |
布林值 |
指定當目前的工作階段關閉時,是否會完成暫止的交易。 |
TransactionIsolationLevel |
字串,其中包含 IsolationLevel 列舉的有效值。 |
指定服務支援的交易隔離等級。 |
TransactionTimeout |
指定交易必須完成的期間。 |
ServiceTimeoutsBehavior 具有下列屬性。
名稱 | 型別 | 描述 |
---|---|---|
TransactionTimeout |
DateTime |
指定交易必須完成的期間。 |
繫結的 TransactionFlowBindingElement 具有下列屬性。
名稱 | 型別 | 描述 |
---|---|---|
TransactionProtocol |
字串,其中包含 TransactionProtocol 型別的有效值。 |
指定用於流動交易的交易通訊協定。 |
TransactionFlow |
布林值 |
指定是否已啟用傳入交易流程。 |
作業的 OperationBehaviorAttribute 具有下列屬性:
名稱 | 型別 | 描述 |
---|---|---|
TransactionAutoComplete |
布林值 |
指定未發生未處理的例外狀況時是否要自動認可目前的交易。 |
TransactionScopeRequired |
布林值 |
指定作業是否需要交易。 |
作業的 TransactionFlowAttribute 具有下列屬性。
名稱 | 型別 | 描述 |
---|---|---|
TransactionFlowOption |
字串,其中包含 TransactionFlowOption 列舉的有效值。 |
指定交易流程被需要的程度。 |
追蹤
追蹤可讓您監視及分析交易式應用程式內的錯誤。您可以使用下列方式啟用追蹤:
標準 WCF 追蹤
這種追蹤型別與追蹤任何 WCF 應用程式相同。如需詳細資訊,請參閱 設定追蹤。WS-AtomicTransaction 追蹤
您可以使用 WS-AtomicTransaction Configuration Utility 啟用 WS-AtomicTransaction 追蹤。此類追蹤可讓您深入了解系統內交易和參與者的狀態。若要同時啟用內部服務模型追蹤,您可以將 HKLM\SOFTWARE\Microsoft\WSAT\3.0\ServiceModelDiagnosticTracing 登錄機碼設定為 SourceLevels 列舉的有效值。您可以使用和其他 WCF 應用程式相同的方法,啟用訊息記錄。System.Transactions 追蹤
使用 OleTransactions 通訊協定時,無法追蹤通訊協定訊息。System.Transactions 基礎結構提供的追蹤支援 (使用 OleTransactions) 可讓使用者檢視交易發生的事件。若要啟用 System.Transactions 應用程式的追蹤,請在 App.config 組態檔內加入下列程式碼。<configuration> <system.diagnostics> <sources> <source name="System.Transactions" switchValue="Verbose, ActivityTracing"> <listeners> <add name="Text" type="System.Diagnostics.XmlWriterTraceListener" initializeData="SysTx.log" traceOutputOptions="Callstack" /> </listeners> </source> </sources> <trace autoflush="true" indentsize="4"> </trace> </system.diagnostics> </configuration>
這個程式碼也可以啟用 WCF 追蹤,因為 WCF 也會使用 System.Transactions 基礎結構。