System.Transactions Namespace

System.Transactions 네임스페이스에는 트랜잭션 응용 프로그램과 리소스 관리자를 작성하는 데 사용할 수 있는 클래스가 포함되어 있습니다. The System.Transactions namespace contains classes that allow you to write your own transactional application and resource manager. 특히 참가자가 하나 이상인 트랜잭션(로컬 또는 분산)을 만들고 참가할 수 있습니다. Specifically, you can create and participate in a transaction (local or distributed) with one or multiple participants.

클래스

CommittableTransaction

커밋할 수 있는 트랜잭션에 대해 설명합니다.Describes a committable transaction.

DependentTransaction

애플리케이션이 트랜잭션의 작업을 중지할 때까지 트랜잭션이 커밋되지 않도록 하는 트랜잭션 복제본에 대해 설명합니다.Describes a clone of a transaction providing guarantee that the transaction cannot be committed until the application comes to rest regarding work on the transaction. 이 클래스는 상속될 수 없습니다.This class cannot be inherited.

DistributedTransactionPermission

트랜잭션 관리가 MSDTC로 에스컬레이션될 때 System.Transactions에서 요구하는 사용 권한입니다.The permission that is demanded by System.Transactions when management of a transaction is escalated to MSDTC. 이 클래스는 상속될 수 없습니다.This class cannot be inherited.

DistributedTransactionPermissionAttribute

DistributedTransactionPermission에 대한 보안 동작이 선언적 보안을 사용하여 코드에 적용될 수 있습니다.Allows security actions for DistributedTransactionPermission to be applied to code using declarative security. 이 클래스는 상속될 수 없습니다.This class cannot be inherited.

Enlistment

트랜잭션의 마지막 단계에서 참여한 트랜잭션 참가 요소와 트랜잭션 관리자 간의 통신을 용이하게 합니다.Facilitates communication between an enlisted transaction participant and the transaction manager during the final phase of the transaction.

PreparingEnlistment

트랜잭션의 준비 단계에서 참여한 트랜잭션 참가 요소와 트랜잭션 관리자 간의 통신을 용이하게 합니다.Facilitates communication between an enlisted transaction participant and the transaction manager during the Prepare phase of the transaction.

SinglePhaseEnlistment

SinglePhaseCommit(SinglePhaseEnlistment) 알림이 수신될 때 1단계 커밋에 참여한 참가 요소와 트랜잭션 관리자 사이의 통신을 원활하게 하는 콜백 집합을 제공합니다.Provides a set of callbacks that facilitate communication between a participant enlisted for Single Phase Commit and the transaction manager when the SinglePhaseCommit(SinglePhaseEnlistment) notification is received.

SubordinateTransaction

위임될 수 있는 루트가 아닌 트랜잭션을 나타냅니다.Represents a non-rooted transaction that can be delegated. 이 클래스는 상속될 수 없습니다.This class cannot be inherited.

Transaction

트랜잭션을 나타냅니다.Represents a transaction.

TransactionAbortedException

이미 롤백된 트랜잭션에서 작업이 시도되거나, 트랜잭션 커밋을 시도하고 트랜잭션이 중단되면 throw되는 예외입니다.The exception that is thrown when an operation is attempted on a transaction that has already been rolled back, or an attempt is made to commit the transaction and the transaction aborts.

TransactionEventArgs

DistributedTransactionStarted, TransactionCompleted 트랜잭션 이벤트에 대한 데이터를 제공합니다.Provides data for the following transaction events: DistributedTransactionStarted, TransactionCompleted.

TransactionException

새로운 작업을 수용할 수 없는 트랜잭션에서 작업을 시도하면 예외가 throw됩니다.The exception that is thrown when you attempt to do work on a transaction that cannot accept new work.

TransactionInDoubtException

의심스러운 트랜잭션에서 작업이 시도되거나, 트랜잭션 커밋을 시도하고 트랜잭션이 InDoubt가 되면 throw되는 예외입니다.The exception that is thrown when an operation is attempted on a transaction that is in doubt, or an attempt is made to commit the transaction and the transaction becomes InDoubt.

TransactionInformation

트랜잭션에 대한 추가 정보를 제공합니다.Provides additional information regarding a transaction.

TransactionInterop

