ServiceModel 트랜잭션 구성
WCF(Windows Communication Foundation)에서는 transactionFlow, transactionProtocol 및 transactionTimeout 서비스의 트랜잭션을 구성하기 위한 세 가지 특성을 제공합니다.
transactionFlow 구성
WCF에서 제공하는 대부분의 미리 정의된 바인딩에는 transactionFlow 및 transactionProtocol 특성이 포함되어 있으므로, 특정 트랜잭션 흐름 프로토콜을 사용하여 특정 끝점에 대해 들어오는 트랜잭션을 허용하도록 바인딩을 구성할 수 있습니다. 또한 transactionFlow 요소와 해당 transactionProtocol 특성을 사용하여 고유의 사용자 지정 바인딩을 만들 수 있습니다. 구성 요소 설정에 대한 자세한 내용은 <binding> 및 Windows Communication Foundation Configuration Schema를 참조하십시오.
transactionFlow 특성은 바인딩을 사용하는 서비스 끝점에 대해 트랜잭션 흐름을 사용할지 여부를 지정합니다.
transactionProtocol 구성
transactionProtocol 특성은 바인딩을 사용하는 서비스 끝점에서 사용할 트랜잭션 프로토콜을 지정합니다.
다음은 지정된 바인딩에서 WS-AtomicTransaction 프로토콜을 사용하고 트랜잭션 흐름을 지원하도록 구성하는 구성 섹션의 예입니다.
<netNamedPipeBinding>
<binding name="test"
closeTimeout="00:00:10"
openTimeout="00:00:20"
receiveTimeout="00:00:30"
sendTimeout="00:00:40"
transactionFlow="true"
transactionProtocol="WSAtomicTransactionOctober2004"
hostNameComparisonMode="WeakWildcard"
maxBufferSize="1001"
maxConnections="123"
maxReceivedMessageSize="1000">
</binding>
</netNamedPipeBinding>
transactionTimeout 구성
구성 파일의 behavior 요소에서 WCF 서비스에 대한 transactionTimeout 특성을 구성할 수 있습니다. 다음 코드에서는 이 작업을 수행하는 방법에 대해 설명합니다.
<configuration>
<system.serviceModel>
<behaviors>
<behavior name="NewBehavior" transactionTimeout="00:01:00" /> <!-- 1 minute timeout -->
</behaviors>
</system.serviceModel>
</configuration>
transactionTimeout 특성은 서비스에서 만들어진 새 트랜잭션이 완료되어야 하는 기간을 지정합니다. 새 트랜잭션을 설정하는 작업에 대한 TransactionScope 시간 제한으로 사용됩니다. OperationBehaviorAttribute가 적용되면 TransactionScopeRequired 속성이 true로 설정됩니다.
시간 제한은 트랜잭션을 만든 시점으로부터 2단계 커밋 프로토콜의 1단계를 완료할 때까지의 기간을 지정합니다.
service 구성 섹션에 이 특성이 설정되어 있으면 OperationBehaviorAttribute를 사용하여 해당 서비스에 대한 하나 이상의 메서드를 적용해야 합니다. 여기서 TransactionScopeRequired 속성은 true로 설정됩니다.
이 transactionTimeout 구성 설정과 TransactionTimeout 속성 사이에서 더 작은 값이 시간 제한 값으로 사용됩니다.
참고 항목
기타 리소스
<binding>
Windows Communication Foundation Configuration Schema