Compartir a través de


Colas de Message Queue Server

Esta sección describe cómo especificar colas de Microsoft Message Queue Server (a la que también se conoce como MSMQ) cuando utiliza el adaptador de MSMQ. Describe las convenciones para especificar rutas y la función que los nombres de formato desempeñan cuando se traducen rutas a designaciones de cola.

Convenciones de nomenclatura de ruta de cola

Si el nombre de la cola hace referencia a una ruta, utilice las convenciones de nomenclatura en la tabla siguiente.

Tipo de cola Sintaxis para ruta
Cola pública Nombre de equipo\Nombrecola
Cola privada Nombreequipo\Private$\Nombrecola
Cola de diario Nombreequipo\Nombrecola\Journal$
Cola de diario de equipo Nota: Use solo para la cola de recepción. Nombreequipo\Journal$
Cola de mensajes fallidos del equipo Nota: Use solo para la cola de recepción. Nombreequipo\Deadletter$
Cola de mensajes fallidos de transacción del equipo Nota: Use solo para la cola de recepción. Nombreequipo\XactDeadletter$

Nota

La ruta de la cola debe ser única.

Si el nombre de cola hace referencia a un nombre de formato, toma la forma de una cadena que indica si una cola es pública o privada seguida de un GUID generado para la cola y otros identificadores, según sea necesario. Utilice las convenciones de nomenclatura de la tabla siguiente.

Tipo de formato Sintaxis para el nombre de formato
Público FormatName:P ublic=QueueGUID
Directo FormatName:D IRECT=SPX:NetworkNumber:HostNumber\QueueName

FormatName: DIRECT=TCP:IPAddress\QueueName

FormatName: DIRECT=OS:ComputerName\QueueName

Si la ruta de la cola del puerto de envío es una lista de distribución, la sintaxis de la ruta de la cola es:

DL=DistributionListGUID

Si la ruta de la cola de envío o recepción es una URL HTTP o HTTPS, la sintaxis es:

FormatName:DIRECT=http://<client name>/msmq/<queue name>

FormatName:DIRECT=https://<client name>/msmq/<queue name>

Nota

"msmq" es la carpeta virtual creada por Message Queue Server en Servicios de Internet Information Server (IIS).

Nota

Sólo puede utilizar HTTP para enviar mensajes. No es posible leer mensajes de una cola de un equipo remoto si aquélla se abre mediante un nombre de formato directo HTTP. No obstante, podrá seguir recibiendo mensajes (con formato) SOAP desde una cola remota mediante la ruta de cola pública o privada sin HTTP.

Si el nombre de cola hace referencia a una etiqueta de texto descriptivo que el administrador ha especificado para la cola, la sintaxis de la ruta de cola que hace referencia a esta etiqueta es:

LABEL:MyQueue

Nota

Las etiquetas no siempre son exclusivas. Por tanto, recibirá un mensaje de error si existe un conflicto de nombres cuando intenta conectarse a una cola específica mediante esta etiqueta.

Nota

La etiqueta es un campo de transporte necesario para el adaptador.

Función del nombre de formato

Message Queue Server utiliza el nombre de formato para identificar una cola y determinar cómo obtener acceso a ella. Message Queue Server asigna el nombre de formato a la cola.

Cuando especifica una cola mediante la sintaxis del nombre de la ruta, por ejemplo, myMachine\myQueue, Message Queue Server busca la ruta para encontrar el nombre de formato asociado. Message Queue Server utiliza ese nombre de formato para obtener acceso a la cola. Cuando especifica el nombre de formato, Message Queue Server utiliza el nombre de formato utilizado por el usuario.

Para obtener más información acerca de nombres de formato, vea "Propiedad MessageQueue.FormatName" en la Ayuda de la biblioteca de clases de .Net Framework.

Solucionar problemas de rutas de cola

  • Se produce una excepción si no coincide la sintaxis de la ruta de cola proporcionada con uno de los formatos descritos anteriormente en "Convenciones de nomenclatura de ruta de cola."

  • Los siguientes caracteres no son válidos como nombre de equipo en la ruta de cola:

    \ ; , + "

    Se produce una excepción si el nombre de equipo es un número. Por ejemplo: 234\private$\queue.

  • Para una cola de mensajes con problemas de entrega de equipo, una cola de diario de equipo y una cola de mensajes con problemas de entrega de transacción de equipos, se produce una excepción si el usuario especifica cualquiera de las colas de sistema como la cola de destino para envío.

  • System.Messaging.MessageQueue.Exists no funciona para colas remotas. Para obtener más información, vea "Método MessageQueue.Exists" en la Ayuda de la biblioteca de clases de .NET Framework.

Consulte también

Configuración del adaptador de MSMQ