Partager via


Recommandations relatives aux références de files d'attente

Mise à jour : novembre 2007

Si vous créez une instance du composant MessageQueue, vous devez indiquer la file d'attente avec laquelle vous souhaitez que le composant communique. Vous pouvez faire référence à une file d'attente dans votre code de trois façons :

  • Par le chemin d'accès — le chemin d'accès d'une file d'attente identifie de façon unique le nom de l'ordinateur et le nom de la file d'attente pour la file d'attente qui vous intéresse.

  • Par le nom de format — il s'agit d'un identificateur unique de la file d'attente généré par MSMQ lors de la création de la file d'attente ou généré ultérieurement par l'application.

  • Par l'étiquette — il s'agit du nom descriptif, mais pas toujours unique de la file d'attente assigné par l'administrateur de la file d'attente lors de sa création.

Lorsque vous créez une nouvelle file d'attente plutôt qu'une nouvelle instance du composant MessageQueue, vous devez utiliser le chemin d'accès. Le nom de format et l'étiquette sont assignés par le système Message Queuing après la création de la file d'attente. Toutefois, lorsque vous faites référence à une file d'attente existante dans le code ou à partir de la Boîte à outils, vous pouvez opter pour la méthode de référence de votre choix. La méthode choisie est stockée dans la propriété Path du composant.

Utilisation du chemin d'accès pour référencer une file d'attente

Un chemin d'accès de file d'attente prend la forme servername\queuename. Les chemins d'accès des files d'attente sont toujours uniques. Le tableau suivant répertorie les informations de chemin d'accès utilisées pour chaque type de file d'attente :

Type de file d'attente

Syntaxe utilisée dans le chemin d'accès

File d'attente publique

NomOrdinateur\NomFiled'attente

File d'attente privée

NomOrdinateur\Private$\NomFiled'attente

File d'attente de journal

NomOrdinateur\NomFiled'attente\Journal$

File d'attente du journal machine

NomOrdinateur\Journal$

File d'attente de lettres mortes machine

NomOrdinateur\Deadletter$

File d'attente de lettres mortes transactionnelle machine

NomOrdinateur\XactDeadletter$

Vous pouvez utiliser "." dans le nom de l'ordinateur local, de sorte que la syntaxe "YourMachine\MyQueue" soit équivalente à ".\MyQueue".

Il convient de souligner certains points lorsque vous utilisez un chemin d'accès pour faire référence à vos files d'attente :

  • Lorsqu'un contrôleur de domaine installé sur un serveur Message Queuing reçoit une opération pour une file d'attente référencée par un chemin d'accès, il doit résoudre ce chemin d'accès et déterminer le nom de format de la file d'attente en question. Dans ce cas, les performances peuvent être légèrement inférieures à celles qui sont obtenues lorsque vous faites référence à la file d'attente directement par nom de format.

  • Si vous créez votre composant afin de l'utiliser comme un service Web XML, vous obtiendrez de meilleurs résultats en termes de performances si vous utilisez la méthode du nom de format plutôt que celle du chemin d'accès pour référencer les files d'attente.

  • Vous ne pouvez faire référence à une file d'attente par son chemin d'accès si vous souhaitez lui envoyer des messages lorsqu'elle est déconnectée. Les messages déconnectés doivent être envoyés à l'aide du nom de format.

Il est possible de récupérer le chemin d'accès d'une file d'attente en lançant une requête et en combinant les résultats retournés par deux propriétés distinctes de la classe de base MessageQueue : les propriétés MachineName et QueueName.

Dans le code, le référencement d'une file d'attente par le chemin d'accès se présente comme suit :

MessageQueue1.Path = "YourMachine\MyQueue"
     MessageQueue1.Path = @"YourMachine\MyQueue";
Remarque :

La syntaxe @".\MyQueue" pour C# correspond à ".\\MyQueue". Le signe @ indique une chaîne littérale. Pour plus d'informations, consultez string (Référence C#).

Utilisation du nom de format pour référencer une file d'attente

Les noms de formats se présentent sous la forme d'une chaîne indiquant si la file d'attente est privée ou publique, suivie d'un identificateur universel unique (GUID) généré pour la file d'attente ainsi que d'autres identificateurs, le cas échéant. Le tableau suivant répertorie les informations de chemin d'accès utilisées pour chaque type de file d'attente :

Type de file d'attente

Syntaxe utilisée dans le nom de format

File d'attente publique

FORMATNAME:PUBLIC=GUIDFiled'attente

File d'attente privée

FORMATNAME:PRIVATE=GUIDOrdinateur\NuméroFiled'attente

File d'attente de journal

FORMATNAME:PUBLIC=GUIDFiled'attente;JOURNAL   

- ou -

FORMATNAME:PRIVATE=GUIDOrdinateur\NuméroFiled'attente;JOURNAL

Vous n'assignez pas de nom de format à une file d'attente ; c'est le gestionnaire de files d'attente qui génère cette valeur lors de la création de la file d'attente. La méthode la plus directe pour accéder à une file d'attente consiste à la référencer par son nom de format dans la mesure où le contrôleur de domaine du serveur ne doit pas interpréter la référence comme c'est le cas lorsque vous utilisez le chemin d'accès de la file d'attente.

Il convient de souligner certains points lorsque vous décidez de faire référence à vos files d'attente par nom de format :

  • Si vous avez l'intention d'envoyer des messages à une file d'attente déconnectée, vous devez faire référence à la file d'attente par son nom de format plutôt que son chemin d'accès dans la mesure où il est impossible de résoudre le chemin d'accès si la file d'attente est hors connexion.

  • Il est possible que les noms de formats ne soient plus valides si votre topographie réseau change ou si une file d'attente est supprimée et recréée.

Vous pouvez récupérer un nom de format pour une file d'attente en interrogeant la propriété FormatName de la classe MessageQueue.

Dans le code, le référencement d'une file d'attente par le format se présente comme suit :

MessageQueue1.Path = _
   "FORMATNAME:PUBLIC=3d3dc813-c555-4fd3-8ce0-79d5b45e0d75"
     MessageQueue1.Path =
           "FORMATNAME:PUBLIC=3d3dc813-c555-4fd3-8ce0-79d5b45e0d75";

Utilisation d'étiquettes pour référencer des files d'attente

Vous pouvez également faire référence à une file d'attente par son étiquette, qui est une étiquette de texte descriptif attribuée à la file d'attente par son administrateur. Les étiquettes ne sont pas toujours uniques ; par conséquent, il est possible de recevoir une erreur dans le cas d'un conflit de noms lorsque vous tentez de vous connecter à une file d'attente spécifique à l'aide de son étiquette.

L'emploi d'étiquettes peut s'avérer utile lorsque vous avez l'intention de déplacer une file d'attente d'un ordinateur à un autre. Si vous faites référence à une file d'attente par l'étiquette uniquement, toutes vos opérations pourront se poursuivre normalement après avoir déplacé la file d'attente vers son nouvel emplacement, pour autant qu'il n'existe aucune autre file d'attente avec la même étiquette sur le nouvel ordinateur. Si c'est le cas, la méthode Send génère une erreur.

Vous pouvez récupérer une étiquette pour une file d'attente en interrogeant la propriété Label de la classe MessageQueue.

Dans le code, le référencement d'une file d'attente par l'étiquette se présente comme suit :

MessageQueue1.Path = "LABEL:MyQueue"
     MessageQueue1.Path = "LABEL:MyQueue";

Voir aussi

Tâches

Comment : créer des files d'attente

Comment : créer des instances du composant MessageQueue

Autres ressources

Création, suppression et administration des files d'attente