System.Transactions와 구성 요소(MSDTC, COM+ 또는 System.EnterpriseServices와 상호 작용하도록 이전에 작성된 구성 요소) 간의 상호 작용을 원활하게 합니다.Facilitates interaction between System.Transactions and components that were previously written to interact with MSDTC, COM+, or System.EnterpriseServices. 이 클래스는 상속될 수 없습니다.This class cannot be inherited.

TransactionManager

트랜잭션 관리에 사용되는 메서드를 포함합니다.Contains methods used for transaction management. 이 클래스는 상속될 수 없습니다.This class cannot be inherited.

TransactionManagerCommunicationException

리소스 관리자가 트랜잭션 관리자와 통신할 수 없는 경우 throw되는 예외입니다.The exception that is thrown when a resource manager cannot communicate with the transaction manager.

TransactionPromotionException

승격에 실패한 경우에 throw되는 예외입니다.The exception that is thrown when a promotion fails.

TransactionScope

트랜잭션 코드 블록을 만듭니다.Makes a code block transactional. 이 클래스는 상속될 수 없습니다.This class cannot be inherited.

구조체

TransactionOptions

트랜잭션 동작을 지정하는 추가 정보가 들어 있습니다.Contains additional information that specifies transaction behaviors.

인터페이스

IDtcTransaction

DTC 트랜잭션에 대해 설명합니다.Describes a DTC transaction.

IEnlistmentNotification

리소스 관리자가 참여를 위해 등록할 때 트랜잭션 관리자에 대한 2단계 커밋 알림 콜백을 제공하기 위해 구현해야 하는 인터페이스에 대해 설명합니다.Describes an interface that a resource manager should implement to provide two phase commit notification callbacks for the transaction manager upon enlisting for participation.

IPromotableSinglePhaseNotification

리소스 관리자 내부의 분산되지 않은 트랜잭션에 대한 커밋 대리자로 작동하는 개체에 대해 설명합니다.Describes an object that acts as a commit delegate for a non-distributed transaction internal to a resource manager.

ISimpleTransactionSuperior

루트 트랜잭션은 아니지만 MSDTC로 관리하도록 에스컬레이션할 수 있는 트랜잭션을 나타냅니다.Represents a transaction that is not a root transaction, but can be escalated to be managed by the MSDTC.

ISinglePhaseNotification

트랜잭션에 참여하기 위해 단일 단계 커밋 최적화를 지원하는 리소스 개체를 설명합니다.Describes a resource object that supports single phase commit optimization to participate in a transaction.

ITransactionPromoter

필요할 때 MSDTC에서 관리하도록 에스컬레이션할 수 있는 기존 트랜잭션의 위임된 트랜잭션에 대해 설명합니다.Describes a delegated transaction for an existing transaction that can be escalated to be managed by the MSDTC when needed.

열거형

DependentCloneOption

만들려는 종속 트랜잭션의 종류를 제어합니다.Controls what kind of dependent transaction to create.

EnlistmentOptions

준비 단계에서 개체를 참여시킬지 여부를 결정합니다.Determines whether the object should be enlisted during the prepare phase.

EnterpriseServicesInteropOption

분산 트랜잭션이 COM+ 트랜잭션과 상호 작용하는 방법을 지정합니다.Specifies how distributed transactions interact with COM+ transactions.

IsolationLevel

트랜잭션의 격리 수준을 지정합니다.Specifies the isolation level of a transaction.

TransactionScopeAsyncFlowOption

스레드 연속 사이의 트랜잭션 흐름이 TransactionScope에 대해 설정되었는지 여부를 지정합니다.Specifies whether transaction flow across thread continuations is enabled for TransactionScope.

TransactionScopeOption

트랜잭션 범위를 만드는 추가 옵션을 제공합니다.Provides additional options for creating a transaction scope.

TransactionStatus

분산 트랜잭션의 현재 상태에 대해 설명합니다.Describes the current status of a distributed transaction.

대리자

HostCurrentTransactionCallback

호스팅 환경에서 Current의 고유한 기본 개념을 제시하기 위한 메커니즘을 제공합니다.Provides a mechanism for the hosting environment to supply its own default notion of Current.

TransactionCompletedEventHandler

TransactionCompleted 클래스의 Transaction 이벤트를 처리하는 메서드를 나타냅니다.Represents the method that handles the TransactionCompleted event of a Transaction class.

