TransactedBatchingBehavior Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Representa um comportamento que otimiza as operações de recebimento para transportes que dão suporte a recebimentos transacionais.
public ref class TransactedBatchingBehavior : System::ServiceModel::Description::IEndpointBehavior
public class TransactedBatchingBehavior : System.ServiceModel.Description.IEndpointBehavior
type TransactedBatchingBehavior = class
interface IEndpointBehavior
Public Class TransactedBatchingBehavior
Implements IEndpointBehavior
- Herança
-
TransactedBatchingBehavior
- Implementações
Exemplos
O exemplo a seguir mostra como adicionar o comportamento de envio em lote transacionado a um serviço em um arquivo de configuração.
<system.serviceModel>
<services>
<service name="Microsoft.ServiceModel.Samples.CalculatorService"
behaviorConfiguration="CalculatorServiceBehavior">
<host>
<baseAddresses>
<add baseAddress="http://localhost:8000/ServiceModelSamples/service"/>
</baseAddresses>
</host>
<endpoint address="net.msmq://localhost/private/ServiceModelSamples"
binding="netMsmqBinding"
contract="Microsoft.ServiceModel.Samples.IQueueCalculator" />
<endpoint address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="CalculatorServiceBehavior">
<serviceMetadata httpGetEnabled="True"/>
</behavior>
<behavior name="transactedBatching" maxBatchSize="10">
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
O exemplo a seguir mostra como adicionar o comportamento de envio em lote transacionado a um serviço no código.
// Note: Service class must be marked with [ServiceBehavior(ReleaseServiceInstanceOnTransactionComplete=false)].
Uri baseAddress = new Uri("http://localhost:8000/ServiceModelSamples/service");
// Create a ServiceHost for the CalculatorService type.
using (ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService), baseAddress))
{
ServiceEndpoint endpoint;
endpoint = serviceHost.AddServiceEndpoint(typeof(IQueueCalculator), new NetMsmqBinding(),"net.msmq://localhost/private/ServiceModelSamples");
endpoint.Behaviors.Add(new TransactedBatchingBehavior(10));
// Open the ServiceHost to create listeners and start listening for messages.
serviceHost.Open();
// The service can now be accessed.
Console.WriteLine("The service is ready.");
Console.WriteLine("Press <ENTER> to terminate service.");
Console.WriteLine();
Console.ReadLine();
// Close the ServiceHost to shutdown the service.
serviceHost.Close();
}
Comentários
Um transporte configurado com esse comportamento tenta colocar em lote várias operações de recebimento em uma transação. Ao fazer isso, o custo relativamente alto de criar uma transação e emiti-la em cada operação de recebimento é evitado.
Construtores
| Nome | Description |
|---|---|
| TransactedBatchingBehavior(Int32) |
Inicializa uma nova instância da TransactedBatchingBehavior classe com o tamanho do lote especificado. |
Propriedades
| Nome | Description |
|---|---|
| MaxBatchSize |
Obtém ou define o número máximo de operações de recebimento que podem ser agrupadas em lote em uma transação. |
Métodos
| Nome | Description |
|---|---|
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| GetHashCode() |
Serve como a função hash predefinida. (Herdado de Object) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| MemberwiseClone() |
Cria uma cópia superficial do Objectatual. (Herdado de Object) |
| ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |
Implantações explícitas de interface
| Nome | Description |
|---|---|
| IEndpointBehavior.AddBindingParameters(ServiceEndpoint, BindingParameterCollection) |
Aplica as configurações de associação ao ponto de extremidade de serviço especificado. Esse método não pode ser herdado. |
| IEndpointBehavior.ApplyClientBehavior(ServiceEndpoint, ClientRuntime) |
Aplica as configurações de comportamento de envio em lote de transações ao ponto de extremidade de serviço especificado. Esse método não pode ser herdado. |
| IEndpointBehavior.ApplyDispatchBehavior(ServiceEndpoint, EndpointDispatcher) |
Associa um dispatcher de ponto de extremidade ao ponto de extremidade de serviço especificado. Esse método não pode ser herdado. |
| IEndpointBehavior.Validate(ServiceEndpoint) |
Garante que o envio em lote transacionado seja aplicável somente para as associações que dão suporte à operação de recebimento transacionada. Esse método não pode ser herdado. |