Диагностика транзакционных приложений
В этом разделе описывается, как использовать управление Windows Communication Foundation (WCF) и диагностика функцию для устранения неполадок с транзакционным приложением.
Счетчики производительности
WCF предоставляет стандартный набор счетчиков производительности для измерения производительности транзакционного приложения. Дополнительные сведения см. в статье Performance Counters.
Счетчики производительности группируются по трем различным уровням области действия: служба, конечная точка и операция, как описано в приведенных далее таблицах.
Счетчики производительности службы
Счетчик производительности | Description |
---|---|
Количество поступивших транзакций | Количество транзакций в операциях для данной службы. Значение этого счетчика увеличивается каждый раз, когда в сообщении, отправленном в службу, имеется транзакция. |
Количество поступивших транзакций в секунду | Количество транзакций в операциях для данной службы за каждую секунду. Значение этого счетчика увеличивается каждый раз, когда в сообщении, отправленном в службу, имеется транзакция. |
Количество зафиксированных операций с поддержкой транзакций | Количество выполненных операций с поддержкой транзакций, транзакции которых были завершены с результатом, зафиксированным в этой службе. Работа, выполненная в таких операциях, полностью зафиксирована. Ресурсы обновлены в соответствии с работой, выполненной в операции. |
Количество зафиксированных операций с поддержкой транзакций в секунду | Количество выполненных операций с поддержкой транзакций, транзакции которых были завершены с результатом, зафиксированным в этой службе в течение каждой секунды. Работа, выполненная в таких операциях, полностью зафиксирована. Ресурсы обновлены в соответствии с работой, выполненной в операции. |
Количество прерванных операций с поддержкой транзакций | Количество выполненных операций с поддержкой транзакций, транзакции которых были завершены с прерыванием в этой службе. Для работы, выполненной в таких операциях, производится откат. Для ресурсов восстанавливается предыдущее состояние. |
Количество прерванных операций с поддержкой транзакций в секунду | Количество выполненных операций с поддержкой транзакций, транзакции которых были завершены прерыванием в этой службе в течение каждой секунды. Для работы, выполненной в таких операциях, производится откат. Для ресурсов восстанавливается предыдущее состояние. |
Количество операций с поддержкой транзакций с сомнительным результатом | Количество выполненных операций с поддержкой транзакций, транзакции которых были завершены с сомнительным результатом в этой службе. Работа, выполненная с результатом "сомнительно", находится в неопределенном состоянии. Ресурсы находятся в состоянии ожидания результата. |
Количество операций с поддержкой транзакций с сомнительным результатом в секунду | Количество выполненных операций с поддержкой транзакций, транзакции которых были завершены с результатом "сомнительно" в этой службе в течение каждой секунды. Работа, выполненная с результатом "сомнительно", находится в неопределенном состоянии. Ресурсы находятся в состоянии ожидания результата. |
Счетчики производительности конечных точек
Счетчик производительности | Description |
---|---|
Количество поступивших транзакций | Количество транзакций, поступивших в операции на этой конечной точке. Значение этого счетчика увеличивается каждый раз, когда в сообщении, отправленном на эту конечную точку, содержится транзакция. |
Количество поступивших транзакций в секунду | Количество транзакций в операциях для данной конечной точки за каждую секунду. Значение этого счетчика увеличивается каждый раз, когда в сообщении, отправленном на эту конечную точку, содержится транзакция. |
Счетчики производительности операций
Счетчик производительности | Description |
---|---|
Количество поступивших транзакций | Количество транзакций, поступивших в операции на этой конечной точке. Значение этого счетчика увеличивается каждый раз, когда в сообщении, отправленном на эту конечную точку, содержится транзакция. |
Количество поступивших транзакций в секунду | Количество транзакций в операциях для данной конечной точки за каждую секунду. Значение этого счетчика увеличивается каждый раз, когда в сообщении, отправленном на эту конечную точку, содержится транзакция. |
Инструментарий управления Windows (WMI)
WCF предоставляет данные проверки службы во время выполнения через поставщика инструментария управления WINDOWS WCF (WMI). Дополнительные сведения о доступе к данным WMI см. в разделе "Использование инструментирования управления Windows для диагностики".
Ряд свойств WMI только для чтения показывает применяемые в службе параметры транзакции. В приведенных ниже таблицах перечислены эти параметры.
В службе атрибут ServiceBehaviorAttribute
имеет следующие свойства.
Имя. | Тип | Описание |
---|---|---|
ReleaseServiceInstanceOnTransactionComplete | Логический | Указывает, производится ли повторное использование объекта службы после завершения текущей транзакции. |
TransactionAutoCompleteOnSessionClose | Логический | Указывает, завершаются ли ожидающие транзакции при закрытии текущего сеанса. |
TransactionIsolationLevel | Строка, содержащая допустимое значение перечисления IsolationLevel. | Задает уровень изоляции транзакции, поддерживаемый этой службой. |
TransactionTimeout | DateTime | Задает период времени, в течение которого транзакция должна быть завершена. |
Атрибут ServiceTimeoutsBehavior
имеет следующее свойство.
Имя. | Тип | Описание |
---|---|---|
TransactionTimeout | DateTime | Задает период времени, в течение которого транзакция должна быть завершена. |
В привязке атрибут TransactionFlowBindingElement
имеет следующие свойства.
Имя. | Тип | Описание |
---|---|---|
TransactionProtocol | Строка, содержащая допустимое значение типа TransactionProtocol. | Указывает протокол транзакций, используемый при передаче транзакций. |
TransactionFlow | Логический | Задает, включен ли входящий поток транзакций. |
В операции атрибут OperationBehaviorAttribute
имеет следующие свойства.
Имя. | Тип | Описание |
---|---|---|
TransactionAutoComplete | Логический | Указывает, следует ли автоматически фиксировать текущую транзакцию при отсутствии необработанных исключений. |
TransactionScopeRequired | Логический | Указывает, требует ли операция транзакции. |
В операции атрибут TransactionFlowAttribute
имеет следующие свойства.
Имя. | Тип | Описание |
---|---|---|
TransactionFlowOption | Строка, содержащая допустимое значение перечисления TransactionFlowOption. | Задает область, к которой требуется поток транзакций. |
Трассировка
Трассировка позволяет контролировать и анализировать ошибки в транзакционных приложениях. Трассировку можно включить следующими способами.
Стандартная трассировка WCF
Этот тип трассировки совпадает с трассировкой любого приложения WCF. Для получения дополнительной информации см. Configuring Tracing.
Трассировка WS-AtomicTransaction
Трассировку WS-AtomicTransaction можно включить с помощью программы конфигурации WS-AtomicTransaction (wsatConfig.exe). Такая трассировка позволяет контролировать состояние транзакций и участников внутри системы. Чтобы включить также и трассировку модели службы, можно задать для ключа реестра
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 .