Partager via


MessageQueue.Transactional Propriété

Définition

Obtient une valeur qui indique si la file d’attente accepte uniquement les transactions.

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

Valeur de propriété

true si la file d’attente accepte uniquement les messages envoyés dans le cadre d’une transaction ; sinon, false.

Attributs

Exceptions

Une erreur s’est produite lors de l’accès à une méthode Message Queuing.

Exemples

L’exemple de code suivant affiche la valeur de la propriété d’une file d’attente de Transactional messages.

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

Remarques

La messagerie transactionnelle fait référence au couplage de plusieurs messages connexes en une seule transaction. L’envoi de messages dans le cadre d’une transaction garantit que les messages sont remis dans l’ordre, remis une seule fois et récupérés avec succès à partir de leur file d’attente de destination.

Si une file d’attente est transactionnelle, elle accepte uniquement les messages envoyés dans le cadre d’une transaction. Toutefois, un message non transactionnel peut être envoyé ou reçu à partir d’une file d’attente de transactions locale sans utiliser explicitement la syntaxe et CommitAbort la syntaxe transactionnellesBegin. Si un message non transactionnel est envoyé à une file d’attente transactionnelle, ce composant crée une transaction de message unique pour celle-ci, sauf dans le cas de référencer une file d’attente sur un ordinateur distant à l’aide d’un nom de format direct. Dans ce cas, si vous ne spécifiez pas de contexte de transaction lors de l’envoi d’un message, il n’est pas créé pour vous et le message est envoyé à la file d’attente de lettres mortes.

Si vous envoyez un message non transactionnel à une file d’attente transactionnelle, vous ne pourrez pas restaurer le message en cas d’exception.

MessageQueueTransaction est sensible à l’appartement threading. Par conséquent, si votre état d’appartement est STA, vous ne pouvez pas utiliser la transaction dans plusieurs threads. Visual Basic définit l’état du thread STAprincipal sur ; vous devez donc appliquer le MTAThreadAttributeMain sous-routine. Sinon, l’envoi d’un message transactionnel à l’aide d’un autre thread lève une MessageQueueException exception. Vous appliquez le MTAThreadAttribute fragment suivant.

<System.MTAThreadAttribute>
 public sub Main()

Le tableau suivant indique si cette propriété est disponible dans différents modes de groupe de travail.

Mode groupe de travail Disponible
Ordinateur local Oui
Ordinateur local et nom de format direct Oui
Ordinateur distant Non
Ordinateur distant et nom de format direct Non

S’applique à

Voir aussi