트랜잭션 배치 속성 구성
EJB 또는 웹 모듈과 연관된 트랜잭션 배치 디스크립터 속성을 구성하여 엔터프라이즈 애플리케이션이 트랜잭션을 사용하게 할 수 있습니다.
시작하기 전에
이 태스크 정보
어셈블리 도구를 사용하여 애플리케이션의 배치 속성을 구성할 수 있습니다.
Rational® Application Developer 또는 이에 상응하는 도구를 사용하여 애플리케이션의 배치 속성을 구성할 수 있습니다.
Rational Application Developer를 사용하여 애플리케이션 컴포넌트(엔터프라이즈 Bean 또는 서블릿)의 배치 디스크립터에서 트랜잭션 속성을 설정하려면 다음 단계를 완료하십시오.
프로시저
- 어셈블리 도구를 시작하십시오. 자세한 정보는 Rational Application Developer 정보를 참조하십시오.
- 애플리케이션 EAR 파일을 작성하거나 편집합니다. 예를
들어, 기존 애플리케이션의 속성을 변경하려면 가져오기 마법사를
사용하여 EAR 파일을 어셈블리 도구로 가져오십시오. 가져오기
마법사를 시작하려면 다음을 수행하십시오.
- 파일 > 가져오기 > EAR 파일을 클릭하십시오.
- 다음을 클릭한 다음 EAR 파일을 선택하십시오.
- 완료를 클릭하십시오.
- Java
EE 퍼스펙티브의 프로젝트 탐색기 보기에서
컴포넌트 인스턴스를 마우스 오른쪽 단추로 클릭한 다음 연결
프로그램 > 배치 디스크립터 편집기를 클릭하십시오. 컴포넌트 인스턴스를 찾으려면
해당 단계를 사용하십시오.
- 세션 Bean의 경우 EJB 모듈 > ejb_module_instance > 배치 디스크립터 > 세션 Bean을 펼친 다음 Bean 인스턴스를 선택하십시오.
- 서블릿의 경우 웹 모듈 > web_application > 배치 디스크립터 > web component를 펼친 다음 서블릿 인스턴스를 선택하십시오.
- 옵션: 세션
Bean의 경우에만, 컨테이너가 메소드를 호출하는 트랜잭션
방식을 정의하는 "트랜잭션 유형" 속성을
설정하십시오. 다음과 같이 이 속성을
컨테이너 또는 Bean으로 설정할 수 있습니다.
- 컨테이너 관리 트랜잭션을 사용하려면 속성을 컨테이너로 설정하십시오.
- Bean 관리 트랜잭션을 사용하려면 속성을 Bean으로 설정하십시오.
- 배치 디스크립터 노트북에서 Bean 탭을 선택하십시오.
선택적으로 WebSphere 확장기능 섹션에서 로컬 트랜잭션
속성을 구성하십시오. 로컬 트랜잭션 포함 관리를
사용하려면 다음 컴포넌트 확장기능 속성을 구성하십시오.
이러한 속성은 컴포넌트의 경우 글로벌 트랜잭션이 없을
때마다 컨테이너가 설정하는 LTC(Local Transaction
Containment) 환경의 동작을 구성합니다.
- 경계
- 이 설정은 모든 포함된 자원 관리자 로컬 트랜잭션(RMLT)을 완료해야 하는 포함 경계를 지정합니다. 가능한 값은 BeanMethod 또는 ActivitySession입니다.
- BeanMethod: 기본값입니다. 이 옵션을 선택하면, RMLT는 RMLT가 시작된 동일한 Bean 메소드 내에서 해결되어야 합니다.
- [EJB 컴포넌트만 해당] ActivitySession: RMLT는
시작된 ActivitySession의 범위 내 또는
ActivitySession 컨텍스트가 없는 경우
시작된 동일한 Bean 메소드 내에서 해석되어야
합니다. 참고: ActivitySession 옵션은 웹 컨테이너에서 지원되지 않습니다.
- 분석기
- 이 설정은 RMLT 시작 및 종료의 책임을 지는 컴포넌트를 지정합니다. 가능한 값은 Application 또는 ContainerAtBoundary입니다.
- Application: 기본값입니다. 애플리케이션이 RMLT를 시작하고 로컬 트랜잭션 포함(LTC) 경계 내에 완료하는 책임을 집니다. LTC 경계 끝까지 완료되지 않은 RMLT는 Unresolved action 속성 값에 따라 컨테이너에 의해 정리됩니다.
- ContainerAtBoundary: 컨테이너는 RMLT를 시작하고 LTC 경계 내에서 완료해야 합니다. 컨테이너는 연결이 처음에 LTC 범위 내에서 사용될 때 RMLT를 시작하고 LTC 범위 끝에 자동으로 RMLT를 완료합니다. 경계가 ActivitySession으로 설정되면, RMLT는 ActivitySession 자원으로 참여하며 ActivitySession에 의해 완료하도록 지시받습니다. Boundary가 BeanMethod로 설정되면, RMLT는 컨테이너에 의해 메소드 종료 시 커미트됩니다.
- 미해결 조치
- 해당 트랜잭션이 LTC 경계 범위 끝에 해결되지 않고 Resolver가 Application으로 설정된 경우 컨테이너가 RMLT에 요청하는 지시를 지정합니다. 가능한 값은 롤백 또는 커미트입니다.
- Rollback: 기본값입니다. LTC 경계 범위의 끝에서, 컨테이너는 모든 미해결 RMLT가 롤백되도록 지시합니다.
- 커미트: LTC 경계 범위 끝에서 컨테이너가 모든 미해결 RMLT가 커미트하도록 지시합니다. 컨테이너는 처리되지 않은 예외가 없는 경우에만 RMLT가 커미트되도록 지시합니다. 로컬 트랜잭션 컨텍스트 아래에서 실행하는 애플리케이션 메소드가 예외로 종료되면 컨테이너가 미분석 RMLT를 롤백합니다. 이는 글로벌 트랜잭션의 경우와 동일한 작동입니다.
- 공유 가능
- 컴포넌트가 LTC를
공유할 수 있는지 여부를 지정합니다. 새 LTC는 공유 가능한
LTC가 아직 존재하지 않는 경우에만 시작됩니다. 공유 가능
LTC를 사용하는 애플리케이션은 공유 가능 LTC에서 사용되는 자원
관리자 연결을 명시적으로 커미트 또는 롤백할 수 없습니다. 그러나
autoCommit 기능이 있는 연결은 사용할 수 있습니다.
애플리케이션이 분석기 속성이 Application으로 설정되는 LTC에서 자동 커미트 해제 작업을 시작하고 공유 가능 속성이 true로 설정되면 런타임에 예외가 발행됩니다. 예를 들어, JDBC 연결에서 자동 커미트 해제 작업은 애플리케이션이 setAutoCommit(false) 메소드를 사용하여 연결에서 자동 커미트 옵션을 해제한 후 수행하는 작업입니다. BMT(Bean Managed Transaction)를 사용하는 엔터프라이즈 Bean은 LTC 구성에 설정된 공유 가능 속성으로 어셈블될 수 없습니다.
LTC를 공유하는 모든 컴포넌트에 Shareable 속성을 지정해야 합니다. 공유 가능 LTC를 작성하는 컴포넌트는 공유 LTC의 다른 특성(예를 들어, 분석기 속성의 값)을 결정합니다.
- WebSphere
확장기능 섹션에서 글로벌 트랜잭션 속성을
구성하십시오. 이러한 속성은 컴포넌트의 경우 글로벌
트랜잭션이 존재할 때 동작을 구성합니다.
- 컴포넌트 트랜잭션 제한시간
- 컨테이너 관리 트랜잭션만 사용하는 엔터프라이즈 Bean의 경우에는 엔터프라이즈 Bean을 대신하여 컨테이너가 시작하는 새 글로벌 트랜잭션에 대한 트랜잭션 제한시간(초)을 지정합니다. 컴포넌트 대신 시작되는 트랜잭션의 경우, 컴포넌트 트랜잭션 제한시간 설정이 애플리케이션 서버에 대해 트랜잭션 서비스 설정에 구성되는 기본 총 트랜잭션 수명 제한시간을 대체합니다.
다음 속성은 JAX-RPC 애플리케이션에 대한 WS-AtomicTransaction 및 WS-BusinessActivity 지원만 사용 가능하게 합니다.
- 웹 서비스 원자적 트랜잭션 사용
- 엔터프라이즈 Bean의 경우에만, 이 속성이 선택된 상태에서 애플리케이션 컴포넌트가 웹 서비스 요청을 수행하면 애플리케이션 서버에서의 WS-AT(Web Services Atomic Transaction) 지원에 설명된 WebSphere WS-AtomicTransaction 지원에 따라 웹 서비스 요청과 함께 트랜잭션 컨텍스트가 전파됩니다. 이 속성을 선택하지 않으면 웹 서비스 요청이 트랜잭션 컨텍스트를 전달하지 않습니다.
- 요청 시 웹 서비스 원자 트랜잭션 전송
- 웹 컴포넌트의 경우에만, 이 속성이 선택된 상태에서 애플리케이션 컴포넌트가 웹 서비스 요청을 수행하면 애플리케이션 서버에서의 WS-AT(Web Services Atomic Transaction) 지원에 설명된 WebSphere WS-AtomicTransaction 지원에 따라 웹 서비스 요청과 함께 트랜잭션 컨텍스트가 전파됩니다. 이 속성을 선택하지 않으면 웹 서비스 요청이 트랜잭션 컨텍스트를 전달하지 않습니다.
- 수신 요청에 대한 WS-AT(Web Services Atomic Transaction) 사용 실행
- 웹 컴포넌트의 경우에만, 이 속성을 선택하면 웹 애플리케이션 컴포넌트가 수신된 WS-AtomicTransaction 컨텍스트에서 실행되도록 준비됩니다. 웹 애플리케이션 컴포넌트는 지원 컨테이너 트랜잭션 유형과 함께 배치된 엔터프라이즈 Bean과 유사한 방식으로 수신된 WS-AtomicTransaction 컨텍스트에서 실행될 수 있습니다. 이 속성을 선택하지 않는 경우, 웹 애플리케이션 컴포넌트의 컨테이너는 지원되지 않음 컨테이너 트랜잭션 유형으로 배치된 엔터프라이즈 Bean에 대한 EJB 컨테이너 동작과 유사한 방식으로 수신된 트랜잭션 컨텍스트를 일시중단합니다.
애플리케이션이 JAX-WS를 사용하는 경우, 정책 세트를 작성하고 정책 세트에 WS-Transaction 정책 유형을 추가한 후 서비스 또는 클라이언트에 정책 세트를 첨부시켜 WS-AtomicTransaction 또는 WS-BusinessActivity에 대한 지원을 사용하도록 설정하십시오.
클라이언트에 첨부된 정책 세트에 WS-Transaction 정책 유형이 포함되는 경우, 활성 글로벌 트랜잭션 컨텍스트는 이 주제 앞 부분에서 설명한 요청 시 배치 디스크립터 WS-AT(Web Services Atomic Transaction) 사용 및 WS-AT(Web Services Atomic Transaction) 전송과 유사한 방식으로 웹 서비스 요청과 함께 전파됩니다. 또한 WS-Transaction 정책 유형이 포함된 경우에는 이 주제 앞 부분에서 설명한 수신 요청 시 WS-AT(Web Services Atomic Transaction) 사용 실행 배치 디스크립터와 유사한 방식으로 수신된 WS-AtomicTransaction 컨텍스트에서 서비스가 실행됩니다.
- EJB
컴포넌트와 관련된 컨테이너 관리 트랜잭션의 경우에는
엔터프라이즈 Bean의 비즈니스 메소드로 메소드 호출을
위임할 때 컨테이너가 트랜잭션 경계를 관리하는 방식을
구성합니다.
- 배치 디스크립터 노트북에서 어셈블리 탭을 선택하십시오. 컨테이너 트랜잭션 섹션에는 엔터프라이즈 Bean의 메소드 테이블이 표시됩니다.
- 엔터프라이즈 Bean의 각 메소드마다 컨테이너 트랜잭션 유형을 적절한 값으로 설정하십시오. 컨테이너 트랜잭션 유형의 기본값은 Required이며 메소드 호출이 트랜잭션 컨텍스트에서 발생함을 의미합니다. 이 트랜잭션은 (로컬 또는 원격) 클라이언트 컴포넌트 트랜잭션이거나, 클라이언트 컴포넌트가 트랜잭션에서 실행되지 않는 경우 컴포넌트 컨테이너로 시작된 새 트랜잭션입니다.
애플리케이션이 ActivitySessions를 사용하는 경우, 메소드 호출을 위임할 때 컨테이너가 트랜잭션 경계를 관리하는 방식은 이 태스크에서 설정하는 컨테이너 트랜잭션 유형과 ActivitySession 유형 속성(EJB 모듈 ActivitySession 배치 속성 설정의 설명 참조)에 따라 다릅니다. 이 두 특성 간의 관계에 대한 세부사항은 ActivitySession 및 트랜잭션 컨테이너 정책 조합의 내용을 참조하십시오.
- SOAP/JMS
바인딩을 사용하고 WS-AtomicTransactions에 참여하는
웹 서비스 애플리케이션의 경우, 이전 단계에서 설명한 대로
메시지 구동 Bean "JMS 라우터 MDB"의 컨테이너 트랜잭션 유형을
값 NotSupported로 설정하십시오. SOAP/JMS
바인딩을 사용하는 웹 서비스 애플리케이션에는 어셈블된 EAR에서
라우터 메시지 구동 Bean "JMS 라우터 MDB"가 포함됩니다.
웹 서비스가 SOAP/JMS 바인딩을 사용하고 WS-AtomicTransactions에
참여하는 경우(애플리케이션 서버에서의 WS-AT(Web Services Atomic Transaction) 지원의
설명 참조) "JMS 라우터 MDB"의 컨테이너 트랜잭션 유형을
값 NotSupported로 설정하십시오.
SOAP/HTTP 바인딩을 사용하고 WS-AtomicTransactions에 참여하는 웹 서비스 애플리케이션의 경우에는 이 작업을 수행하지 않아도 됩니다.
- 클라이언트 애플리케이션 컴포넌트의 경우에만 필요에 따라 클라이언트의 트랜잭션 구분에 대한 지원을 사용하도록 설정하십시오. 배치 디스크립터 노트북에서 JTA 구분 허용 선택란을 선택하십시오. 이 옵션은 클라이언트 컨테이너가 JTA(Java™ Transaction API) UserTransaction 인터페이스를 클라이언트 컴포넌트에 대한 java:comp/UserTransaction의 JNDI로 바인드하도록 지시합니다. 클라이언트 컨테이너에는 트랜잭션 지원에 대한 제한조건이 없습니다(트랜잭션에 대한 클라이언트 지원의 설명 참조).
- 배치 디스크립터에 사용자의 변경사항을 저장하십시오.
- 배치 디스크립터 편집기를 닫으십시오.
- 프롬프트가 표시되면 예를 클릭하여 배치 디스크립터에 대한 변경사항을 저장하십시오.
- 아카이브 파일을 확인하십시오. Rational Application Developer를 사용한 파일 확인에 대한 자세한 정보는 Rational Application Developer 정보를 참조하십시오.
- 프로젝트 메뉴에서 배치를 클릭하여 EJB 배치 코드를 생성하십시오.
- 옵션: 애플리케이션 서버 설치에서 완료된 모듈을
테스트하십시오. 모듈을 마우스 오른쪽 단추로 클릭하고
서버에서 실행을 클릭한 다음 결과 마법사의 지시사항을
따르십시오. 중요사항: 서버에서 실행 옵션은 단위 테스트용으로만 사용하십시오. 어셈블리 도구는 애플리케이션 서버 설치를 제어하므로 애플리케이션이 원격으로 공개되는 경우 어셈블리 도구가 해당 서버의 서버 구성 파일을 겹쳐씁니다. 프로덕션 서버에서 서버에서 실행 옵션을 사용하지 마십시오.
다음에 수행할 작업


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tjta_entra2
파일 이름:tjta_entra2.html