다음을 통해 공유


자동 트랜잭션에서의 응답

.NET Framework 클래스와 ASP.NET 페이지는 현재 트랜잭션을 커밋할지 아니면 중단할지 응답할 수 있습니다. 해당 코드에 명시적인 응답이 없을 경우에는 기본적으로 응답을 커밋하는 것으로 간주합니다. 그러나 기본 커밋의 경우에는 각 트랜잭션에서 큰 리소스를 해제하는 데 걸리는 시간이 늘어나므로 응용 프로그램의 성능이 저하될 수 있습니다.

명시적인 응답이 있는 경우 트랜잭션에 중대한 오류가 발생하면 클래스 또는 페이지에서 해당 트랜잭션을 중단할 수도 있습니다. 이 경우에는 트랜잭션의 심각한 오류를 일찍 발견하여 트랜잭션을 끝내고 리소스를 해제할 수 있으므로 응용 프로그램의 성능이 향상될 수 있습니다.

AutoComplete 사용

System.EnterpriseServices.AutoCompleteAttribute 특성을 사용하면 개체가 트랜잭션에 참여하여, 메서드가 정상적으로 반환될 경우 트랜잭션이 완료되도록 응답합니다. 메서드 호출이 예외를 Throw하는 경우에는 트랜잭션이 중단됩니다. 이 특성은 ServicedComponent 클래스에서 파생되는 클래스에만 적용할 수 있습니다.

이 기능을 사용하려면 해당 클래스 메서드 앞에 이 특성을 삽입합니다. 인터페이스 메서드에 이 특성을 추가하는 경우 공용 언어 런타임에서는 이를 무시합니다. AutoComplete 특성의 사용 방법 예제는 방법: 트랜잭션 인식 클래스에 AutoComplete 특성 설정을 참조하십시오.

SetAbort 및 SetComplete 사용

System.EnterpriseServices.ContextUtil 클래스의 정적 SetCompleteSetAbort 메서드를 사용하여 각각 트랜잭션을 명시적으로 커밋하거나 중단할 수 있습니다. SetComplete 메서드는 개체가 작업을 커밋할 것임을 나타내는 반면, SetAbort는 개체에 문제가 발생하여 진행 중인 트랜잭션이 중단될 것임을 나타냅니다. 트랜잭션의 루트 개체가 비활성화되기 전까지 트랜잭션을 커밋하거나 중단할 수 없습니다. 또한 트랜잭션에 참여하는 개체에서 한 번이라도 중단을 하게 되면 트랜잭션 자체가 이루어지지 않습니다. SetAbortSetComplete 메서드의 사용 방법 예제는 방법: SetAbort 및 SetComplete 메서드 사용을 참조하십시오.

참고 항목

작업

방법: 트랜잭션 인식 클래스에 AutoComplete 특성 설정
방법: SetAbort 및 SetComplete 메서드 사용

Footer image

Copyright © 2007 by Microsoft Corporation. All rights reserved.