Compartilhar via


<msmqTransport>

Faz com que um canal transfira mensagens sobre o transporte MSMQ quando ele é incluído em uma associação personalizada.

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

Syntax

<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 e elementos

As seções a seguir descrevem atributos, elementos filho e elementos pai.

Atributos

Atributo Descrição
customDeadLetterQueue Um URI que indica o local da fila de mensagens mortas por aplicativo, em que as mensagens que venceram ou que não foram entregues ao aplicativo são transferidas.

Para as mensagens que exigem garantias ExactlyOnce (ou seja, exactlyOnce está definido como true), esse atributo é o padrão para a fila de mensagens mortas transacionais em todo o sistema no MSMQ.

Para as mensagens que não exigem garantias (ou seja, exactlyOnce está definido como false), esse atributo usa null como padrão.

O valor precisa usar o esquema net.msmq. O padrão é null.

Se deadLetterQueue estiver definido como None ou System, esse atributo precisará ser definido como null. Se esse atributo não for null, deadLetterQueue precisará ser definido como Custom.
deadLetterQueue Especifica o tipo de fila de mensagens mortas a ser usado.

Os valores válidos incluem

– Personalizado: fila de mensagens mortas personalizada.
– Nenhum: nenhuma fila de mensagens mortas deve ser usada.
– Sistema: usa a fila de mensagens mortas do sistema.

Esse atributo é do tipo DeadLetterQueue.
durável Um valor booliano que especifica se as mensagens processadas por essa associação são duráveis ou voláteis. O padrão é true.

Uma mensagem durável sobrevive a uma falha do gerenciador de filas, ao contrário de uma mensagem volátil. As mensagens voláteis são úteis quando os aplicativos exigem latência mais baixa e podem tolerar mensagens perdidas ocasionais.

Se exactlyOnce estiver definido como true, as mensagens precisarão ser duráveis.
exactlyOnce Um valor booliano que indica se as mensagens processadas por essa associação serão recebidas exatamente uma vez. O padrão é true.

Uma mensagem pode ser enviada com ou sem garantias. Uma garantia permite que um aplicativo verifique se uma mensagem enviada chegou à fila de mensagens recebidas ou, se ela não chegou, o aplicativo poderá determinar isso lendo a fila de mensagens mortas.

exactlyOnce, quando definido como true, indica que o MSMQ garantirá que uma mensagem enviada seja entregue à fila de mensagens de recebimento uma e apenas uma vez e, se a entrega falhar, a mensagem será enviada para a fila de mensagens mortas.

As mensagens enviadas com exactlyOnce definidas como true precisam ser enviadas somente para uma fila transacional.
manualAddressing Um valor booliano que permite que o usuário assuma o controle do endereçamento de mensagens. Essa propriedade geralmente é usada em cenários de roteador, em que o aplicativo determina para qual dos vários destinos ele enviará uma mensagem.

Quando ele está definido como true, o canal pressupõe que a mensagem já foi endereçada e não adiciona nenhuma informação adicional a ela. Em seguida, o usuário pode endereçar cada mensagem individualmente.

Quando ele está definido como false, o mecanismo de endereçamento padrão do WCF (Windows Communication Foundation) cria automaticamente endereços para todas as mensagens.

O padrão é false.
maxBufferPoolSize Um inteiro positivo que especifica o tamanho máximo do pool de buffers. O padrão é 524.288.

Muitas partes do WCF usam buffers. Criar e destruir buffers cada vez que eles são usados é caro, e a coleta de lixo para buffers também é cara. Com os pools de buffers, você pode pegar um buffer do pool, usá-lo e devolvê-lo ao pool assim que terminar. Portanto, a sobrecarga na criação e na destruição de buffers é evitada.
maxImmediateRetries Um inteiro que especifica o número máximo de tentativas de repetição imediatas em uma mensagem que é lida da fila do aplicativo. O padrão é 5.

Se o número máximo de tentativas imediatas para a mensagem for realizado e a mensagem não for consumida pelo aplicativo, a mensagem será enviada para uma fila de repetição para nova tentativa em algum momento posterior. Se nenhum ciclo de repetição for especificado, as mensagens serão enviadas para a fila de mensagens suspeitas ou uma confirmação negativa será enviada novamente ao remetente.
maxPoolSize Um inteiro positivo que especifica o tamanho máximo do pool. O padrão é 524.288.
maxReceivedMessageSize Um inteiro positivo que especifica o tamanho máximo da mensagem em bytes, incluindo os cabeçalhos. O remetente de uma mensagem recebe uma falha SOAP quando a mensagem é muito grande para o destinatário. O destinatário remove a mensagem e cria uma entrada do evento no log de rastreamento. O padrão é 65.536.
maxRetryCycles Um inteiro que especifica o número máximo de ciclos de repetição para tentativa de entrega das mensagens ao aplicativo de recebimento. O padrão é MaxValue.

Um só ciclo de repetição tenta entregar uma mensagem a um aplicativo um número especificado de vezes. O número de tentativas feitas é definido pelo atributo maxImmediateRetries. Se o aplicativo não consumir a mensagem depois que as tentativas de entrega tiverem sido esgotadas, a mensagem será enviada para uma fila de repetição. Os ciclos de repetição seguintes consistem na mensagem retornada da fila de repetição para a fila do aplicativo para tentar entregar o aplicativo novamente, após um atraso especificado pelo atributo retryCycleDelay. O atributo maxRetryCycles especifica o número de ciclos de repetição que o aplicativo usa para tentar entregar a mensagem.
queueTransferProtocol Especifica o transporte de canal de comunicação em fila usado por essa associação. Os valores válidos são

