MessageQueue.Transactional Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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 | Sì |
Nome del computer locale e del formato diretto | Sì |
Computer remoto | No |
Nome del formato diretto e del computer remoto | No |