내보내기(0) 인쇄
모두 확장

System.Transactions 네임스페이스

참고: 이 네임스페이스는 .NET Framework 버전 2.0에서 새로 추가되었습니다.

System.Transactions 네임스페이스에는 트랜잭션 응용 프로그램과 리소스 관리자를 작성하는 데 사용할 수 있는 클래스가 포함되어 있습니다. 특히 참가자가 하나 이상인 트랜잭션(로컬 또는 분산)을 만들고 참가할 수 있습니다.

Note중요:

Windows 2000, Windows XP 및 Windows 2003 플랫폼에서만 이 네임스페이스를 사용하여 응용 프로그램을 만들 수 있습니다. Windows 98 및 Windows ME 플랫폼에서 트랜잭션을 만들면 PlatformNotSupportedException이 throw됩니다.

System.Transactions 인프라에서는 SQL Server, ADO.NET, MSMQ 및 MSDTC(Microsoft Distributed Transaction Coordinator)에서 시작되는 트랜잭션을 지원하므로 플랫폼 전체에서 간단하고 효율적으로 트랜잭션 프로그래밍을 수행할 수 있습니다. 이 인프라는 Transaction 클래스를 기반으로 하는 명시적 프로그래밍 모델과 TransactionScope 클래스를 사용하는 암시적 프로그래밍 모델을 제공합니다. 암시적 프로그래밍 모델에서는 트랜잭션이 인프라에서 자동으로 관리됩니다. 더 간편한 암시적 모델을 개발에 사용하는 것이 좋습니다. 시작하려면 트랜잭션 범위를 사용하여 암시적 트랜잭션 구현 항목을 참조하십시오. 트랜잭션 응용 프로그램의 작성에 대한 자세한 내용은 트랜잭션 응용 프로그램 작성을 참조하십시오.

System.Transactions는 리소스 관리자를 구현하는 데 사용할 수 있는 형식도 제공합니다. System.Transactions 인프라의 트랜잭션 관리자를 통해 일시적인 여러 리소스나 영구적인 단일 리소스 인리스트먼트에서 효율적으로 커밋하거나 롤백할 수 있습니다. 리소스 관리자 구현에 대한 자세한 내용은 리소스 관리자 구현를 참조하십시오.

또한 트랜잭션 관리자는 영속적 리소스 관리자가 추가로 트랜잭션에 참여하는 경우 DTC와 같은 디스크 기반 트랜잭션 관리자를 통해 조정하여 로컬 트랜잭션을 분산 트랜잭션으로 투명하게 에스컬레이션합니다. System.Transactions 인프라에서 성능을 향상시키는 두 가지 주요 방법은 다음과 같습니다.

  • 트랜잭션에 실제로 필요한 경우에만 System.Transactions 인프라에서 MSDTC를 사용하는 동적 에스컬레이션입니다. 동적 에스컬레이션에 대해서는 트랜잭션 관리 에스컬레이션 항목에서 자세히 다룹니다.

  • 데이터베이스 등의 리소스가 트랜잭션에 참가한 유일한 엔터티인 경우 트랜잭션을 소유할 수 있게 해 주는 승격 가능한 인리스트먼트입니다. 필요하면 나중에 System.Transactions 인프라에서 트랜잭션의 관리를 MSDTC로 에스컬레이션할 수 있습니다. 이 방법을 사용하면 MSDTC를 사용할 가능성이 더 줄어듭니다. 승격 가능한 인리스트먼트에 대해서는 단일 단계 커밋 및 확장 가능한 단일 단계 알림을 사용한 최적화 항목에서 자세히 다룹니다.

System.Transactions는 노출하는 리소스 형식에 대한 액세스를 제한하는 세 가지 신뢰 수준을 정의합니다. 특히 System.Transactions 어셈블리는 AllowPartiallyTrustedCallers 특성(APTCA)으로 표시되어 있으므로 부분적으로 신뢰할 수 있는 코드에서 호출될 수 있습니다. 이 특성은 각 형식의 공개적으로 액세스 가능한 각 메서드에 자동으로 배치될 FullTrust 권한 집합에 대한 암시적 LinkDemand를 제거합니다. 그러나 일부 형식과 멤버에는 더 강력한 권한이 필요합니다.

아래의 선언적 보안 특성으로 데코레이팅되기 때문에 부분적으로 신뢰할 수 있는 코드에서 호출할 수 없는 형식과 멤버의 목록은 다음과 같습니다.

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

System.Transactions.Transaction.EnlistDurable

System.Transactions.Transaction.EnlistPromotableSinglePhase

System.Transactions.TransactionInterop

System.Transactions.TransactionManager.DistributedTransactionStarted

System.Transactions.TransactionManager.HostCurrentTransactionCallback

System.Transactions.TransactionManager.Reenlist

System.Transactions.TransactionManager.RecoveryComplete

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)

다양한 신뢰 수준에 대한 자세한 내용은 리소스 액세스의 보안 신뢰 수준를 참조하십시오.

Core Development Technologies\Data Access\Transaction Processing\

System.Transactions 네임스페이스를 사용하는 방법에 대한 자세한 내용은 설명서에서 "핵심 개발 기술\데이터 액세스\트랜잭션 처리\" 부분에 있는 개념 설명서 트랜잭션 처리을 참조하십시오. 특히 다음 항목에서 자세한 내용을 찾을 수 있습니다.

System.Transactions에서 제공하는 기능

트랜잭션 응용 프로그램 작성

리소스 관리자 구현

 클래스설명