TransactionStartedEventHandler

DistributedTransactionStarted 클래스의 TransactionManager 이벤트를 처리할 메서드를 나타냅니다.Represents the method that will handle the DistributedTransactionStarted event of a TransactionManager class.

설명

System.Transactions 인프라는 트랜잭션 프로그래밍 간단 하 고 효율적인 플랫폼 전체 SQL Server, ADO.NET, MSMQ, 및는 MSDTC Microsoft Distributed Transaction Coordinator ()에서 시작 된 트랜잭션을 지원 합니다.The System.Transactions infrastructure makes transactional programming simple and efficient throughout the platform by supporting transactions initiated in SQL Server, ADO.NET, MSMQ, and the Microsoft Distributed Transaction Coordinator (MSDTC). 모두 명시적 프로그래밍 모델을 기반으로 제공 합니다 Transaction 사용 하는 암시적 프로그래밍 모델 뿐만 아니라 클래스는 TransactionScope 트랜잭션을 관리 하는 자동으로 인프라에서 클래스입니다.It provides both an explicit programming model based on the Transaction class, as well as an implicit programming model using the TransactionScope class, in which transactions are automatically managed by the infrastructure. 개발에 대 한 암시적 쉽게 모델을 사용 하는 것이 좋습니다.It is highly recommended that you use the easier implicit model for development. 시작 하려면 참조는 구현 하는 암시적 트랜잭션을 사용 하 여 트랜잭션 범위 항목입니다.To get started, see the Implementing An Implicit Transaction Using Transaction Scope topic. 트랜잭션 응용 프로그램 작성에 대 한 자세한 내용은 참조 하세요. 쓰기는 트랜잭션 응용 프로그램합니다.For more information on writing a transactional application, see Writing A Transactional Application.

System.Transactions 또한 리소스 관리자를 구현 하기 위한 형식을 제공 합니다.System.Transactions also provides types for you to implement a resource manager. 기본 트랜잭션 관리자는 System.Transactions 인프라를 사용 하면 일시적인 리소스나 하나의 지속적인 리소스 커밋 또는 롤백 효율적으로 인 리스트 먼 트를 합니다.The transaction manager native to the System.Transactions infrastructure allows volatile resources or a single durable resource enlistment to commit or roll back efficiently. 리소스 관리자 구현에 대 한 자세한 내용은 참조 하세요. 는 리소스 관리자 구현합니다.For more information on implementing a resource manager, see Implementing A Resource Manager.

트랜잭션 관리자는 추가 지속적인 리소스 관리자를 트랜잭션과 트랜잭션에 참여 하는 경우 DTC와 같은 디스크 기반 트랜잭션 관리자를 통해 조정 하 여 로컬 트랜잭션이 분산된 트랜잭션으로 투명 하 게도 에스컬레이션 합니다.The transaction manager also transparently escalates local transactions to distributed transactions by coordinating through a disk-based transaction manager like the DTC, when an additional durable resource manager enlists itself with a transaction. System.Transactions 인프라에서 성능을 향상시키는 두 가지 주요 방법은 다음과 같습니다.There are two key ways that the System.Transactions infrastructure provides enhanced performance.

  • 즉 동적 에스컬레이션 된 System.Transactions 인프라에서 msdtc만 트랜잭션이 실제로 필요할 때.Dynamic Escalation, which means that the System.Transactions infrastructure only engages the MSDTC when it is actually required for a transaction. 이 영역에서 자세히 설명 합니다 트랜잭션 관리 에스컬레이션 항목입니다.This area is covered in depth in the Transaction Management Escalation topic.

  • 데이터베이스 등의 리소스가 트랜잭션에 참가한 유일한 엔터티인 경우 트랜잭션을 소유할 수 있게 해 주는 승격 가능한 인리스트먼트입니다.Promotable Enlistments, which allows a resource, such as a database, to take ownership of the transaction if it is the only entity participating in the transaction. 나중에 필요한 경우는 System.Transactions 인프라 트랜잭션 MSDTC로의 관리를 에스컬레이션할 수 있습니다.Later, if needed, the System.Transactions infrastructure can still escalate the management of the transaction to MSDTC. 이 방법을 사용하면 MSDTC를 사용할 가능성이 더 줄어듭니다.This further reduces the chance of using the MSDTC. 이 영역에서 자세히 설명 합니다 최적화를 사용 하 여 단일 단계 커밋 및 승격 가능한 단일 단계 알림을 항목입니다.This area is covered in depth in the Optimization Using Single Phase Commit and Promotable Single Phase Notification topic.

