Elaborazione delle transazioni di commit in due fasi

Questo argomento illustra cosa accade con la transazione di commit in due fasi (2PC) mentre viene elaborata da Microsoft Distributed Transaction Coordinator (DTC) in COM+, Transaction Integrator (TI) e CICS.

Il processo inizia quando l'applicazione client richiama un metodo nell'applicazione .NET che contiene l'oggetto TI. .NET alloca quindi un thread per la transazione dal pool di thread utente, inizia la transazione e passa i parametri di input del metodo all'ambiente di runtime TI. Questo thread viene bloccato per la transazione finché la risposta non viene restituita dall'host CICS. Si tratta dell'unità di tempo di lavoro, costituita principalmente dal tempo necessario per l'applicazione CICS per elaborare la logica di business delle transazioni e ottenere l'accesso al database in base alle esigenze (presupponendo che la velocità di trasmissione continui con la velocità LAN). Quando i parametri di output del metodo vengono inviati a .NET dall'host, il messaggio di commit viene inviato a DTC.

DTC attiva la fase di preparazione per le transazioni, causando l'assegnazione di un thread dal pool di thread 2PC e mantiene bloccato fino a quando il messaggio di commit della richiesta arriva dall'host. Dopo aver preparato tutti i fork delle transazioni, DTC invia un messaggio completo di commit a .NET, quindi invia i parametri di output del metodo e restituisce i valori all'applicazione client chiamante e rilascia il thread.

Questa operazione completa la transazione per l'utente, ma i monitoraggi delle transazioni (DTC e CICS) devono comunque completare la seconda fase del commit e di nuovo un thread dal pool di thread TI 2PC viene allocato per ogni transazione che esegue la seconda fase del commit.

Vedere anche

Programmi di transazione in esecuzione per molto tempo
Guida alle prestazioni di Transaction Integrator