Transactions 기술 샘플

업데이트: 2007년 11월

이 샘플에서는 .NET Framework 응용 프로그램에서 트랜잭션을 사용하는 방법을 보여 줍니다. 이 샘플에서는 특히 SQL Server 데이터베이스에서 값을 검색하여 사용자가 값을 수정하도록 한 다음 데이터베이스에 새 값을 게시하는 과정을 통해 트랜잭션의 "커밋"과 "중단" 기능을 설명합니다.

참고:

이 샘플을 빌드하고 실행하려면 컴퓨터에 Microsoft SQL Server 2000 이상이 설치되어 있어야 하며, Windows 인증을 사용하도록 데이터베이스 엔진을 구성해야 합니다. 기타 구성을 사용하려면 TxObj.cs 또는 TxObj.vb 파일에서 SQL 연결 문자열을 편집해야 합니다.

샘플 사용에 대한 내용은 다음 항목을 참조하십시오.

TxDemoDB 데이터베이스를 만들려면

  1. 명령 프롬프트 창을 열고 Technologies\ComponentServices\Transactions 디렉터리 아래의 언어별 하위 디렉터리 중 하나로 이동합니다.

  2. 명령줄에 osql -E -S (local)\SQLExpress -i TxDB.sql을 입력하거나, SQL Server Query Analyzer 창을 열고 TxDB.sql을 로드한 다음 실행을 선택합니다.

    이렇게 하면 SQL Server에 새 TxDemoDB 데이터베이스가 만들어집니다.

명령 프롬프트를 사용하여 샘플을 빌드하려면

  1. 명령 프롬프트 창을 열고 Technologies\ComponentServices\Transactions 디렉터리 아래의 언어별 하위 디렉터리 중 하나로 이동하거나, 위에서 TxDemoDB 데이터베이스를 만들 때 사용한 명령 창을 사용합니다.

  2. 선택한 프로그래밍 언어에 따라 msbuild TransactionsCS.sln 또는 msbuild TransactionsVB.sln을 명령줄에 입력합니다.

Visual Studio를 사용하여 샘플을 빌드하려면

  1. Windows 탐색기를 열고 샘플에 대한 언어별 하위 디렉터리 중 하나로 이동합니다.

  2. 선택한 프로그래밍 언어에 따라 TransactionsCS.sln 또는 TransactionsVB.sln 아이콘을 두 번 클릭하여 Visual Studio에서 파일을 엽니다.

  3. 빌드 메뉴에서 솔루션 빌드를 클릭합니다.

이 샘플을 실행하려면

  1. 명령 프롬프트 창이나 Windows 탐색기를 열고 새로 빌드된 실행 파일이 있는 디렉터리로 이동합니다.

  2. 명령줄에 TxDemo.exe를 입력하거나 Windows 탐색기에서 실행 파일의 아이콘을 두 번 클릭합니다.

  3. 샘플 응용 프로그램이 데이터베이스에 있는 현재 값을 읽어와 표시합니다.

  4. New Value 필드에 0보다 크거나 같고 10보다 작거나 같은 숫자를 입력하고 Post 단추를 클릭합니다.

  5. "About to commit the transaction" 메시지가 표시됩니다. 확인을 클릭합니다. Current Value 필드가 사용자가 입력한 값으로 업데이트됩니다.

  6. New Value 필드에 0보다 작거나 10보다 큰 숫자를 입력한 다음 Post 단추를 클릭합니다.

  7. "About to abort the transaction because the new value ([yourvalue]) is either <0 or >10." 메시지가 표시됩니다. 확인을 클릭합니다. Current Value 필드가 변경되지 않음을 알 수 있습니다. 이는 트랜잭션 동안 현재 값이 바뀌었지만 트랜잭션이 롤백될 때 값이 다시 원래 값으로 되돌려졌기 때문입니다.

  8. 이번에는 같은 데이터를 사용하여 AutoPost 단추를 테스트합니다. 샘플 응용 프로그램에서 트랜잭션을 중단할 때 COMException을 throw하는 것을 알 수 있습니다. 이 예외는 AutoComplete에게 중단하도록 통보하기 위한 것입니다.

샘플을 제거하려면

  1. 명령 프롬프트 창에서 msbuild.exe를 실행한 디렉터리 또는 .sln 파일을 연 디렉터리로 이동합니다.

  2. 선택한 프로그래밍 언어에 따라 msbuild.exe TransactionsVB.vbproj /t:Clean 또는 msbuild.exe TransactionsCS.csproj/t:Clean을 입력합니다. 이렇게 하면 COM+ 카탈로그 및 전역 어셈블리 캐시에서 샘플 파일을 제거하기 위해 regsvcs.exe 및 gacutil.exe가 /u 스위치를 사용하여 호출됩니다.

  3. 명령줄에 osql -E -S (local)\SQLExpress -i TxDBClean.sql을 입력하거나 SQL Server Query Analyzer 창을 열고 TxDBClean.sql 파일을 로드한 다음 실행을 선택합니다. 이렇게 하면 SQL Server에서 TXDemoDB 데이터베이스가 제거됩니다.

요구 사항

.NET Framework 버전: 2.0, 1.1, 1.0

설명

트랜잭션은 함께 묶여 있는 작업 집합으로서, 이러한 작업은 모두 수행되거나 전혀 수행되지 않아야 합니다. 트랜잭션에 포함된 작업 중 하나라도 실패하면, 불일치가 발생하지 않도록 이전에 수행된 모든 작업이 롤백되어야 합니다.

샘플의 이진 생성 및 등록 단계에 대한 자세한 내용은 소스 코드 파일의 주석을 참조하십시오. 구성 요소 서비스 관리 도구에서 C# 구성 요소는 TxDemoServerCS.TxObject로 표시되며 VB 버전은 TxDemoServerVB.TxObject로 표시됩니다.

참고 항목

개념

로컬 트랜잭션(ADO.NET)

참조

AutoCompleteAttribute

ContextUtil

ServicedComponent

System.ComponentModel

System.Data

System.Data.SqlClient

System.Drawing

System.EnterpriseServices

System.Reflection

System.Runtime.InteropServices

System.Runtime.Serialization

System.Windows.Forms

TransactionAttribute

TransactionOption

WebMethodAttribute