– Nativo: usa o protocolo nativo do MSMQ.
– Srmp: usa o protocolo SRMP (Soap Reliable Messaging Protocol).
– SrmpSecure: usa o transporte SRMPS (Soap Reliable Messaging Protocol Secure).

Esse atributo é do tipo QueueTransferProtocol.

Como o MSMQ não dá suporte ao endereçamento do Active Directory ao usar o protocolo SOAP Reliable Messaging, não defina esse atributo como Srmp ou Srmps quando useActiveDirectory estiver definido como true.
rejectAfterLastRetry Um valor booliano que especifica a ação a ser tomada para uma mensagem que falhou na entrega após a tentativa de número máximo de tentativas.

true significa que uma confirmação negativa é retornada ao remetente e a mensagem é descartada. false significa que a mensagem é enviada para a fila de mensagens suspeitas. O padrão é false.

Se o valor for false, o aplicativo de recebimento poderá ler a fila de mensagens suspeitas para processar mensagens suspeitas (ou seja, as mensagens que falharam na entrega).

O MSMQ 3.0 não dá suporte ao retorno de uma confirmação negativa ao remetente, ou seja, esse atributo será ignorado no MSMQ 3.0.
retryCycleDelay Um TimeSpan que especifica o atraso de tempo entre os ciclos de repetição de tentativa de entrega de uma mensagem que não pôde ser entregue imediatamente. O padrão é 00:10:00.

Um só ciclo de repetição tenta entregar uma mensagem a um aplicativo de recebimento um número especificado de vezes. O número de tentativas feitas é especificado pelo atributo maxImmediateRetries. Se o aplicativo não consumir a mensagem após o número especificado de repetições imediatas, a mensagem será enviada para uma fila de repetição. Os ciclos de repetição seguintes consistem na mensagem retornada da fila de repetição para a fila do aplicativo para tentar entregar o aplicativo novamente, após um atraso especificado pelo atributo retryCycleDelay. O número de ciclos de repetição é especificado pelo atributo maxRetryCycles.
timeToLive Um TimeSpan que especifica quanto tempo as mensagens são válidas antes de vencerem e serem colocadas na fila de mensagens mortas. O padrão é 1.00:00:00, o que significa um dia.

Esse atributo está definido para garantir que as mensagens sensíveis ao tempo não fiquem obsoletas antes de serem processadas pelos aplicativos de recebimento. Uma mensagem em uma fila que não é consumida pelo aplicativo de recebimento dentro do intervalo de tempo especificado é considerada vencida. As mensagens vencidas são enviadas para uma fila especial chamada fila de mensagens mortas. O local da fila de mensagens mortas é definido com o atributo customDeadLetterQueue ou com o padrão apropriado, de acordo com as garantias.
UseActiveDirectory Um valor booliano que especifica se os endereços da fila devem ser convertidos usando o Active Directory.

Os endereços da fila MSMQ podem consistir em nomes de caminho ou nomes de formato direto. Com um nome de formato direto, o MSMQ resolve o nome do computador usando DNS, NetBIOS ou IP. Com um nome de caminho, o MSMQ resolve o nome do computador usando o Active Directory. Por padrão, o transporte enfileirado do WCF (Windows Communication Framework) converte o URI de uma fila de mensagens em um nome de formato direto. Ao definir esse atributo como true, um aplicativo pode especificar que o transporte enfileirado deve resolver o nome do computador usando o Active Directory em vez de DNS, NetBIOS ou IP.
useMsmqTracing Um valor booliano que especifica se as mensagens processadas por essa associação devem ser rastreadas. O padrão é false.

Quando o rastreamento está habilitado, as mensagens de relatório são criadas e enviadas para a fila de relatórios sempre que a mensagem sai ou chega em um computador do Enfileiramento de Mensagens.
useSourceJournal Um valor booliano que especifica se as cópias de mensagens processadas por essa associação devem ser armazenadas na fila de diários de origem. O padrão é false.

Os aplicativos na fila que desejam manter um registro das mensagens que saíram da fila de saída do computador podem copiar as mensagens para uma fila de diários. Depois que uma mensagem sai da fila de saída e uma confirmação é recebida de que a mensagem foi recebida no computador de destino, uma cópia da mensagem é mantida na fila de diários do sistema de envio.

Elementos filho

Elemento Descrição
<msmqTransportSecurity> Especifica as configurações de segurança do transporte para essa associação. Esse elemento é do tipo MsmqTransportSecurityElement.

Elementos pai

Elemento Descrição
<binding> Define todas as funcionalidades de associação da associação personalizada.

Comentários

O elemento msmqTransport permite que o usuário defina as propriedades do canal de comunicação enfileirado. O canal de comunicação enfileirado usa o Enfileiramento de Mensagens para transporte.

Esse elemento de associação é o elemento de associação padrão usado pela associação padrão de Enfileiramento de Mensagens (netMsmqBinding).

Confira também