TransactedBatchingBehavior Clase

Definición

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

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

En el ejemplo siguiente se muestra cómo agregar el comportamiento de procesamiento por lotes de transacciones a 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>

En el ejemplo siguiente se muestra cómo agregar el comportamiento de procesamiento por lotes de transacciones a un servicio en el 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 configurado con este comportamiento intenta procesar por lotes varias operaciones de recepción en una transacción. Al hacerlo, se evita el costo relativamente alto de crear una transacción y confirmarla en cada operación de recepción.

Constructores

Nombre Description
TransactedBatchingBehavior(Int32)

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

Propiedades

Nombre Description
MaxBatchSize

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

Métodos

Nombre Description
Equals(Object)

Determina si el objeto especificado es igual al objeto actual.

(Heredado de Object)
GetHashCode()

Actúa 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 Objectactual.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Implementaciones de interfaz explícitas

Nombre Description
IEndpointBehavior.AddBindingParameters(ServiceEndpoint, BindingParameterCollection)

Aplica la configuración de enlace al punto de conexión de servicio especificado. Este método no se puede heredar.

IEndpointBehavior.ApplyClientBehavior(ServiceEndpoint, ClientRuntime)

Aplica la configuración del comportamiento del procesamiento por lotes de transacciones al punto de conexión de servicio especificado. Este método no se puede heredar.

IEndpointBehavior.ApplyDispatchBehavior(ServiceEndpoint, EndpointDispatcher)

Asocia un distribuidor de puntos de conexión al punto de conexión de servicio especificado. Este método no se puede heredar.

IEndpointBehavior.Validate(ServiceEndpoint)

Garantiza que el procesamiento por lotes de transacciones solo se aplica a los enlaces que admiten la operación de recepción de transacciones. Este método no se puede heredar.

Se aplica a