다음을 통해 공유


TransactedBatchingBehavior 클래스

정의

트랜잭션 수신을 지원하는 전송에 대해 받기 작업을 최적화하는 동작을 나타냅니다.

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
상속
TransactedBatchingBehavior
구현

예제

다음 예제에서는 구성 파일에서 트랜잭션된 일괄 처리 동작을 서비스에 추가하는 방법을 보여 줍니다.

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

다음 예제에서는 코드에서 트랜잭션된 일괄 처리 동작을 서비스에 추가하는 방법을 보여 줍니다.

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

설명

이 동작으로 구성된 전송에서 여러 개의 받기 작업을 한 번의 트랜잭션으로 일괄 처리하도록 시도합니다. 이렇게 하면 모든 받기 작업에서 트랜잭션을 만들고 이를 커밋하는 비용을 줄일 수 있습니다.

생성자

TransactedBatchingBehavior(Int32)

지정된 일괄 처리 크기를 사용하여 TransactedBatchingBehavior 클래스의 새 인스턴스를 초기화합니다.

속성

MaxBatchSize

한 트랜잭션으로 일괄 처리할 수 있는 최대 받기 작업 수를 가져오거나 설정합니다.

메서드

Equals(Object)

지정된 개체가 현재 개체와 같은지 확인합니다.

(다음에서 상속됨 Object)
GetHashCode()

기본 해시 함수로 작동합니다.

(다음에서 상속됨 Object)
GetType()

현재 인스턴스의 Type을 가져옵니다.

(다음에서 상속됨 Object)
MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
ToString()

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)

명시적 인터페이스 구현

IEndpointBehavior.AddBindingParameters(ServiceEndpoint, BindingParameterCollection)

지정된 서비스 엔드포인트에 바인딩 설정을 적용합니다. 이 메서드는 상속될 수 없습니다.

IEndpointBehavior.ApplyClientBehavior(ServiceEndpoint, ClientRuntime)

지정된 서비스 엔드포인트에 트랜잭션 일괄 처리 동작 설정을 적용합니다. 이 메서드는 상속될 수 없습니다.

IEndpointBehavior.ApplyDispatchBehavior(ServiceEndpoint, EndpointDispatcher)

엔드포인트 디스패처를 지정된 서비스 엔드포인트에 연결합니다. 이 메서드는 상속될 수 없습니다.

IEndpointBehavior.Validate(ServiceEndpoint)

트랜잭션된 받기 작업을 지원하는 바인딩에 대해서만 트랜잭션된 일괄 처리를 적용할 수 있는지 확인합니다. 이 메서드는 상속될 수 없습니다.

적용 대상