CommittableTransaction 클래스

정의

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

public ref class CommittableTransaction sealed : System::Transactions::Transaction, IAsyncResult, IDisposable, System::Runtime::Serialization::ISerializable
[System.Serializable]
public sealed class CommittableTransaction : System.Transactions.Transaction, IAsyncResult, IDisposable, System.Runtime.Serialization.ISerializable
type CommittableTransaction = class
    inherit Transaction
    interface ISerializable
    interface IDisposable
    interface IAsyncResult
Public NotInheritable Class CommittableTransaction
Inherits Transaction
Implements IAsyncResult, IDisposable, ISerializable
상속
CommittableTransaction
특성
구현

설명

CommittableTransaction 클래스를 암시적으로 사용하는 경우와 달리 TransactionScope 클래스는 애플리케이션이 트랜잭션을 사용할 수 있는 명시적 방법을 제공합니다.The CommittableTransaction class provides an explicit way for applications to use a transaction, as opposed to using the TransactionScope class implicitly. TransactionScope 클래스와 달리 애플리케이션 작성기에서 특별히 CommitRollback 메서드를 호출하여 트랜잭션을 커밋하거나 중단해야 합니다.Unlike the TransactionScope class, the application writer needs to specifically call the Commit and Rollback methods in order to commit or abort the transaction. 그러나 트랜잭션의 작성자만 트랜잭션을 커밋할 수 있습니다.However, only the creator of a transaction can commit the transaction. 따라서 Transaction.Clone 메서드를 통해 얻은 커밋할 수 있는 트랜잭션의 복사본은 커밋할 수 없습니다.Therefore, copies of a committable transaction obtained through the Transaction.Clone method are not committable.

참고

앰비언트 트랜잭션 컨텍스트를 자동으로 관리 하도록 TransactionScope 클래스를 사용 하 여 암시적 트랜잭션을 만드는 것이 좋습니다.We recommend that you create implicit transactions using the TransactionScope class, so that the ambient transaction context is automatically managed for you. 또한 여러 함수 호출 또는 다중 스레드 호출에서 동일한 트랜잭션을 사용 해야 하는 응용 프로그램에 대해 TransactionScopeDependentTransaction 클래스를 사용 해야 합니다.You should also use the TransactionScope and DependentTransaction classes for applications that require the use of the same transaction across multiple function calls or multiple thread calls. 이 모델에 대 한 자세한 내용은 트랜잭션 범위를 사용 하 여 암시적 트랜잭션 구현 항목을 참조 하세요.For more information on this model, see the Implementing An Implicit Transaction Using Transaction Scope topic.

CommittableTransaction를 만들면 코드가 실행 되는 트랜잭션 인 앰비언트 트랜잭션이 자동으로 설정 되지 않습니다.Creating a CommittableTransaction does not automatically set the ambient transaction, which is the transaction your code executes in. 전역 Transaction 개체의 정적 Transaction.Current 속성을 호출 하 여 앰비언트 트랜잭션을 가져오거나 설정할 수 있습니다.You can get or set the ambient transaction by calling the static Transaction.Current property of the global Transaction object. 앰비언트 트랜잭션에 대 한 자세한 내용은 트랜잭션 범위를 사용 하 여 암시적 트랜잭션 구현 항목의 "TransactionScopeOption를 사용 하 여 트랜잭션 흐름 관리" 섹션을 참조 하세요.For more information on ambient transactions, see the " Managing Transaction Flow using TransactionScopeOption" section of the Implementing An Implicit Transaction Using Transaction Scope topic. 앰비언트 트랜잭션을 설정 되어 있지 않으면 리소스 관리자에서 모든 작업이 해당 트랜잭션의 일부가 아닙니다.If the ambient transaction is not set, any operation on a resource manager is not part of that transaction. 명시적으로 설정 하 고 올바른 트랜잭션 컨텍스트 내에서 리소스 관리자를 작동 하려면 앰비언트 트랜잭션을 다시 설정 해야 합니다.You need to explicitly set and reset the ambient transaction to ensure that resource managers operate under the right transaction context.

