Condividi tramite


NOTIFICATION_MASK

Elenca i diversi tipi di notifiche che possono essere ricevuti da un'integrazione.

TRANSACTION_NOTIFY_MASK

0x3FFFFFFF

Maschera che indica tutti i bit validi per una notifica di transazione.

TRANSACTION_NOTIFY_PREPREPARE

0x00000001

Questa notifica viene chiamata dopo che un client chiama CommitTransaction e nessun gestore risorse (RM) supporta il commit a fase singola o una gestione transazioni superiore (TM) chiama PrePrepareEnlistment. Questa notifica viene ricevuta dalle macchine virtuali che indicano che devono completare tutte le operazioni che potrebbero causare l'integrazione di altre macchine virtuali in una transazione, ad esempio lo scaricamento della cache. Dopo aver completato queste operazioni, l'RM deve chiamare PrePrepareComplete. Per ricevere questa notifica, rm deve supportare anche TRANSACTION_NOTIFY_PREPARE e TRANSACTION_NOTIFY_COMMIT.

TRANSACTION_NOTIFY_PREPARE

0x00000002

Questa notifica viene chiamata dopo il completamento dell'elaborazione TRANSACTION_NOTIFY_PREPREPARE . Segnala all'RM di completare tutte le operazioni associate a questa integrazione in modo che possa garantire che un'operazione di commit possa avere esito positivo e che un'operazione di interruzione possa avere esito positivo. In genere, la maggior parte del lavoro per una transazione viene eseguita durante la fase di preparazione. Per le macchine virtuali durevoli, è necessario registrare il proprio stato prima di chiamare la funzione PrepareComplete . Questa è l'ultima possibilità per l'RM di richiedere che venga eseguito il rollback della transazione.

TRANSACTION_NOTIFY_COMMIT

0x00000004

Questa notifica segnala all'RM di completare tutte le operazioni associate a questa integrazione. In genere, RM rilascia eventuali blocchi, rilascia tutte le informazioni necessarie per eseguire il rollback della transazione. L'RM deve rispondere chiamando la funzione CommitComplete al termine di queste operazioni.

TRANSACTION_NOTIFY_ROLLBACK

0x00000008

Questa notifica segnala all'RM di annullare tutto il lavoro eseguito associato alla transazione.

TRANSACTION_NOTIFY_PREPREPARE_COMPLETE

0x00000010

Questa notifica segnala al tm superiore che un'operazione di pre-preparazione è stata completata correttamente.

TRANSACTION_NOTIFY_PREPARE_COMPLETE

0x00000020

Questa notifica segnala al tm superiore che un'operazione di preparazione è stata completata correttamente.

TRANSACTION_NOTIFY_COMMIT_COMPLETE

0x00000040

Questa notifica segnala al tm superiore che un'operazione di commit è stata completata correttamente.

TRANSACTION_NOTIFY_ROLLBACK_COMPLETE

0x00000080

Questa notifica segnala al tm superiore che un'operazione di rollback è stata completata correttamente.

TRANSACTION_NOTIFY_RECOVER

0x00000100

Questa notifica segnala alle macchine virtuali che devono ripristinare lo stato perché è necessario ridistribuire il risultato di una transazione. Ad esempio, quando un RM viene recuperato e quando sono presenti transazioni lasciate in dubbio. Questa notifica viene recapitata una volta risolto lo stato di dubbio.

TRANSACTION_NOTIFY_SINGLE_PHASE_COMMIT

0x00000200

Questa notifica segnala all'RM di completare ed eseguire il commit della transazione senza usare un protocollo di commit in due fasi. Se l'RM vuole usare un'operazione in due fasi, deve rispondere chiamando la funzione SinglePhaseReject .

TRANSACTION_NOTIFY_DELEGATE_COMMIT

0x00000400

KTM segnala al tm superiore di eseguire un'operazione di commit.

TRANSACTION_NOTIFY_RECOVER_QUERY

0x00000800

KTM segnala al tm superiore di eseguire una query sullo stato di una transazione in dubbio.

TRANSACTION_NOTIFY_ENLIST_PREPREPARE

0x00001000

Questa notifica segnala al tm superiore che le notifiche di pre-preparazione devono essere recapitate nell'integrazione specificata.

TRANSACTION_NOTIFY_LAST_RECOVER

0x00002000

Questa notifica indica che l'operazione di ripristino è stata completata per questo RM.

TRANSACTION_NOTIFY_INDOUBT

0x00004000

La transazione specificata si trova in uno stato di dubbio. L'RM riceve questa notifica durante le operazioni di ripristino quando una transazione è stata preparata, ma non è disponibile alcun gestore transazioni superiore (TM). Ad esempio, quando una transazione coinvolge una tm remota e tale nodo non è disponibile, il relativo nodo non è disponibile o il servizio Distributed Transaction Coordinator locale non è disponibile, lo stato della transazione è incerto.

TRANSACTION_NOTIFY_TM_ONLINE

0x02000000

La TM è online e accetta le richieste.

TRANSACTION_NOTIFY_REQUEST_OUTCOME

0x20000000

Segnala alle macchine virtuali che sono disponibili informazioni sui risultati e che deve essere effettuata una richiesta per tali informazioni.

TRANSACTION_NOTIFY_COMMIT_FINALIZE

0x40000000

Riservato.

Requisiti

Requisito Valore
Client minimo supportato
Windows Vista
Server minimo supportato
Windows Server 2008
Intestazione
KtmTypes.h (include Windows.h)

Vedi anche

Distributed Transaction Coordinator

Costanti di Gestione transazioni kernel

CreateEnlistment

CommitComplete

GetNotificationResourceManager

GetNotificationResourceManagerAsync

PrepareComplete

SinglePhaseReject

TRANSACTION_NOTIFICATION