Compartilhar via


Recomendações de referência de fila

Se você criar uma instância do MessageQueue componente, você precisa indicar qual fila deseja se comunicar com o componente. Há três maneiras para se referir a uma fila no seu código:

  • Pelo caminho — o caminho para uma fila identifica com exclusividade o nome de fila e computador para a fila em que você está interessado.

  • Por nome de formato — um identificador exclusivo para a fila gerada pelo MSMQ quando a fila é criada ou gerada posteriormente pelo aplicativo.

  • Por rótulo — um nome possivelmente não exclusivo e descritivo para a fila que é atribuído pelo administrador da fila quando a fila é criada.

Quando você cria uma nova fila, em vez de uma nova instância do MessageQueue componente, você deve usar o caminho. Formato de nome e rótulo são atribuídos pelo serviço de enfileirar de mensagens sistema depois que a fila for criada.Quando você se referir a uma fila existente no código ou a partir de Caixa de ferramentas, no entanto, você pode escolher qual método de referência que você deseja usar.Seja qual for o método escolhido é armazenado no Path propriedade.

Usando o caminho para uma fila, consulte

Um caminho de fila leva o formulário servername\queuename. Caminhos para uma fila sempre são exclusivos.A tabela a seguir lista as informações de caminho usadas para cada tipo de fila:

Tipo de fila

Sintaxe usada em caminho

Fila pública

MachineName\QueueName

Fila particular

MachineName\particular $ \Nome_da_Fila

Fila do diário

$ MachineName\QueueName\Diário

Fila do diário do computador

$ MachineName\Diário

fila de mensagens mortas do computador

$ MachineName\Deadletter

fila de mensagens mortas transacional do computador

$ MachineName\XactDeadletter

Você pode usar "." para o nome da computador local, para que "YourMachine\MyQueue" é equivalente a ". \MyQueue".

Estas são algumas advertências sobre como usar um caminho para se referir a suas filas:

  • Quando o controlador de domínio em um servidor de enfileirar de mensagens recebe uma operação para uma fila que é citada pelo caminho, ele deve resolver o caminho e determinar o nome de formato da fila em questão.Isso pode resultar em desempenho um pouco mais lento do que se você se referir a fila por nome de formato diretamente.

  • Se você está criando o componente a ser usado sistema autônomo um XML Web Services, será exibida sistema autônomo melhores resultados de desempenho usando o método de nome de formato de sistema autônomo fazer referência a filas, em vez do método de caminho.

  • Você não pode fazer referência a uma fila pelo caminho para enviar mensagens para ele quando a fila está desconectada.Mensagens desconectadas devem ser enviadas usando o nome de formato.

Você pode recuperar o caminho para uma fila, consultando e combinando os resultados de retorno de duas propriedades separadas no MessageQueue classe base — a MachineName propriedade e o QueueName propriedade.

No código, fazendo referência a uma fila pelo caminho fica assim:

MessageQueue1.Path = "YourMachine\MyQueue"
     MessageQueue1.Path = @"YourMachine\MyQueue";
Observação:

O @ ".\ MinhaFila "sintaxe de translation from VPE for Csharp é equivalente a usar".\\MyQueue"em vez disso.O @ sinal indica uma seqüência de caracteres literal.Para obter mais informações, consulte Cadeia de Caracteres (Referência C#).

Usando o nome do formato para uma fila, consulte

Os nomes de formato assumem a forma de uma seqüência de caracteres que indica se uma fila é pública ou particular, seguido por um GUID gerado para a fila e outros identificadores sistema autônomo necessário.A tabela a seguir lista as informações de caminho usadas para cada tipo de fila:

Tipo de fila

Sintaxe usado no nome do formato

Fila pública

FORMATNAME:PUBLIC = QueueGUID

Fila particular

FORMATNAME:particular = MachineGUID\QueueNumber

Fila do diário

FORMATNAME:PUBLIC = QueueGUID; Diário   

- ou -

FORMATNAME:particular = MachineGUID\QueueNumber; Diário

Você não atribuir um nome de formato a uma fila; em vez disso, o Gerenciador de filas gera este valor quando a fila é criada.Fazendo referência a uma fila por seu nome de formato é a maneira mais direta acesso uma fila, porque o controlador de domínio no servidor não tem que interpretar a referência, sistema autônomo quando você se referir à fila pelo caminho.

A seguir estão algumas dicas sobre fazendo referência a suas filas por nome de formato:

  • Se você pretende enviar mensagens para uma fila desconectada, você precisa referir-se para a fila pelo nome de formato em vez de caminho, como o caminho não será disponível para resolver com se a fila está off-line.

  • Esteja ciente de que os nomes de formato podem se tornar inválidos quando a topografia de rede é alterada ou quando uma fila é excluída e recriada.

Você pode recuperar um nome de formato para uma fila consultando o FormatName propriedade no MessageQueue classe.

No código, fazendo referência a uma fila por nome de formato é semelhante a:

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

Usar rótulos para filas, consulte

Você também pode se referir a uma fila por seu rótulo, que é um rótulo de texto descritivo para a fila recebeu seu administrador.Rótulos não são sempre exclusivos, portanto, você receberá uma mensagem de erro se existir algum conflito de nome quando você tenta se conectar a uma fila específica usando o seu rótulo.

Rótulos podem ser úteis em uma situação quando souber que você vai ser movendo uma fila de um computador para outro.Se você se referir à fila por rótulo somente, todas as operações continuarão a funcionar com êxito após a fila de ter sido movida para o novo local, desde que existem outras filas de com esse rótulo no novo computador.Se houver, a Send método produzirá um erro.

Você pode recuperar o rótulo para uma fila consultando o Label propriedade no MessageQueue classe.

No código, fazendo referência a uma fila pelo nome do rótulo fica assim:

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

Consulte também

Tarefas

Como: Criar filas

Como: Criar instâncias de componentes do MessageQueue

Outros recursos

Criando, excluindo e administrar filas