Compartir a través de


<msmqTransport>

Produce un canal a los mensajes de las transferencias en el transporte de MSMQ cuando está incluido en un enlace personalizado.

<configuration>
  <system.serviceModel>
    <bindings>
      <customBinding>
        <binding>
          <msmqTransport>

Sintaxis

<msmqTransport customDeadLetterQueue="Uri"
               deadLetterQueue="Custom/None/System"
               durable="Boolean"
               exactlyOnce="Boolean"
               manualAddressing="Boolean"
               maxBufferPoolSize="Integer"
               maxImmediateRetries="Integer"
               maxPoolSize="Integer"
               maxReceivedMessageSize="Integer"
               maxRetryCycles="Integer"
               queueTransferProtocol="Native/Srmp/SrmpSecure"
               rejectAfterLastRetry="Boolean"
               retryCycleDelay="TimeSpan"
               timeToLive="TimeSpan"
               useActiveDirectory="Boolean"
               useSourceJournal="Boolean"
               useMsmqTracing="Boolean"
               ...>
  <msmqTransportSecurity>
  </msmqTransportSecurity>
</msmqTransport>

Atributos y elementos

En las siguientes secciones se describen los atributos, los elementos secundarios y los elementos primarios.

Atributos

Atributo Descripción
customDeadLetterQueue URI que indica la ubicación de la cola de mensajes con problemas de entrega por aplicación, donde se transfieren los mensajes que han expirado o cuya entrega a la aplicación ha tenido errores.

Para los mensajes que requieren la convicción ExactlyOnce (es decir, exactlyOnce está establecido en true), este atributo tiene como valor predeterminado la cola de mensajes transaccionales no enviados para todo el sistema en MSMQ.

Para los mensajes que no requieren convicciones (está disponible decir, exactlyOnce está establecido en false), este atributo tiene como valor predeterminado null.

El valor debe usar el esquema de net.msmq. El valor predeterminado es null.

Si deadLetterQueue se establece en None o System, este atributo debe establecerse en null. Si este atributo no es null, deadLetterQueue debe establecerse en Custom.
deadLetterQueue Especifica el tipo de cola de mensajes con problemas de entrega que se va a usar.

Los valores válidos incluyen

- Personalizada: cola de mensajes con problemas de entrega personalizada.
- Ninguna: no se usará ninguna cola de mensajes con problemas de entrega.
- Sistema: use la cola de mensajes con problemas de entrega del sistema.

Este atributo es del tipo DeadLetterQueue.
durable Un valor booleano que especifica si los mensajes procesados por este enlace son duraderos o volátiles. De manera predeterminada, es true.

Un mensaje duradero sobrevive un bloqueo de administrador de cola, mientras que un mensaje volátil no. Los mensajes volátiles son útiles cuando las aplicaciones requieren la menor latencia y toleran la pérdida de mensajes ocasional.

Si exactlyOnce está establecido en true, los mensajes deben ser duraderos.
exactlyOnce Un valor booleano que especifica si los mensajes procesados por este enlace se recibirán sólo una vez. De manera predeterminada, es true.

Un mensaje se puede enviar con o sin garantías. Una garantía permite a una aplicación asegurarse de que un mensaje enviado alcanza la cola de mensajes receptora, o si no lo hiciera, la aplicación puede determinarlo leyendo la cola de mensajes con problemas de entrega.

exactlyOnce, cuando se establece en true, indica que MSMQ garantizará que un mensaje enviado se entrega una única vez a la cola de mensajes receptora, y si se produce un error en la entrega, el mensaje se envía a la cola de mensajes con problemas de entrega.

Los mensajes enviados con exactlyOnce establecidos en true sólo se deben enviar a una cola transaccional.
manualAddressing Un valor booleano que permite al usuario tomar el control del direccionamiento del mensaje. Esta propiedad normalmente se usa en escenarios del enrutador, donde la aplicación determina a cuál de los destinos va a enviar un mensaje.

