TransactedBatchingBehavior Classe

Définition

Représente un comportement qui optimise les opérations de réception pour les transports prenant en charge les réceptions transactionnelles.

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
Héritage
TransactedBatchingBehavior
Implémente

Exemples

L'exemple suivant explique comment ajouter le comportement de traitement par lot avec transaction à un service dans un fichier de configuration.

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

Le code suivant illustre l'ajout à un service du comportement de traitement par lot avec transaction :

// 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();
}

Remarques

Un transport configuré avec ce comportement procède à des tentatives de traitement de plusieurs opérations de réception en une seule transaction par lot. Ainsi, le coût relativement élevé de la création d’une transaction et de sa validation dans chaque opération de réception est évité.

Constructeurs

TransactedBatchingBehavior(Int32)

Initialise une nouvelle instance de la classe TransactedBatchingBehavior avec la taille de lot spécifiée.

Propriétés

MaxBatchSize

Obtient ou définit le nombre maximal d'opérations de réception qui peuvent être regroupées dans une transaction.

Méthodes

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

Implémentations d’interfaces explicites

IEndpointBehavior.AddBindingParameters(ServiceEndpoint, BindingParameterCollection)

Applique des paramètres de liaison au point de terminaison de service spécifié. Cette méthode ne peut pas être héritée.

IEndpointBehavior.ApplyClientBehavior(ServiceEndpoint, ClientRuntime)

Applique des paramètres de comportement de traitement par lot de la transaction au point de terminaison de service spécifié. Cette méthode ne peut pas être héritée.

IEndpointBehavior.ApplyDispatchBehavior(ServiceEndpoint, EndpointDispatcher)

Associe un répartiteur de points de terminaison au point de terminaison de service spécifié. Cette méthode ne peut pas être héritée.

IEndpointBehavior.Validate(ServiceEndpoint)

Garantit que le traitement par lots avec transaction s'applique uniquement aux liaisons prenant en charge les opérations de réception avec transaction. Cette méthode ne peut pas être héritée.

S’applique à