Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Quando un componente di Transaction Integrator (TI) viene eseguito all'interno di una transazione, l'ambiente di runtime TI invia un messaggio a Microsoft Distributed Transaction Coordinator (DTC) nell'ambiente COM+, integrandosi nella transazione come tipo speciale di gestione risorse LU 6.2. Dopo che TI invia il buffer di dati all'host e riceve la risposta, chiama il metodo SetComplete e poi restituisce il controllo a COM+. A questo punto, l'applicazione client, o un altro componente che guida TI, può eseguire altre operazioni incluse anche nella stessa transazione. Quando tutti i gestori di risorse hanno apportato gli aggiornamenti ed emesso SetComplete, l'autore della transazione (che può essere COM+ per una transazione automatica) invia il Commit metodo a DTC. DTC invia il messaggio di prima fase (Prepare) a tutti i gestori di risorse, incluso l'ambiente di runtime TI. TI genera l'oggetto Prepare PS Header definito nei formati SNA e lo invia all'host. Riceve una RequestCommit risposta, che indica che gli aggiornamenti dell'host sono validi e possono essere confermati e passa nuovamente queste informazioni a DTC. DTC raccoglie i voti da tutti i gestori di risorse e, se tutti sono preparati correttamente, forza la registrazione di un record di commit nel log e invia il messaggio Committed. Anche in questo caso, TI traduce in un SNA PS Header, riceve la risposta e lo traduce nuovamente in DTC. Se tutto funziona come previsto, DTC esegue il rollback della transazione e la conversazione APPC/LU 6.2 viene deallocata.
Annotazioni
Né TI né l'API devono preoccuparsi di un verbo APPC o CPI/C SYNCPT. La decisione di "prendere un Punto di sincronizzazione" viene presa dall'autore della transazione, è espressa nella semantica delle transazioni OLE e coinvolge tutti i partecipanti nella transazione, non solo i rami TI LU 6.2. Il ruolo di TI è a un livello inferiore; TI funge da resource manager per DTC. Converte tra le interfacce COM usate da DTC e i protocolli SNA riconosciuti dall'host, per eseguire le due fasi del protocollo e consentire a DTC di prendere la decisione commit tra la fase 1 e la seconda fase.
Dal punto di vista delle prestazioni, garantire l'atomicità degli aggiornamenti dell'host comporta un sovraccarico significativo e inevitabile. Esistono due flussi di messaggi andata e ritorno aggiuntivi verso l'host per il commit in due fasi (2PC), oltre ai flussi di messaggi di Windows per arruolare e alla registrazione delle transazioni (scritture forzate sul disco) da parte del DTC e sull'host. Le transazioni che non richiedono un'elevata quantità di elaborazione della logica di business possono richiedere il doppio del tempo o più per il completamento quando viene confrontata con la stessa transazione senza 2PC.
L'unica volta che devi configurare un componente TI per supportare le transazioni ACID è quando il programma di transazione host associato modifica una risorsa cruciale che deve essere mantenuta coerente con le risorse nel sistema operativo Windows. Se il tps non modifica alcuna risorsa per la quale deve essere garantita la coerenza, configurare il componente TI come Non supporta le transazioni, in modo che 2PC non venga tentato. Quindi è anche possibile usare il protocollo TCP/IP. Il protocollo TCP/IP non supporta 2PC.
I componenti TI non devono mai essere configurati come Richiede una nuova transazione. Ciò significa che si gestisce la transazione in modalità remota per l'host e ciò comporta il sovraccarico dovuto alla creazione di una nuova transazione, la registrazione su di essa e l'esecuzione degli scambi 2PC con l'host, ma il metodo TI sarebbe una transazione autonoma. È più efficiente abilitare CICS e IMS per gestire le proprie transazioni. Eventuali aggiornamenti nel sistema operativo Windows non fanno parte di tale transazione, quindi eseguirebbero il commit o il rollback in modo indipendente.
Annotazioni
L'elaborazione aggiuntiva della logica di business nello stesso server riduce i limiti di velocità effettiva, rubando parte della CPU. Tuttavia, il costo può essere relativamente piccolo nell'ambito del budget complessivo del tempo di risposta.