Поделиться через


Диагностика транзакционных приложений

В этом разделе описывается, как использовать управление 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 .

См. также