CommittableTransaction 커밋될 때까지 트랜잭션과 관련 된 모든 리소스는 여전히 잠깁니다.Until a CommittableTransaction has been committed, all the resources involved with the transaction are still locked.

CommittableTransaction 개체는 다시 사용할 수 없습니다.A CommittableTransaction object cannot be reused. 커밋 또는 롤백 되었는지가, 되 면 트랜잭션에 다시 사용 하거나 현재 앰비언트 트랜잭션 컨텍스트로 설정할 수 없습니다.Once it has been committed or rolled back, it cannot be used again in a transaction or set as the current ambient transaction context.

생성자

CommittableTransaction()

CommittableTransaction 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the CommittableTransaction class.

CommittableTransaction(TimeSpan)

지정된 CommittableTransaction 값을 사용하여 timeout 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the CommittableTransaction class with the specified timeout value.

CommittableTransaction(TransactionOptions)

지정된 트랜잭션 옵션을 사용하여 CommittableTransaction 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the CommittableTransaction class with the specified transaction options.

속성

IsolationLevel

트랜잭션의 격리 수준을 가져옵니다.Gets the isolation level of the transaction.

(다음에서 상속됨 Transaction)
PromoterType

트랜잭션을 승격할 때 확장 메서드에서 반환한 byte[]의 형식을 고유하게 식별합니다.Uniquely identifies the format of the byte[] returned by the Promote method when the transaction is promoted.

(다음에서 상속됨 Transaction)
TransactionInformation

트랜잭션에 대한 추가 정보를 검색합니다.Retrieves additional information about a transaction.

(다음에서 상속됨 Transaction)

메서드

BeginCommit(AsyncCallback, Object)

비동기적으로 트랜잭션을 커밋하려는 시도를 시작합니다.Begins an attempt to commit the transaction asynchronously.

BeginCommitInternal(AsyncCallback) (다음에서 상속됨 Transaction)
Clone()

트랜잭션의 복제본을 만듭니다.Creates a clone of the transaction.

(다음에서 상속됨 Transaction)
Commit()

트랜잭션을 커밋하려고 시도합니다.Attempts to commit the transaction.

DependentClone(DependentCloneOption)

트랜잭션의 종속 복제본을 만듭니다.Creates a dependent clone of the transaction.

(다음에서 상속됨 Transaction)
Dispose()

개체에서 보유하는 리소스를 해제합니다.Releases the resources that are held by the object.

(다음에서 상속됨 Transaction)
EndCommit(IAsyncResult)

트랜잭션을 비동기적으로 커밋하려는 시도를 끝냅니다.Ends an attempt to commit the transaction asynchronously.

EndCommitInternal(IAsyncResult) (다음에서 상속됨 Transaction)
EnlistDurable(Guid, IEnlistmentNotification, EnlistmentOptions)

트랜잭션에 참여할 2단계 커밋을 지원하는 영속적 리소스 관리자를 참여시킵니다.Enlists a durable resource manager that supports two phase commit to participate in a transaction.

(다음에서 상속됨 Transaction)
EnlistDurable(Guid, ISinglePhaseNotification, EnlistmentOptions)

트랜잭션에 참여할 1단계 커밋 최적화를 지원하는 영속적 리소스 관리자를 참여시킵니다.Enlists a durable resource manager that supports single phase commit optimization to participate in a transaction.

(다음에서 상속됨 Transaction)
EnlistPromotableSinglePhase(IPromotableSinglePhaseNotification)

PSPE(Promotable Single Phase Enlistment)를 통해 내부 트랜잭션이 있는 리소스 관리자를 등록합니다.Enlists a resource manager that has an internal transaction using a promotable single phase enlistment (PSPE).

(다음에서 상속됨 Transaction)
EnlistPromotableSinglePhase(IPromotableSinglePhaseNotification, Guid)

