Compartilhar via


TransactedBatchingBehavior Classe

Definição

Representa um comportamento que otimiza as operações de recebimento para os transportes que dão suporte aos 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 em 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 confirmá-la em cada operação de recebimento é evitado.

Construtores

TransactedBatchingBehavior(Int32)

Inicializa uma nova instância da classe TransactedBatchingBehavior com o tamanho de lote especificado.

Propriedades

MaxBatchSize

Obtém ou define o número máximo de operações de recebimento que juntas podem formar um lote em uma transação.

Métodos

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Implantações explícitas de interface

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 transação em lote ao ponto de extremidade de serviço especificado. Esse método não pode ser herdado.

IEndpointBehavior.ApplyDispatchBehavior(ServiceEndpoint, EndpointDispatcher)

Associa um dispatcher do ponto de extremidade com o ponto de extremidade de serviço especificado. Esse método não pode ser herdado.

IEndpointBehavior.Validate(ServiceEndpoint)

Garante que o lote transacionado é aplicável somente para as associações de operação de recebimento suporte transacionado. Esse método não pode ser herdado.

Aplica-se a