Si se establece en true, el canal supone que el mensaje ya se ha direccionado y no le agrega ninguna información adicional. El usuario puede direccionar a continuación individualmente cada mensaje.

Cuando se establece en false, la Windows Communication Foundation predeterminada (WCF) que direcciona el mecanismo crea automáticamente las direcciones para todos los mensajes.

El valor predeterminado es false.
maxBufferPoolSize Un entero positivo que especifica el tamaño máximo del grupo de búferes. El valor predeterminado es 524288.

Muchas partes de los búferes de uso WCF. Crear y destruir búferes cada vez que se usan es caro, y la recolección de elementos no utilizados para los búferes también es cara. Con grupos de búferes, puede tomar un búfer del grupo, usarlo y devolverlo al grupo una vez haya terminado. Así se evita la sobrecarga al crear y destruir búferes.
maxImmediateRetries Un entero que especifica el número máximo de intentos de reintento inmediato en un mensaje que se lee desde la cola de la aplicación. El valor predeterminado es 5.

Si se alcanza el número máximo de reintentos inmediatos para el mensaje y la aplicación no consume el mensaje, a continuación, el mensaje se envía a una cola de reintento para volver a intentar su entrega más tarde. Si no se especifican ciclos de reintento, entonces el mensaje se envía a la cola de mensajes dudosos o se envía al remitente una confirmación de que no se pudo realizar la acción.
maxPoolSize Un entero positivo que especifica el tamaño máximo del grupo. El valor predeterminado es 524288.
maxReceivedMessageSize Un entero positivo que especifica el tamaño de mensaje máximo en bytes incluidas los encabezados . El remitente de un mensaje recibe un error SOAP cuando el mensaje es demasiado grande para el receptor. El destinatario quita el mensaje y crea una entrada del evento en el registro de seguimiento. El valor predeterminado es 65536.
maxRetryCycles Un entero que especifica el número máximo de ciclos de reintento para intentar la entrega de mensajes a la aplicación receptora. El valor predeterminado es MaxValue.

Un ciclo de reintento único intenta entregar un mensaje a una aplicación un número especificado de veces. El atributo maxImmediateRetries establece el número de intentos realizados. Si la aplicación no consigue consumir el mensaje una vez agotados los intentos en la entrega, el mensaje se envía a una cola de reintento. Los ciclos de reintento subsiguientes consisten en que el mensaje vuelva de la cola de reintento a la cola de aplicación para intentar de nuevo la entrega a la aplicación, después de un retraso especificado por el atributo retryCycleDelay. El atributo maxRetryCycles especifica el número de ciclos de reintento que la aplicación usa para intentar entregar el mensaje.
queueTransferProtocol Especifica el transporte del canal de comunicación en cola que usa este enlace. Los valores válidos son

- Nativo: use el protocolo MSMQ nativo.
- Srmp: use el Protocolo de mensajería confiable de SOAP (SRMP).
- SrmpSecure: use el transporte seguro del Protocolo de mensajería confiable de SOAP (SRMPS).

Este atributo es del tipo QueueTransferProtocol.

Puesto que MSMQ no admite el direccionamiento de Active Directory al utilizar Reliable Messaging de Protocolo SOAP, no debería establecer este atributo en Srmp o Srmps cuando useActiveDirectory esté establecido en true.
rejectAfterLastRetry Un valor booleano que especifica los que la acción va a realizar para un mensaje en el que se ha producido un error tras haber intentado el número máximo de reintentos.

true significa que se devuelve al remitente una confirmación de que no se pudo realizar la acción y se coloca el mensaje; false significa que el mensaje se envía a la cola de mensajes dudosos. El valor predeterminado es false.

Si el valor es false, la aplicación receptora puede leer la cola de mensajes dudosos para procesarlos (es decir, mensajes que han producido un error en la entrega).