Public classCommittableTransaction커밋 가능한 트랜잭션에 대해 설명합니다.
Public classDependentTransaction응용 프로그램이 트랜잭션의 작업을 중지할 때까지 트랜잭션이 커밋되지 않도록 하는 트랜잭션 복제본에 대해 설명합니다. 이 클래스는 상속될 수 없습니다.
Public classDistributedTransactionPermission트랜잭션 관리가 MSDTC로 에스컬레이션될 때 System.Transactions에서 요구하는 사용 권한입니다. 이 클래스는 상속될 수 없습니다.
Public classDistributedTransactionPermissionAttribute선언적 보안을 사용하여 DistributedTransactionPermission에 대한 보안 동작을 코드에 적용할 수 있습니다. 이 클래스는 상속될 수 없습니다.
Public classEnlistment트랜잭션의 마지막 단계에서 참여한 트랜잭션 참가 요소와 트랜잭션 관리자 간의 통신을 용이하게 합니다.
Public classPreparingEnlistment트랜잭션의 준비 단계에서 참여한 트랜잭션 참가 요소와 트랜잭션 관리자 간의 통신을 용이하게 합니다.
Public classSinglePhaseEnlistmentSinglePhaseCommit 알림이 수신될 때 1단계 커밋에 참여한 참가 요소와 트랜잭션 관리자 사이의 통신을 원활하게 하는 콜백 집합을 제공합니다.
Public classSubordinateTransaction위임될 수 있는 루트가 아닌 트랜잭션을 나타냅니다. 이 클래스는 상속될 수 없습니다.
Public classTransaction트랜잭션을 나타냅니다.
Public classTransactionAbortedException이미 롤백된 트랜잭션에서 작업이 시도되거나, 트랜잭션 커밋을 시도하고 트랜잭션이 중단되면 throw되는 예외입니다.
Public classTransactionEventArgsDistributedTransactionStarted, TransactionCompleted 트랜잭션 이벤트에 대한 데이터를 제공합니다.
Public classTransactionException새로운 작업을 수용할 수 없는 트랜잭션에서 작업을 시도하면 예외가 throw됩니다.
Public classTransactionInDoubtException의심스러운 트랜잭션에서 작업이 시도되거나, 트랜잭션 커밋을 시도하고 트랜잭션이 InDoubt가 되면 throw되는 예외입니다.
Public classTransactionInformation트랜잭션에 대한 추가 정보를 제공합니다.
Public classTransactionInteropSystem.Transactions와 구성 요소(MSDTC, COM+ 또는 System.EnterpriseServices와 상호 작용하도록 이전에 작성된 구성 요소) 간의 상호 작용을 원활하게 합니다. 이 클래스는 상속될 수 없습니다.
Public classTransactionManager트랜잭션 관리에 사용되는 메서드를 포함합니다. 이 클래스는 상속될 수 없습니다.
Public classTransactionManagerCommunicationException리소스 관리자가 트랜잭션 관리자와 통신할 수 없으면 throw되는 예외입니다.
Public classTransactionPromotionException확장이 실패하면 throw되는 예외입니다.
Public classTransactionScope트랜잭션 코드 블록을 만듭니다. 이 클래스는 상속될 수 없습니다.

 인터페이스설명
Public interfaceIDtcTransactionDTC 트랜잭션에 대해 설명합니다.
Public interfaceIEnlistmentNotification리소스 관리자가 참여할 때 트랜잭션 관리자용 2단계 커밋 알림 콜백을 제공하기 위해 구현할 인터페이스에 대해 설명합니다.
Public interfaceIPromotableSinglePhaseNotification리소스 관리자 내부의 분산되지 않은 트랜잭션에 대한 커밋 대리자로 작동하는 개체에 대해 설명합니다.
Public interfaceISimpleTransactionSuperior루트 트랜잭션은 아니지만 MSDTC로 관리하도록 에스컬레이션할 수 있는 트랜잭션을 나타냅니다.
Public interfaceISinglePhaseNotification트랜잭션에 참여할 1단계 커밋 최적화를 지원하는 리소스 개체에 대해 설명합니다.
Public interfaceITransactionPromoter필요할 때 MSDTC에서 관리하도록 에스컬레이션할 수 있는 기존 트랜잭션의 위임된 트랜잭션에 대해 설명합니다.

 구조체설명
Public structureTransactionOptions트랜잭션 동작을 지정하는 추가 정보가 들어 있습니다.

 대리자설명
Public delegateHostCurrentTransactionCallback호스팅 환경에서 Current의 고유한 기본 개념을 제시하기 위한 메커니즘을 제공합니다.
Public delegateTransactionCompletedEventHandlerTransaction 클래스의 TransactionCompleted 이벤트를 처리하는 메서드를 나타냅니다.
Public delegateTransactionStartedEventHandlerTransactionManager 클래스의 DistributedTransactionStarted 이벤트를 처리할 메서드를 나타냅니다.

 열거형설명
Public enumerationDependentCloneOption만들려는 종속 트랜잭션의 종류를 제어합니다.
Public enumerationEnlistmentOptions준비 단계에서 개체를 참여시킬지 여부를 결정합니다.
Public enumerationEnterpriseServicesInteropOption분산 트랜잭션이 COM+ 트랜잭션과 상호 작용하는 방법을 지정합니다.
Public enumerationIsolationLevel트랜잭션의 격리 수준을 지정합니다.
Public enumerationTransactionScopeOption트랜잭션 범위를 만드는 추가 옵션을 제공합니다.
Public enumerationTransactionStatus분산 트랜잭션의 현재 상태에 대해 설명합니다.

커뮤니티 추가 항목

추가
표시:
© 2014 Microsoft