<msmqIntegrationBinding>
Define um enlace que fornece suporte de colocação em fila ao encaminhar mensagens através do MSMQ.
<configuração>
<system.serviceModel>
<enlaces>
<customBinding>
<enlace>
<msmqIntegrationBinding>
Sintaxe
<msmqIntegrationBinding>
<binding closeTimeout="TimeSpan"
customDeadLetterQueue="Uri"
deadLetterQueue="Uri"
durable="Boolean"
exactlyOnce="Boolean"
maxReceivedMessageSize="Integer"
maxRetryCycles="Integer"
name="String"
openTimeout="TimeSpan"
receiveContextEnabled="Boolean"
receiveErrorHandling="Drop/Fault/Move/Reject"
receiveTimeout="TimeSpan"
receiveRetryCount="Integer"
retryCycleDelay="TimeSpan"
sendTimeout="TimeSpan"
serializationFormat="XML/Binary/ActiveX/ByteArray/Stream"
timeToLive="TimeSpan"
useMsmqTracing="Boolean"
useSourceJournal="Boolean">
</binding>
</msmqIntegrationBinding>
Atributos e Elementos
As secções seguintes descrevem atributos, elementos subordinados e elementos principais
Atributos
Atributo | Descrição |
---|---|
closeTimeout | Um TimeSpan valor que especifica o intervalo de tempo fornecido para a conclusão de uma operação próxima. Este valor deve ser maior ou igual a Zero. A predefinição é 00:01:00. |
customDeadLetterQueue | Um URI que contém a localização da fila de letras por aplicação não entregue, onde são colocadas mensagens que expiraram ou que falharam na transferência ou entrega. A fila de letras não entregues é uma fila no gestor de filas da aplicação de envio para mensagens expiradas que não foram entregues. O URI especificado pelo CustomDeadLetterQueue tem de utilizar o esquema net.msmq. |
deadLetterQueue | Um DeadLetterQueuevalor .que especifica o tipo de fila de letras não entregues a utilizar, se existir Uma fila de letras não entregues é a localização onde as mensagens que não foram entregues na aplicação serão transferidas. Para mensagens que requerem exatamenteOnce assurance (ou seja, o exactlyOnce atributo está definido como true ), este atributo é predefinido para a fila de letras não entregues transacional em todo o sistema no MSMQ.Para mensagens que não requerem garantias, este atributo é predefinido para null . |
durável | Um valor booleano que indica se a mensagem é durável ou volátil na fila. Uma mensagem durável sobrevive a uma falha do gestor de filas, enquanto uma mensagem volátil não. As mensagens voláteis são úteis quando as aplicações necessitam de menor latência e podem tolerar mensagens perdidas ocasionais. Se o exactlyOnce atributo estiver definido como true , as mensagens têm de ser duráveis. A predefinição é true . |
exactlyOnce | Um valor booleano que indica se cada mensagem é entregue apenas uma vez. Em seguida, o remetente será notificado das falhas de entrega. Quando durable é false , este atributo é ignorado e as mensagens são transferidas sem garantia de entrega. A predefinição é true . Para obter mais informações, consulte ExactlyOnce. |
maxReceivedMessageSize | Um número inteiro positivo que define o tamanho máximo da mensagem, em bytes, incluindo cabeçalhos, que é processado por este enlace. O remetente de uma mensagem que exceda este limite receberá uma falha SOAP. O recetor remove a mensagem e cria uma entrada do evento no registo de rastreio. A predefinição é 65536. Isto vinculado ao tamanho da mensagem destina-se a limitar a exposição a ataques Denial of Service (DoS). |
maxRetryCycles | Um número inteiro que indica o número de ciclos de repetição utilizados pela funcionalidade de deteção de mensagens venenosas. Uma mensagem torna-se uma mensagem de veneno quando falha em todas as tentativas de entrega de todos os ciclos. A predefinição é 2. Para obter mais informações, consulte MaxRetryCycles. |
name | Uma cadeia que contém o nome de configuração do enlace. Este valor deve ser exclusivo porque é utilizado como uma identificação para o enlace. A partir do .NET Framework 4, não são necessários enlaces e comportamentos para ter um nome. Para obter mais informações sobre a configuração predefinida e os enlaces e comportamentos sem nome, veja Configuração Simplificada e Configuração Simplificada para os Serviços WCF. |
openTimeout | Um TimeSpan valor que especifica o intervalo de tempo fornecido para a conclusão de uma operação aberta. Este valor deve ser maior ou igual a Zero. A predefinição é 00:01:00. |
receiveErrorHandling | Um ReceiveErrorHandling valor que especifica a forma como as mensagens venenosas e não passíveis de correspondência são processadas. |
receiveRetryCount | Um número inteiro que especifica o número máximo de repetições imediatas que o gestor de filas deve tentar se a transmissão de uma mensagem da fila da aplicação para a aplicação falhar. Se o número máximo de tentativas de entrega for atingido e a mensagem não for acedida pela aplicação, a mensagem será enviada para uma fila de repetição para resgatar mais tarde. A quantidade de tempo antes de a mensagem ser transferida de volta para a fila de envio é controlada por retryCycleDelay . Se os ciclos de repetição atingirem o maxRetryCycles valor, a mensagem será enviada para a fila de mensagens venenosas ou será enviada uma confirmação negativa para o remetente. |
receiveTimeout | Um TimeSpan valor que especifica o intervalo de tempo fornecido para a conclusão de uma operação de receção. Este valor deve ser maior ou igual a Zero. A predefinição é 00:10:00. |
receiveContextEnabled | Um valor booleano que especifica se o contexto de receção para o processamento de mensagens em filas está ativado. Quando está definido como true , um serviço pode "pré-visualizar" uma mensagem na fila para começar a processá-la e, se algo correr mal e for emitida uma exceção, permanece na fila. Os serviços também podem "bloquear" mensagens para repetir o processamento mais tarde. ReceiveContext fornece um mecanismo para "concluir" a mensagem uma vez processada para que possa ser removida da fila. As mensagens já não estão a ser lidas e reescritas em filas através da rede e as mensagens individuais não estão a saltar em diferentes instâncias de serviço durante o processamento. |
retryCycleDelay | Um valor TimeSpan que especifica o atraso de tempo entre ciclos de repetição ao tentar entregar uma mensagem que não pôde ser entregue imediatamente. O valor define apenas o tempo mínimo de espera porque o tempo de espera real pode ser maior. O valor predefinido é 00:30:00. Para obter mais informações, consulte RetryCycleDelay. |
sendTimeout | Um TimeSpan valor que especifica o intervalo de tempo fornecido para a conclusão de uma operação de envio. Este valor deve ser maior ou igual a Zero. A predefinição é 00:01:00. |
serializationFormat | Define o formato utilizado para serialização do corpo da mensagem. Este atributo é do tipo MsmqMessageSerializationFormat. |
timeToLive | Um valor TimeSpan que especifica quanto tempo as mensagens são válidas antes de expirarem e colocadas na fila de letras não entregues. A predefinição é 1.00:00:00. Este atributo está definido para garantir que as mensagens sensíveis ao tempo não ficam obsoletas antes de serem processadas pelas aplicações que recebem. Uma mensagem numa fila que não é consumida pela aplicação de receção dentro do intervalo de tempo especificado diz-se que expirou. As mensagens expiradas são enviadas para uma fila especial denominada fila de letras não entregues. A localização da fila de letras inativas é definida com o DeadLetterQueue atributo ou com a predefinição adequada, com base em garantias. |
useMsmqTracing | Um valor booleano que especifica se as mensagens processadas por este enlace devem ser rastreadas. A predefinição é false . Quando o rastreio está ativado, as mensagens de relatório são criadas e enviadas para a fila do relatório sempre que a mensagem sai ou chega a um computador em fila de mensagens. |
useSourceJournal | Um valor booleano que especifica cópias de mensagens processadas por este enlace deve ser armazenado no diário de origem. A predefinição é false .As aplicações em fila que pretendam manter um registo de mensagens que saíram da fila de envio do computador podem copiar as mensagens para uma fila de diários. Assim que uma mensagem sai da fila de envio e é recebida uma confirmação de que a mensagem foi recebida no computador de destino, é mantida uma cópia da mensagem na fila do diário do sistema do computador. |
{serializationFormat} Atributo
Valor | Descrição |
---|---|
Xml | Formato XML |
Binário | Formato binário |
ActiveX | Formato ActiveX |
ByteArray | Serializa o objeto para uma matriz de bytes. |
Fluxo | O corpo formatado como um fluxo |
Elementos Subordinados
Elemento | Descrição |
---|---|
<segurança> | Define as definições de segurança do enlace. Este elemento é do tipo MsmqIntegrationSecurityElement. |
Elementos Principais
Elemento | Descrição |
---|---|
<enlaces> | Este elemento contém uma coleção de enlaces padrão e personalizados. |
Observações
Este elemento de enlace pode ser utilizado para permitir que as aplicações do Windows Communication Foundation (WCF) enviem mensagens e recebam mensagens de aplicações MSMQ existentes que utilizam APIs nativas COM, MSMQ ou os tipos definidos no System.Messaging espaço de nomes Pode utilizar este elemento de configuração para especificar formas de abordar a fila, transferir garantias, se as mensagens têm de ser armazenadas de forma durável, e como as mensagens devem ser protegidas e autenticadas. Para obter mais informações, veja How to: Exchange Messages with WCF Endpoints and Message Queuing Applications (Como: Trocar Mensagens com Pontos Finais do WCF e Aplicações de Colocação em Fila de Mensagens).
Exemplo
<configuration>
<system.ServiceModel>
<bindings>
<msmqIntegrationBinding>
<binding closeTimeout="00:00:10"
openTimeout="00:00:20"
receiveTimeout="00:00:30"
sendTimeout="00:00:40"
deadLetterQueue="net.msmq://localhost/blah"
durable="true"
exactlyOnce="true"
maxReceivedMessageSize="1000"
maxImmediateRetries="11"
maxRetryCycles="12"
poisonMessageHandling="Disabled"
rejectAfterLastRetry="false"
retryCycleDelay="00:05:55"
timeToLive="00:11:11"
useSourceJournal="true"
useMsmqTracing="true"
serializationFormat="Binary">
<security mode="None" />
</binding>
</msmqIntegrationBinding>
</bindings>
</system.ServiceModel>
</configuration>