다음을 통해 공유


트랜잭션 처리 조건

KTM 사용을 시작하기 전에 트랜잭션, 리소스 관리자, 트랜잭션 클라이언트, 트랜잭션 관리자, 로그 스트림, 인리스트먼트트랜잭션처리 시스템의 정의를 알아야 합니다.

트랜잭션
트랜잭션은 데이터 작업의 컬렉션입니다. 트랜잭션이 성공하려면 모든 작업이 성공해야 합니다. 모든 작업이 성공하면 트랜잭션을 커밋 할 수 있습니다(즉, 결과를 영구 및 공개로 만들 수 있음). 작업이 실패하는 경우 트랜잭션을 롤백해야 합니다( 즉, 트랜잭션 작업이 시작되기 전에 데이터가 있던 것과 동일한 상태에 있도록 모든 변경 내용을 제거해야 합니다).

트랜잭션의 작업은 ACID(원자성, 일관성, 격리내구성 )입니다.

  • 그들은 커밋되거나 전체적으로 롤백되어야하기 때문에 원자성입니다.

  • 작업이 커밋되거나 롤백되는지 여부에 관계없이 항상 정확한 결과를 생성하기 때문에 일관성이 있습니다.

  • 트랜잭션의 작업이 커밋되거나 롤백될 때까지 각 트랜잭션의 결과가 다른 트랜잭션에 표시되지 않기 때문에 격리됩니다.

  • 트랜잭션의 작업이 커밋되거나 롤백된 후 작업 결과가 영구적이므로 지속성이 있습니다.

트랜잭션의 예로는 ATM(자동 텔러 머신)을 사용하여 계좌에서 저축 계좌로 송금할 때 수행해야 하는 작업 집합이 있습니다. 수표 계좌의 이체 및 저축 계좌에 대한 크레딧은 단일 원자성 작업으로 표시되어야 합니다.

트랜잭션의 일부인 작업을 트랜잭션 작업이라고도 합니다.

리소스 관리자
리소스 관리자는 트랜잭션된 작업으로 업데이트할 수 있는 데이터 리소스를 관리하는 소프트웨어 구성 요소입니다. 예를 들어 데이터베이스 시스템을 디자인하는 경우 데이터베이스의 데이터를 저장하고 검색하는 리소스 관리자를 제공할 수 있습니다. 간단한 TPS( 트랜잭션 처리 시스템 )에는 하나의 리소스 관리자만 있을 수 있습니다.

일반적으로 리소스 관리자는 트랜잭션 클라이언트가 리소스 관리자의 데이터에 액세스하기 위해 호출할 수 있는 공용 인터페이스도 제공합니다. 예를 들어 데이터베이스의 리소스 관리자는 클라이언트가 데이터베이스에서 읽고 쓰기 위해 호출할 수 있는 함수 집합을 제공할 수 있습니다.

더 복잡한 TPS에는 여러 리소스 관리자가 있을 수 있으며, 각 관리자는 시스템의 트랜잭션에 참여하는 동안 별도의 데이터베이스 또는 기타 리소스를 관리합니다.

리소스 관리자에 대한 자세한 내용은 Resource Manager 만들기를 참조하세요.

경우에 따라 한 리소스 관리자가 다른 리소스 관리자 보다 우수 하며 커밋 작업을 시작할 수 있습니다. KTM에서는 이러한 리소스 관리자를 우수한 트랜잭션 관리자라고 합니다.

트랜잭션 클라이언트
트랜잭션 클라이언트는 일반적으로 리소스 관리자가 내보내는 함수를 호출하여 리소스 관리자가 지원하는 데이터베이스에 액세스하는 소프트웨어 구성 요소입니다. 클라이언트는 트랜잭션을 만들고, 리소스 관리자가 지원하는 작업 집합을 수행한 다음, 트랜잭션을 커밋하거나 롤백해야 한다고 KTM(트랜잭션 관리자)에 알릴 책임이 있습니다.

트랜잭션 클라이언트에 대한 자세한 내용은 트랜잭션 클라이언트 만들기를 참조하세요.

트랜잭션 관리자
KTM과 같은 트랜잭션 관리자는 트랜잭션 클라이언트와 리소스 관리자가 서로 통신할 수 있는 인프라를 제공합니다. 또한 각 트랜잭션의 상태를 추적합니다(클라이언트 및 리소스 관리자가 처리하는 데이터는 아님).

트랜잭션 관리자는 시스템 충돌 후 복구 작업을 조정할 수도 있습니다.

트랜잭션 관리자는 트랜잭션을 구성하는 데이터 또는 작업에 대한 지식이 없습니다. 데이터 및 작업은 클라이언트 및 리소스 관리자에 의해 제어됩니다.

KTM은 트랜잭션 클라이언트가 호출할 수 있는 함수를 제공합니다. 이러한 함수를 사용하면 클라이언트가 트랜잭션을 만들고, 커밋하고, 롤백할 수 있습니다.

KTM은 리소스 관리자가 호출할 수 있는 함수도 제공합니다. 이러한 기능을 사용하면 리소스 관리자가 트랜잭션에 대한 알림을 받을 수 있도록 트랜잭션에 등록할 수 있습니다. 리소스 관리자가 트랜잭션에 참여하면 트랜잭션 클라이언트가 트랜잭션을 커밋하거나 롤백할 준비가 되거나 복구 작업이 발생할 때 알림을 받을 수 있습니다.

로그 스트림
로그 스트림은 트랜잭션에 발생한 이벤트의 기록된 기록입니다. KTM은 CLFS( Common Log File System )를 사용하여 로그 스트림을 유지 관리합니다. KTM은 필요한 경우 롤백 및 복구 작업을 지원할 수 있도록 각 트랜잭션에 대한 상태 변경 내용을 기록합니다.

리소스 관리자는 로그 스트림을 사용하여 데이터 및 작업을 기록해야 합니다.

롤백 작업을 수행하려면 KTM 및 리소스 관리자가 트랜잭션 및 모든 데이터를 초기 상태로 복원해야 합니다. KTM 및 리소스 관리자는 롤백 작업 중에 가져올 수 있도록 로그 스트림에서 각 트랜잭션의 초기 상태를 기록합니다.

복구 작업은 시스템 충돌 후 발생합니다. 이후 운영 체제가 다시 시작되면 KTM 및 리소스 관리자는 로그 스트림 콘텐츠를 사용하여 트랜잭션 상태를 크래시 이전 상태로 다시 빌드할 수 있습니다.

KTM의 로그 스트림에 대한 자세한 내용은 KTM 에서 로그 스트림 사용을 참조하세요.

참여
인리스트먼트는 리소스 관리자와 트랜잭션 간의 연결입니다. KTM은 리소스 관리자가 인리스트먼트를 만들고 관리하기 위해 호출하는 함수 집합을 제공합니다. 리소스 관리자가 인리스트먼트를 만든 후 KTM은 트랜잭션 상태가 변경되면 리소스 관리자에게 알림을 보냅니다.

트랜잭션 처리 시스템
TPS( 트랜잭션 처리 시스템 )는 트랜잭션 관리자, 하나 이상의 리소스 관리자, 하나 이상의 로그 스트림 및 리소스 관리자의 리소스에 액세스하는 하나 이상의 트랜잭션 클라이언트의 컬렉션입니다.