MSMQ 3.0 no permite devolver al remitente una confirmación de que no se pudo realizar la acción, por lo que este atributo se omitirá en MSMQ 3.0.
retryCycleDelay Un TimeSpan que especifica el tiempo de retardo entre los ciclos de reintento al intentar entregar un mensaje que no se pudo entregar inmediatamente. El valor predeterminado es 00:10:00.

Un ciclo de reintento único intenta entregar un mensaje a una aplicación receptora un número especificado de veces. El atributo maxImmediateRetries especifica el número de intentos realizados. Si la aplicación no consigue consumir el mensaje después del número especificado de intentos inmediatos, el mensaje se envía a una cola de reintento. Los ciclos de reintento subsiguientes consisten en que el mensaje vuelva de la cola de reintento a la cola de aplicación para intentar de nuevo la entrega a la aplicación, después de un retraso especificado por el atributo retryCycleDelay. El atributo maxRetryCycles especifica el número de ciclos de reintento.
timeToLive Un TimeSpan que especifica cuánto tiempo son válidos los mensajes antes de expirar y ser colocados en la cola de mensajes no enviados. El valor predeterminado es 1.00:00:00 (que significa 1 día).

Este atributo se establece para asegurarse de que los mensajes que dependen del tiempo no se vuelvan obsoletos antes de ser procesados por las aplicaciones receptoras. Un mensaje en una cola expira si no es consumido por la aplicación receptora dentro del intervalo de tiempo especificado. Los mensajes caducados se envían a la cola especial llamada cola de mensajes no enviados. La ubicación de la cola de mensajes no enviados se establece con el atributo customDeadLetterQueue o con el valor predeterminado adecuado, basado en garantías.
UseActiveDirectory Un valor booleano que especifica si las direcciones de la cola deberían convertirse utilizando Active Directory.

Las direcciones de la cola de MSMQ pueden estar compuestas de nombres de ruta o nombres de formato directos. Con un nombre de formato directo, MSMQ resuelve el nombre del equipo mediante DNS, NetBIOS o IP. Con un nombre de ruta, MSMQ resuelve el nombre del equipo mediante Active Directory. De forma predeterminada, el transporte de colas de Windows Communication Framework (WCF) convierte el URI de una cola de mensajes en un nombre de formato directo. Al establecer este atributo en true, una aplicación puede especificar que el transporte en cola debería resolver el nombre del equipo mediante Active Directory en lugar de DNS, NetBIOS o IP.
useMsmqTracing Valor de tipo booleano que especifica si los mensajes procesados por este enlace se deberían seguir paso a paso. El valor predeterminado es false.

Si se habilita la traza, los mensajes de informe se crean y envían a la cola de informes cada vez que el mensaje sale o llega a un equipo Message Queuing.
useSourceJournal Un valor booleano que especifica si las copias de mensajes procesados por este enlace deberían almacenarse en la cola de diario de origen. El valor predeterminado es false.

Las aplicaciones en cola que quieran mantener un registro de mensajes que han dejado la cola de salida del equipo pueden copiar los mensajes a una cola del diario. Cuando un mensaje deja la cola de salida y se recibe una confirmación de que se ha recibido el mensaje en el equipo de destino, se mantiene una copia del mensaje en la cola del diario de sistema del equipo remitente.

Elementos secundarios

Elemento Descripción
<msmqTransportSecurity> Especifica la configuración de seguridad de transporte para este enlace. Este elemento es del tipo MsmqTransportSecurityElement.

Elementos primarios

Elemento Descripción
<binding> Define todas las funcionalidades de enlace del enlace personalizado.

Comentarios

El elemento msmqTransport permite al usuario establecer las propiedades del canal de comunicación en cola. El canal de comunicación en cola utiliza Message Queuing para su transporte.

Este elemento de enlace es el elemento de enlace predeterminado utilizado por el enlace estándar de Message Queuing (netMsmqBinding).

Consulte también