System.Transactions 노출 하는 리소스의 형식에 대 한 액세스를 제한 하는 세 가지 신뢰 수준을 정의 합니다.System.Transactions defines three levels of trust that restrict access on the types of resources it exposes. 특히 합니다 System.Transactions 으로 표시 된 대로 어셈블리를 부분적으로 신뢰할 수 있는 코드에서 호출할 수 있습니다는 AllowPartiallyTrustedCallers 특성 (APTCA).Specifically, the System.Transactions assembly can be called by partially trusted code as it has been marked with the AllowPartiallyTrustedCallers attribute (APTCA). 이 특성은 각 형식의 공개적으로 액세스 가능한 각 메서드에 자동으로 배치될 LinkDemand 권한 집합에 대한 암시적 FullTrust를 제거합니다.This attribute essentially removes the implicit LinkDemand for the FullTrust permission set that is otherwise automatically placed on each publicly accessible method in each type. 그러나 일부 형식과 멤버에는 더 강력한 권한이 필요합니다.However, some types and members still require stronger permissions.

다음은 형식의 목록 및 부분적으로에서 호출할 수 없는 멤버는 신뢰할 수 있는 코드 다음 선언적 보안 특성으로 데코레이팅되기 때문에:The following is a list of types and members that are not callable by partially trusted code because they are decorated with the following declarative security attribute:

PermissionSetAttribute(SecurityAction.LinkDemand, Name := "FullTrust")

System.Transactions.Transaction.EnlistDurableSystem.Transactions.Transaction.EnlistDurable

System.Transactions.Transaction.EnlistPromotableSinglePhaseSystem.Transactions.Transaction.EnlistPromotableSinglePhase

System.Transactions.TransactionInteropSystem.Transactions.TransactionInterop

System.Transactions.TransactionManager.DistributedTransactionStartedSystem.Transactions.TransactionManager.DistributedTransactionStarted

System.Transactions.TransactionManager.HostCurrentTransactionCallbackSystem.Transactions.TransactionManager.HostCurrentTransactionCallback

System.Transactions.TransactionManager.ReenlistSystem.Transactions.TransactionManager.Reenlist

System.Transactions.TransactionManager.RecoveryCompleteSystem.Transactions.TransactionManager.RecoveryComplete

System.Transactions.TransactionScope.TransactionScope (System.Transactions.Transaction,System.TimeSpan,System.Transactions.EnterpriseServicesInteropOption)System.Transactions.TransactionScope.TransactionScope (System.Transactions.Transaction,System.TimeSpan,System.Transactions.EnterpriseServicesInteropOption)

M:System.Transactions.TransactionScope.TransactionScope(System.Transactions.TransactionScopeOption,System.Transactions.TransactionOptions,System.Transactions.EnterpriseServicesInteropOption)M:System.Transactions.TransactionScope.TransactionScope(System.Transactions.TransactionScopeOption,System.Transactions.TransactionOptions,System.Transactions.EnterpriseServicesInteropOption)

다양 한에 대 한 자세한 내용은 신뢰 수준, 참조 리소스 액세스의 보안 신뢰 수준합니다.For more information on the various trust levels, see Security Trust Levels in Accessing Resources.

핵심 개발 기술 \ 데이터 액세스 \ 트랜잭션 처리 \Core Development Technologies\Data Access\Transaction Processing\

사용 하는 방법에 대 한 자세한 내용은 합니다 System.Transactions 네임 스페이스 개념 설명서를 참조할 수 있습니다 트랜잭션 처리"핵심 개발 기술 \ 데이터 액세스 처리아래에있는\"문서의 섹션입니다.For more information on how to use the System.Transactions namespace, you can consult the conceptual documentation Transaction Processing, located under the "Core Development Technologies\Data Access\Transaction Processing\" section in the documentation. 특히, 다음 항목에서 자세한 정보를 찾을 수 있습니다.Specifically, you can find more information in the following topics.

System.Transactions에서 제공 하는 기능Features Provided By System.Transactions

리소스 관리자 구현Implementing A Resource Manager