PSPE(Promotable Single Phase Enlistment)를 통해 내부 트랜잭션이 있는 리소스 관리자를 등록합니다.Enlists a resource manager that has an internal transaction using a promotable single phase enlistment (PSPE).

(다음에서 상속됨 Transaction)
EnlistVolatile(IEnlistmentNotification, EnlistmentOptions)

트랜잭션에 참여하기 위해 2단계 커밋을 지원하는 일시적 리소스 관리자를 등록합니다.Enlists a volatile resource manager that supports two phase commit to participate in a transaction.

(다음에서 상속됨 Transaction)
EnlistVolatile(ISinglePhaseNotification, EnlistmentOptions)

트랜잭션에 참여할 1단계 커밋 최적화를 지원하는 일시적 리소스 관리자를 참여시킵니다.Enlists a volatile resource manager that supports single phase commit optimization to participate in a transaction.

(다음에서 상속됨 Transaction)
Equals(Object)

이 트랜잭션과 지정된 개체가 같은지 여부를 확인합니다.Determines whether this transaction and the specified object are equal.

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

이 인스턴스의 해시 코드를 반환합니다.Returns the hash code for this instance.

(다음에서 상속됨 Transaction)
GetPromotedToken()

트랜잭션을 승격할 때 확장 메서드가 반환한 byte[]를 가져옵니다.Gets the byte[] returned by the Promote method when the transaction is promoted.

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

현재 인스턴스의 Type을 가져옵니다.Gets the Type of the current instance.

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

현재 Object의 단순 복사본을 만듭니다.Creates a shallow copy of the current Object.

(다음에서 상속됨 Object)
PromoteAndEnlistDurable(Guid, IPromotableSinglePhaseNotification, ISinglePhaseNotification, EnlistmentOptions)

트랜잭션에 참여할 2단계 커밋을 지원하는 영속적 리소스 관리자를 승격 및 참여시킵니다.Promotes and enlists a durable resource manager that supports two phase commit to participate in a transaction.

(다음에서 상속됨 Transaction)
Rollback()

트랜잭션을 롤백(중단)합니다.Rolls back (aborts) the transaction.

(다음에서 상속됨 Transaction)
Rollback(Exception)

트랜잭션을 롤백(중단)합니다.Rolls back (aborts) the transaction.

(다음에서 상속됨 Transaction)
SetDistributedTransactionIdentifier(IPromotableSinglePhaseNotification, Guid)

비MSDTC 프로모터를 통해 생성된 분산 트랜잭션 식별자를 설정합니다.Sets the distributed transaction identifier generated by the non-MSDTC promoter.

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

현재 개체를 나타내는 string을 반환합니다.Returns a string that represents the current object.

(다음에서 상속됨 Object)

이벤트

TransactionCompleted

트랜잭션이 완료되었음을 나타냅니다.Indicates that the transaction is completed.

(다음에서 상속됨 Transaction)

명시적 인터페이스 구현

IAsyncResult.AsyncState

BeginCommit(AsyncCallback, Object) 메서드 호출의 마지막 매개 변수로 제공된 개체를 가져옵니다.Gets the object provided as the last parameter of the BeginCommit(AsyncCallback, Object) method call.

IAsyncResult.AsyncWaitHandle

비동기 작업이 완료될 때까지 기다리는 데 사용하는 WaitHandle을 가져옵니다.Gets a WaitHandle that is used to wait for an asynchronous operation to complete.

IAsyncResult.CompletedSynchronously

비동기 커밋 작업이 동기적으로 완료되었는지 여부를 나타내는 표시를 가져옵니다.Gets an indication of whether the asynchronous commit operation completed synchronously.

IAsyncResult.IsCompleted

비동기 커밋 작업이 완료되었는지 여부를 나타내는 표시를 가져옵니다.Gets an indication whether the asynchronous commit operation has completed.

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

적용 대상

스레드 보안

이 형식은 스레드로부터 안전합니다.This type is thread safe.

추가 정보