Delen via


Diagnose van transactionele toepassingen

In dit onderwerp wordt beschreven hoe u de wcf-beheerfunctie (Windows Communication Foundation) en diagnostische gegevens gebruikt om problemen met een transactionele toepassing op te lossen.

Performance Counters (Prestatiemeteritems)

WCF biedt een standaardset prestatiemeteritems die u kunt gebruiken om de prestaties van uw transactionele toepassing te meten. Zie Prestatiemeteritems voor meer informatie.

Prestatiemeteritems hebben een bereik van drie verschillende niveaus: service, eindpunt en bewerking, zoals beschreven in de volgende tabellen.

Prestatiemeteritems voor services

Prestatiemeteritem Beschrijving
Transacties die zijn gestroomd Het aantal transacties dat naar bewerkingen in deze service is gestroomd. Deze teller wordt verhoogd wanneer een transactie aanwezig is in het bericht dat naar de service wordt verzonden.
Transacties gestroomd per seconde Het aantal transacties dat binnen elke seconde naar bewerkingen in deze service is gestroomd. Deze teller wordt verhoogd wanneer een transactie aanwezig is in het bericht dat naar de service wordt verzonden.
Doorgevoerde bewerkingen Het aantal uitgevoerde transacties, waarvan de transactie is voltooid met het resultaat dat in deze service is vastgelegd. Werkzaamheden die onder dergelijke bewerkingen worden uitgevoerd, worden volledig doorgevoerd. Resources worden bijgewerkt in overeenstemming met het werk dat in de bewerking wordt uitgevoerd.
Doorgevoerde bewerkingen per seconde Het aantal uitgevoerde transacties, waarvan de transactie binnen elke seconde is voltooid met het resultaat dat in deze service is vastgelegd. Werkzaamheden die onder dergelijke bewerkingen worden uitgevoerd, worden volledig doorgevoerd. Resources worden bijgewerkt in overeenstemming met het werk dat in de bewerking wordt uitgevoerd.
Bewerkingen die zijn afgebroken Het aantal uitgevoerde transacties, waarvan de transactie is voltooid met het resultaat dat in deze service is afgebroken. Werk dat onder dergelijke bewerkingen wordt uitgevoerd, wordt teruggedraaid. Resources worden teruggezet naar de vorige status.
Bewerkingen die per seconde zijn afgebroken Het aantal uitgevoerde transacties, waarvan de transactie binnen elke seconde is voltooid met het resultaat dat in deze service is afgebroken. Werk dat onder dergelijke bewerkingen wordt uitgevoerd, wordt teruggedraaid. Resources worden teruggezet naar de vorige status.
Getransacteerde bewerkingen in twijfel Het aantal uitgevoerde transacties, waarvan de transactie is voltooid met een resultaat bij twijfel in deze service. Werk gedaan met een resultaat in twijfel is in een onbepaalde staat. Resources worden in behandeling gehouden.
Getransacteerde bewerkingen in twijfel per seconde Het aantal uitgevoerde transacties, waarvan de transactie is voltooid met een resultaat in twijfel bij deze service binnen elke seconde. Werk gedaan met een resultaat in twijfel is in een onbepaalde staat. Resources worden in behandeling gehouden.

Prestatiemeteritems voor eindpunten

Prestatiemeteritem Beschrijving
Transacties die zijn gestroomd Het aantal transacties dat naar bewerkingen op dit eindpunt is gestroomd. Deze teller wordt verhoogd wanneer een transactie aanwezig is in het bericht dat naar het eindpunt wordt verzonden.
Transacties gestroomd per seconde Het aantal transacties dat binnen elke seconde naar bewerkingen op dit eindpunt is gestroomd. Deze teller wordt verhoogd wanneer een transactie aanwezig is in het bericht dat naar het eindpunt wordt verzonden.

Prestatiemeteritems voor bewerkingen

Prestatiemeteritem Beschrijving
Transacties die zijn gestroomd Het aantal transacties dat naar bewerkingen op dit eindpunt is gestroomd. Deze teller wordt verhoogd wanneer een transactie aanwezig is in het bericht dat naar het eindpunt wordt verzonden.
Transacties gestroomd per seconde Het aantal transacties dat binnen elke seconde naar bewerkingen op dit eindpunt is gestroomd. Deze teller wordt verhoogd wanneer een transactie aanwezig is in het bericht dat naar het eindpunt wordt verzonden.

