Condividi tramite


Condizioni per l'elaborazione delle transazioni

Prima di iniziare a usare KTM, è necessario conoscere le definizioni dei termini seguenti: transaction, resource manager, transactional client, transaction manager, log stream, enlistment e transaction processing system.

transazione
Una transazione è una raccolta di operazioni di dati. Tutte le operazioni devono avere esito positivo affinché la transazione abbia esito positivo. Se tutte le operazioni hanno esito positivo, è possibile eseguire il commit della transazione, ovvero i risultati possono essere resi permanenti e pubblici. Se un'operazione ha esito negativo, è necessario eseguire il rollback della transazione, ovvero tutte le modifiche devono essere rimosse in modo che i dati si trovano nello stesso stato in cui si trovavano prima dell'avvio delle operazioni della transazione.

Le operazioni di una transazione sono atomiche, coerenti, isolate e durevoli (ACID).

  • Sono atomici perché devono essere sottoposti a commit o rollback nel suo complesso.

  • Sono coerenti perché le operazioni producono sempre un risultato accurato, indipendentemente dal fatto che venga eseguito il commit o il rollback.

  • Sono isolati perché i risultati di ogni transazione non sono visibili ad altre transazioni finché non viene eseguito il commit o il rollback delle operazioni della transazione.

  • Sono durevoli perché, dopo il commit o il rollback delle operazioni della transazione, i risultati delle operazioni diventano permanenti.

Un esempio di transazione è l'insieme di operazioni che devono essere eseguite quando si utilizza uno sportello automatico (ATM) per trasferire denaro dal conto corrente al conto di risparmio. Il debito del conto corrente e il credito al conto di risparmio devono sembrare un'unica operazione atomica.

Un'operazione che fa parte di una transazione è nota anche come operazione transazionale.

Resource Manager
Un resource manager è un componente software che gestisce le risorse dati che possono essere aggiornate dalle operazioni transazionate. Ad esempio, se si progetta un sistema di database, è possibile fornire un gestore risorse che archivia e recupera i dati del database. Un semplice sistema di elaborazione delle transazioni (TPS) potrebbe avere un solo gestore risorse.

Un gestore di risorse fornisce in genere anche un'interfaccia pubblica che i client transazionali possono chiamare per accedere ai dati di Resource Manager. Ad esempio, il gestore delle risorse per un database potrebbe fornire un set di funzioni che i client possono utilizzare per leggere dal e scrivere nel database.

Un tps più complesso può avere più gestori risorse, ognuno dei quali gestisce un database separato o un'altra risorsa durante la partecipazione alle transazioni del sistema.

Per altre informazioni sui gestori di risorse, vedere Creazione di un resource manager.

In alcuni casi, un gestore di risorse è superiore agli altri gestori di risorse e può avviare operazioni di commit. In KTM, tali gestori di risorse sono chiamati gestori delle transazioni superiori.

client transazionale
Un client transazionale è un componente software che accede a un database supportato da un gestore risorse, in genere chiamando funzioni esportate da Resource Manager. Il client è responsabile della creazione di transazioni, dell'esecuzione di un set di operazioni supportate da un gestore risorse e di informare il gestore transazioni (KTM) che deve essere eseguito il commit o il rollback della transazione.

Per altre informazioni sui client transazionali, vedere Creazione di un client transazionale.

gestione transazioni
Un gestore delle transazioni, ad esempio KTM, fornisce l'infrastruttura che consente ai client transazionali e ai gestori delle risorse di comunicare tra loro. Tiene inoltre traccia dello stato di ogni transazione , ma non dei dati gestiti dai client e dai gestori risorse.

Il gestore delle transazioni può anche coordinare le operazioni di ripristino dopo un arresto anomalo del sistema.

Il gestore delle transazioni non conosce i dati o le operazioni che costituiscono una transazione. I dati e le operazioni sono controllati dai client e dai gestori risorse.

KTM fornisce funzioni che i clienti transazionali possono chiamare. Queste funzioni consentono ai client di creare, eseguire il commit e il rollback delle transazioni.

KTM fornisce anche funzioni che i gestori di risorse possono chiamare. Queste funzioni consentono ai gestori di risorse di integrarsi nelle transazioni in modo che possano ricevere notifiche sulle transazioni. Dopo che un gestore di risorse si iscrive a una transazione, può ricevere una notifica quando un client transazionale è pronto per eseguire il commit o il rollback della transazione, o quando avviene un'operazione di recupero.

flusso di log
Un flusso di log è una cronologia registrata degli eventi che si sono verificati nelle transazioni. KTM gestisce un flusso di log usando Common Log File System (CLFS). KTM registra le modifiche dello stato per ogni transazione in modo che possa supportare le operazioni di rollback e ripristino quando sono necessarie.

I gestori di risorse devono anche usare un flusso di log per registrare dati e operazioni.

Un'operazione di rollback richiede che KTM e i gestori risorse ripristinino una transazione e tutti i dati in uno stato iniziale. KTM e i gestori di risorse registrano lo stato iniziale di ogni transazione nei flussi di log in modo che possano recuperarlo durante un'operazione di rollback.

Le operazioni di ripristino si verificano dopo un arresto anomalo del sistema. Quando il sistema operativo viene successivamente riavviato, KTM e i gestori risorse possono usare il contenuto del flusso di log per ricompilare lo stato di una transazione allo stato in cui si trovava prima dell'arresto anomalo.

Per altre informazioni sui flussi di log in KTM, vedere Uso dei flussi di log con KTM.

arruolamento
Un arruolamento è un'associazione tra un gestore di risorse e una transazione. KTM fornisce un set di funzioni che i gestori di risorse chiamano per creare e gestire le partecipazioni. Dopo che un gestore delle risorse crea una registrazione, KTM invia notifiche al gestore delle risorse quando lo stato della transazione cambia.

sistema di elaborazione delle transazioni
Un sistema di elaborazione delle transazioni (TPS) è una raccolta di un gestore transazioni, uno o più gestori risorse, uno o più flussi di log e uno o più client transazionali che accedono alle risorse dei gestori risorse.