TransactedBatchingBehavior Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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. |