Overzicht van Windows Communication Foundation-transacties
Transacties bieden een manier om een set acties of bewerkingen te groeperen in één ondizichtbare uitvoeringseenheid. Een transactie is een verzameling bewerkingen met de volgende eigenschappen:
Atomiciteit. Dit zorgt ervoor dat alle updates die zijn voltooid onder een specifieke transactie, worden doorgevoerd en duurzaam worden gemaakt, of dat ze allemaal worden afgebroken en teruggedraaid naar hun vorige status.
Consistentie. Dit garandeert dat de wijzigingen die zijn aangebracht onder een transactie een transformatie van de ene consistente status naar de andere vertegenwoordigen. Een transactie die geld overdraagt van een bankrekening naar een spaarrekening, verandert bijvoorbeeld niet het bedrag van het geld op de totale bankrekening.
Isolatie. Hiermee voorkomt u dat een transactie niet-doorgevoerde wijzigingen van andere gelijktijdige transacties waarneem. Isolatie biedt een abstractie van gelijktijdigheid en zorgt ervoor dat één transactie geen onverwachte invloed kan hebben op de uitvoering van een andere transactie.
Duurzaamheid. Dit betekent dat updates voor beheerde resources (zoals een databaserecord) na het vastleggen van fouten blijvend zijn.
Windows Communication Foundation (WCF) biedt een uitgebreide set functies waarmee u gedistribueerde transacties in uw webservicetoepassing kunt maken.
WCF implementeert ondersteuning voor het WS-AtomicTransaction-protocol (WS-AT) waarmee WCF-toepassingen transacties kunnen doorstromen naar interoperabele toepassingen, zoals interoperabele webservices die zijn gebouwd met behulp van technologie van derden. WCF implementeert ook ondersteuning voor het OLE Transactions-protocol, dat kan worden gebruikt in scenario's waarin u geen interop-functionaliteit nodig hebt om transactiestroom in te schakelen.
U kunt een toepassingsconfiguratiebestand gebruiken om bindingen te configureren om transactiestroom in of uit te schakelen, en het gewenste transactieprotocol voor een binding in te stellen. Daarnaast kunt u time-outs voor transacties instellen op serviceniveau met behulp van het configuratiebestand. Zie Transactiestroom inschakelen voor meer informatie.
Met transactiekenmerken in de System.ServiceModel naamruimte kunt u het volgende doen:
Configureer time-outs voor transacties en filteren op isolatieniveau met behulp van het ServiceBehaviorAttribute kenmerk.
Schakel transactiefunctionaliteit in en configureer gedrag voor transactievoltooiing met behulp van het OperationBehaviorAttribute kenmerk.
Gebruik de ServiceContractAttribute en OperationContractAttribute kenmerken van een contractmethode om de transactiestroom te vereisen, toestaan of weigeren.
Zie ServiceModel Transaction Attributes voor meer informatie.