TransactedBatchingBehavior Classe

Definizione

Rappresenta un comportamento che ottimizza le operazioni di ricezione per i trasporti che supportano ricezioni transazionali.

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
Ereditarietà
TransactedBatchingBehavior
Implementazioni

Esempio

Nell'esempio seguente viene illustrato come aggiungere il comportamento di batch transazionale a un servizio in un file di configurazione.

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

Nell'esempio seguente viene illustrato come aggiungere il comportamento di batch transazionale a un servizio nel codice.

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

Commenti

Un trasporto configurato con questo comportamento tenta di raggruppare alcune operazioni di ricezione in una sola transazione. In tal modo, viene evitato il costo relativamente elevato della creazione di una transazione e del relativo commit in ogni operazione di ricezione.

Costruttori

TransactedBatchingBehavior(Int32)

Inizializza una nuova istanza della classe TransactedBatchingBehavior con la dimensione del batch specificata.

Proprietà

MaxBatchSize

Ottiene o imposta il numero massimo di operazioni di ricezione che possono essere raggruppate in una transazione.

Metodi

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

IEndpointBehavior.AddBindingParameters(ServiceEndpoint, BindingParameterCollection)

Applica le impostazioni dell'associazione all'endpoint del servizio specificato. Questo metodo non può essere ereditato.

IEndpointBehavior.ApplyClientBehavior(ServiceEndpoint, ClientRuntime)

Applica le impostazioni del comportamento di batch transazionale all'endpoint del servizio specificato. Questo metodo non può essere ereditato.

IEndpointBehavior.ApplyDispatchBehavior(ServiceEndpoint, EndpointDispatcher)

Associa un dispatcher all'endpoint del servizio specificato. Questo metodo non può essere ereditato.

IEndpointBehavior.Validate(ServiceEndpoint)

Garantisce che il batch transazionale sia applicabile solo per le associazioni che supportano l'operazione di ricezione transazionale. Questo metodo non può essere ereditato.

Si applica a