프로그래밍/C#

[C#] Transaction

Victory_HA 2023. 3. 29. 10:38

Transaction

  • Transaction은 데이터베이스 작업 중에 실행되는 일련의 작업을 의미합니다. 일반적으로 트랜잭션은 "모두 실행" 또는 "모두 취소"와 같은 두 가지 결과 중 하나를 가져옵니다.
  • 이를 통해 데이터베이스 작업 중간에 문제가 발생하면 이전 상태로 롤백할 수 있습니다.

TransactionScope 클래스

  • C#에서 TransactionScope 클래스 사용 예시를 확인해봅시다.

  • TransactionScope 클래스는 .NET 프레임워크에서 제공하는 트랜잭션 관리 기능을 제공합니다.

  • 이 클래스는 여러 데이터 소스를 사용하는 트랜잭션 처리를 위해 사용할 수 있습니다.

  • TransactionScope 클래스를 사용하면 여러 데이터 소스에서 실행되는 작업을 하나의 트랜잭션으로 묶을 수 있습니다. 이 클래스는 다른 데이터 소스에서도 작동하며, 예를 들어 파일 시스템, 메시지 큐, 이메일 서버 등 다른 소스와도 통합할 수 있습니다.

  • 아래는 TransactionScope 클래스를 사용하여 트랜잭션을 관리하는 간단한 예시입니다.

using (TransactionScope scope = new TransactionScope())
{
    try
    {
        // 데이터베이스 작업 실행
        // 파일 시스템 작업 실행
        // 메시지 큐 작업 실행
        scope.Complete(); // 작업이 성공적으로 실행되었음을 표시
    }
    catch (Exception ex)
    {
        // 예외 처리
    }
}
  • 위 코드에서 TransactionScope 클래스의 인스턴스를 생성하고,
  • 이 인스턴스를 사용하여 데이터베이스, 파일 시스템, 메시지 큐 등 여러 데이터 소스에서 실행되는 작업을 묶어서 하나의 트랜잭션으로 처리합니다.
  • 이때, Complete() 메서드를 호출하여 작업이 성공적으로 실행되었음을 표시합니다.
  • 만약 예외가 발생하면 트랜잭션은 자동으로 롤백됩니다.
  • TransactionScope 클래스를 사용하면 여러 데이터 소스에서 실행되는 작업을 트랜잭션으로 묶어서 관리할 수 있으므로, 데이터 일관성과 안정성을 보장할 수 있습니다.