트랜잭션 자원의 커미트 우선순위

2단계 커미트 처리 중 트랜잭션 자원이 처리되는 순서를 지정할 수 있습니다.

2단계 커미트 처리 중 트랜잭션 자원이 처리되는 순서를 지정하는 경우 두 가지 주요 장점이 있습니다.
  • 1단계 커미트 최적화가 보다 자주 발생합니다.
  • 트랜잭션 고립으로 인한 잠재적 문제가 해결됩니다.

2단계 커미트 처리 중 트랜잭션 자원이 처리되는 순서를 제어하려면 자원 참조에 커미트 우선순위 속성을 설정하여 자원의 커미트 우선순위를 지정합니다. 커미트 우선순위가 높을수록 자원이 더 빨리 처리됩니다. 예를 들어, 자원에 10의 커미트 우선순위가 있으면 커미트 우선순위가 1인 자원보다 먼저 처리됩니다. 커미트 우선순위 값은 int 유형이고 -2147483648과 2147483647 사이일 수 있습니다.

커미트 우선순위 값을 지정하지 않으면 기본값인 0이 자원에 지정되어 런타임 시 자원을 정렬할 때 사용됩니다. 기본 우선순위를 포함하여 우선순위가 동일한 둘 이상의 자원이 구성되면 이 자원은 서로 순서가 지정되지 않은 채로 처리됩니다.

Rational® Application Developer 도구를 사용하여 자원 참조에 커미트 우선순위 속성을 지정할 수 있습니다. 자세한 정보는 Rational Application Developer Information Center를 참조하십시오. 애플리케이션 컴포넌트에는 배치 디스크립터가 있어야 하며 어노테이션이 사용된 경우에는 이 속성을 지정할 수 없습니다.

1단계 커미트 최적화

2단계 커미트의 트랜잭션에서, 트랜잭션에 있는 마지막 자원을 제외한 모든 자원이 읽기 전용으로 채택되면(이 자원이 트랜잭션의 출력에 관심이 없음을 나타냄) 1단계 커미트가 발생할 수 있습니다. 이는 트랜잭션 서비스가 2단계 커미트를 롤백하는 데 필요한 자원 및 트랜잭션 정보를 저장할 필요가 없음을 의미하며, 이로 인해 성능이 개선됩니다.

2단계 커미트 처리 중 트랜잭션 자원이 처리되는 순서를 제어하여 맨 처음 읽기 전용으로 채택될 가능성이 있는 자원을 처리할 수 있습니다. 따라서 1단계 커미트가 발생할 수 있는 기회를 늘릴 수 있습니다.

일반적으로 주어진 트랜잭션 자원에 대해서, 런타임 시 수행되는 작업을 알고 있으므로 트랜잭션의 자원이 처리되는 순서를 제어할 수 있으면 1단계 커미트 최적화가 발생할 가능성을 늘릴 수 있습니다.
[z/OS]config: 활성화 스펙이 포함된 MQ 자원 어댑터를 사용하는 경우 애플리케이션 서버는 RRS 트랜잭션을 최적화하여 1단계 커미트를 사용하도록 할 수 없습니다. 이 기능이 필요한 경우 리스너 포트를 사용하십시오.

트랜잭션 분리

자원이 글로벌 트랜잭션에 관련된 경우에는 트랜잭션이 커미트될 때까지(즉, 자원이 분리될 때까지) 트랜잭션의 일부로 수행된 업데이트가 트랜잭션 외부에 표시되지 않습니다. 이 분리로 인해 커미트된 후 업데이트에 대해 작용하는 기타 애플리케이션 컴포넌트에 대한 문제점이 발생할 수 있습니다. 예를 들어, 업데이트는 순서 및 시간에 의존하기 때문에 추가 처리에 실패하거나 간헐적으로 실패할 수 있습니다. 이 문제는 WebSphere® Application Server의 서비스 통합 버스 메시징 작업에는 발생하지 않지만 WebSphere MQ와 같은 기타 메시징 제공자의 경우에는 문제가 될 수 있습니다.

트랜잭션 자원이 커미트되는 순서를 지정하면 특히 메시징 제공자와 서비스 통합 버스뿐만 아니라 모든 트랜잭션 시스템에서 분리로 야기된 문제점이 해결됩니다.

다음 예제는 트랜잭션 자원이 커미트되는 순서를 지정할 수 없을 때 문제점이 발생할 수 있는 방식에 대해 설명합니다. 애플리케이션은 데이터베이스 테이블의 행을 업데이트한 후 추가 행 처리를 트리거하는 JMS 메시지를 전송합니다. 이 두 조치 모두 동일한 글로벌 트랜잭션에서 수행되므로 각각의 자원은 커미트될 때까지 분리됩니다. 행에 대한 업데이트가 메시지가 전송되기 전에 커미트되면 메시지로 트리거된 처리가 업데이트된 행에 액세스하여 이를 처리할 수 있습니다. 메시지를 전송할 조치가 먼저 커미트된 경우 이 조치는 데이터베이스가 행에 대한 업데이트를 커미트하기 전에 추가 행 처리를 트리거할 수 있습니다. 이 경우에는 업데이트된 행이 여전히 분리되고 표시되지 않으므로 추가 행 처리에 실패합니다.

이 문제는 정렬 및 타이밍과 관련이 있기 때문에 보다 복잡할 수 있습니다. 데이터베이스가 먼저 커미트되면 문제가 발생하지 않습니다. 메시지를 전송할 조치가 먼저 커미트된 경우 문제가 발생할 수 있지만, 메시지가 추가 행 처리를 트리거하기 전에 데이터베이스 작업이 커미트되는지 여부에 따라 다릅니다. 따라서 문제가 간헐적으로 발생할 수 있으며 이로 인해 원인을 식별하기가 더 어렵습니다.

WebSphere Application Server의 이전 버전에 대한 제한사항

자원의 커미트 우선순위를 지정하면 즉, 기본값 0 이외의 값을 지정하면 복구 가능 단위 섹션의 상대 로그에 커미트 우선순위가 추가됩니다. 로그 파일의 이 섹션은 WebSphere Application Server 버전 7.0 이상에서 인식되지만 이전 버전의 애플리케이션 서버에서는 인식되지 않습니다.

따라서 애플리케이션이 커미트 우선순위 속성을 사용하면 클러스터의 하나 이상의 서버가 WebSphere Application Server 버전 7.0. 이전 버전인 혼합 버전 클러스터에 애플리케이션을 설치할 수 없습니다.

또한 커미트 우선순위 속성을 사용하는 애플리케이션이 클러스터에 설치되면 서버가 WebSphere Application Server 버전 7.0 이전 버전인 경우 이 클러스터에 서버를 계속해서 추가할 수 없습니다.

제품의 다른 버전에 대한 일반 정보는 "마이그레이션, 공존 및 상호 운용성 개요" 주제를 참조하십시오.


주제 유형을 표시하는 아이콘 개념 주제



시간소인 아이콘 마지막 업데이트 날짜: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cjta_rescom
파일 이름:cjta_rescom.html