Compartir vía


TransactedBatchingBehavior Clase

Definición

Representa un comportamiento que optimiza las operaciones de recepción para los transportes que admiten recepción transaccional.

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
Herencia
TransactedBatchingBehavior
Implementaciones

Ejemplos

El ejemplo siguiente muestra cómo agregar el comportamiento por lotes llevado a cabo en un servicio en un archivo de configuración.

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

El ejemplo siguiente muestra cómo agregar el comportamiento por lotes llevado a cabo en un servicio en 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();
}

Comentarios

Un transporte que se configura con este comportamiento intenta realizar varias operaciones de recepción en una transacción. Haciendo esto, el costo relativamente alto de crear una transacción y confirmarla se evita en cada operación de recepción.

Constructores

TransactedBatchingBehavior(Int32)

Inicializa una nueva instancia de la clase TransactedBatchingBehavior con el tamaño de lote especificado.

Propiedades

MaxBatchSize

Obtiene o establece el número máximo de operaciones de recepción que pueden realizarse por lotes en una transacción.

Métodos

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Implementaciones de interfaz explícitas

IEndpointBehavior.AddBindingParameters(ServiceEndpoint, BindingParameterCollection)

Aplica los valores de enlace al extremo de servicio especificado. Este método no se puede heredar.

IEndpointBehavior.ApplyClientBehavior(ServiceEndpoint, ClientRuntime)

Aplica los valores del comportamiento por lotes de la transacción al punto de conexión de servicio especificado. Este método no se puede heredar.

IEndpointBehavior.ApplyDispatchBehavior(ServiceEndpoint, EndpointDispatcher)

Asocia un distribuidor del extremo al extremo de servicio especificado. Este método no se puede heredar.

IEndpointBehavior.Validate(ServiceEndpoint)

Se asegura de que la transacción del procesamiento por lotes sólo es aplicable para los enlaces que admiten la operación de recepción llevada a cabo. Este método no se puede heredar.

Se aplica a