TransactedBatchingBehavior Classe

Definição

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.

Aplica-se a