Utilizzo di WS-AtomicTransaction
WS-AtomicTransaction (WS-AT) è un protocollo di transazione interoperativo. Consente di propagare transazioni distribuite utilizzando i messaggi dei servizi Web e di eseguire il coordinamento in modo interoperativo tra infrastrutture di transazioni eterogenee. WS-AT utilizza il protocollo di commit a due fasi per condurre un risultato atomico tra applicazioni distribuite, gestori di transazioni e gestori di risorse.
L'implementazione di WS-AT fornita da Windows Communication Foundation (WCF) comprende un servizio di protocollo incorporato nel gestore di transazioni MSDTC (Microsoft Distributed Transaction Coordinator). Utilizzando WS-AT, le applicazioni WCF possono propagare le transazioni ad altre applicazioni, compresi servizi Web interoperativi creati mediante tecnologie di terze parti.
Durante la propagazione di una transazione tra un'applicazione client e un'applicazione server, il protocollo di transazione utilizzato viene determinato dall'associazione esposta dal server sull'endpoint selezionato dal client. Alcune associazioni fornite dal sistema WCF specificano per impostazione predefinita il protocollo OleTransactions come formato di propagazione delle transazioni, mentre altre specificano il protocollo WS-AT. La scelta del protocollo di transazione può anche essere modificata a livello di codice all'interno di una determinata associazione.
La scelta del protocollo influisce sugli elementi seguenti:
- Formato delle intestazioni dei messaggi utilizzate propagare la transazione dal client al server.
- Protocollo di rete utilizzato per eseguire il protocollo di commit a due fasi tra il gestore di transazioni del client e la transazione del server, al fine di risolvere il risultato della transazione.
Se il server e il client vengono scritti utilizzando WCF, non è necessario utilizzare WS-AT. È possibile invece utilizzare le impostazioni predefinite di NetTcpBinding con l'attributo TransactionFlow abilitato, in modo da utilizzare il protocollo OleTransactions. Per ulteriori informazioni, vedere <netTcpBinding>. In caso contrario, se le transazioni vengono propagate a servizi Web basati su tecnologie di terze parti, sarà necessario utilizzare WS-AT.