Windows Management Instrumentation

WCF maakt inspectiegegevens van een service tijdens runtime beschikbaar via een WMI-provider (WCF Windows Management Instrumentation). Zie Windows Management Instrumentation voor diagnostische gegevens gebruiken voor meer informatie over het openen van WMI-gegevens.

Een aantal alleen-lezen WMI-eigenschappen geven de toegepaste transactie-instellingen voor een service aan. In de volgende tabellen worden al deze instellingen vermeld.

In een service heeft de ServiceBehaviorAttribute volgende eigenschappen.

Name Type Description
ReleaseServiceInstanceOnTransactionComplete Booleaanse waarde Hiermee geeft u op of het serviceobject wordt gerecycled wanneer de huidige transactie is voltooid.
TransactionAutoCompleteOnSessionClose Booleaanse waarde Hiermee geeft u op of wachtende transacties worden voltooid wanneer de huidige sessie wordt gesloten.
TransactionIsolationLevel Een tekenreeks die een geldige waarde van de IsolationLevel opsomming bevat. Hiermee geeft u het niveau van transactieisolatie op dat door deze service wordt ondersteund.
TransactionTimeout DateTime Hiermee geeft u de periode op waarin een transactie moet worden voltooid.

De ServiceTimeoutsBehavior eigenschap heeft de volgende eigenschap.

Name Type Description
TransactionTimeout DateTime Hiermee geeft u de periode op waarin een transactie moet worden voltooid.

Bij een binding heeft de TransactionFlowBindingElement volgende eigenschappen.

Name Type Description
TransactionProtocol Een tekenreeks die een geldige waarde van het TransactionProtocol type bevat. Hiermee geeft u het transactieprotocol op dat moet worden gebruikt bij het stromen van een transactie.
TransactionFlow Booleaanse waarde Hiermee geeft u op of de binnenkomende transactiestroom is ingeschakeld.

Bij een bewerking heeft de OperationBehaviorAttribute volgende eigenschappen:

Name Type Description
TransactionAutoComplete Booleaanse waarde Hiermee geeft u op of de huidige transactie automatisch moet worden doorgevoerd als er geen onverwerkte uitzonderingen optreden.
TransactionScopeRequired Booleaanse waarde Hiermee geeft u op of voor de bewerking een transactie is vereist.

Bij een bewerking heeft de TransactionFlowAttribute volgende eigenschappen.

Name Type Description
TransactionFlowOption Een tekenreeks die een geldige waarde van de TransactionFlowOption opsomming bevat. Hiermee geeft u de mate aan waarin de transactiestroom is vereist.

Tracering

Met traceringen kunt u fouten in uw transactionele toepassingen bewaken en analyseren. U kunt tracering op de volgende manieren inschakelen:

  • Standaard WCF-tracering

    Dit type tracering is hetzelfde als het traceren van een WCF-toepassing. Zie Tracering configureren voor meer informatie.

  • WS-AtomicTransaction-tracering

    WS-AtomicTransaction-tracering kan worden ingeschakeld met behulp van het WS-AtomicTransaction Configuration Utility (wsatConfig.exe). Dergelijke tracering biedt inzicht in de status van transacties en deelnemers binnen een systeem. Als u ook interne servicemodeltracering wilt inschakelen, kunt u de HKLM\SOFTWARE\Microsoft\WSAT\3.0\ServiceModelDiagnosticTracing registersleutel instellen op een geldige waarde van de SourceLevels opsomming. U kunt logboekregistratie van berichten op dezelfde manier inschakelen als andere WCF-toepassingen.

  • System.Transactions Tracering

    Wanneer u het OleTransactions-protocol gebruikt, kunnen protocolberichten niet worden getraceerd. De tracering biedt ondersteuning voor de System.Transactions infrastructuur (die Gebruikmaakt van OleTransactions) stelt gebruikers in staat gebeurtenissen weer te geven die zijn opgetreden bij de transacties. Als u tracering voor een System.Transactions toepassing wilt inschakelen, neemt u de volgende code op in het App.config configuratiebestand.

    <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>  
    

    Dit maakt ook WCF-tracering mogelijk, omdat WCF ook gebruikmaakt van de System.Transactions infrastructuur.

Zie ook