MessageQueue.Transactional Proprietà

Definizione

Ottiene un valore che indica se la coda accetta solo transazioni.

public:
 property bool Transactional { bool get(); };
[System.Messaging.MessagingDescription("MQ_Transactional")]
public bool Transactional { get; }
[<System.Messaging.MessagingDescription("MQ_Transactional")>]
member this.Transactional : bool
Public ReadOnly Property Transactional As Boolean

Valore della proprietà

true se la coda accetta solo messaggi inviati come parte di una transazione; in caso contrario, false.

Attributi

Eccezioni

Si è verificato un errore durante l'accesso a un metodo di Accodamento messaggi.

Esempio

Nell'esempio di codice seguente viene visualizzato il valore della proprietà di una coda di Transactional messaggi.

// Display the value of the queue's Transactional property.
Console.WriteLine("MessageQueue.Transactional: {0}",
    queue.Transactional);

Commenti

La messaggistica transazionale fa riferimento all'accoppiamento di diversi messaggi correlati in una singola transazione. L'invio di messaggi come parte di una transazione garantisce che i messaggi vengano recapitati in ordine, recapitati una sola volta e recuperati correttamente dalla coda di destinazione.

Se una coda è transazionale, accetta solo i messaggi inviati come parte di una transazione. Tuttavia, un messaggio non transazionale può essere inviato o ricevuto da una coda di transazioni locale senza usare esplicitamente , e Abort sintassi transazionale.BeginCommit Se un messaggio non transazionale viene inviato a una coda transazionale, questo componente crea una transazione a messaggio singolo, tranne nel caso in cui si faccia riferimento a una coda in un computer remoto usando un nome di formato diretto. In questa situazione, se non si specifica un contesto di transazione durante l'invio di un messaggio, uno non viene creato per l'utente e il messaggio verrà inviato alla coda di messaggi non recapitabili.

Se si invia un messaggio non transazionale a una coda transazionale, non sarà possibile eseguire il rollback del messaggio in caso di eccezione.

MessageQueueTransaction è il threading dell'appartamento a conoscenza, quindi se lo stato dell'appartamento è STA, non è possibile usare la transazione in più thread. Visual Basic imposta lo stato del thread principale su STA, quindi è necessario applicare l'oggetto MTAThreadAttributeMain nella subroutine. In caso contrario, l'invio di un messaggio transazionale mediante un altro thread genererà un'eccezione MessageQueueException. Si applica l'oggetto MTAThreadAttribute usando il frammento seguente.

<System.MTAThreadAttribute>
 public sub Main()

Nella tabella seguente viene illustrato se questa proprietà è disponibile in varie modalità gruppo di lavoro.

Modalità gruppo di lavoro Disponibile
Computer locale
Nome del computer locale e del formato diretto
Computer remoto No
Nome del formato diretto e del computer remoto No

Si applica a

Vedi anche