컴포넌트 관리 트랜잭션 사용

세션 Bean, 서블릿 또는 애플리케이션 클라이언트 컴포넌트가 컴포넌트 관리 트랜잭션을 사용할 수 있게 설정하여 컨테이너가 트랜잭션을 관리하도록 허용하는 대신 직접 자체 트랜잭션을 관리할 수 있습니다.

이 태스크 정보

참고: 엔티티 Bean은 트랜잭션을 관리할 수 없습니다 (따라서 Bean 관리 트랜잭션을 사용할 수 없음).

세션 Bean, 서블릿 또는 애플리케이션 클라이언트 컴포넌트가 컴포넌트 관리 트랜잭션을 사용할 수 있게 하려면 다음 단계를 완료하십시오.

프로시저

  1. 세션 Bean의 경우, 트랜잭션 배치 속성 구성에 설명된 대로 컴포넌트 배치 디스크립터에서 트랜잭션 유형 속성을 Bean으로 설정하십시오.
  2. 애플리케이션 클라이언트 컴포넌트의 경우, 트랜잭션 배치 속성 구성에 설명된 대로 컴포넌트 배치 디스크립터에서 JTA 경계 설정 허용 속성을 설정하여 트랜잭션 경계 설정에 대한 지원을 사용 가능하게 하십시오.
  3. 컴포넌트 코드를 작성하여 동적으로 트랜잭션을 관리하십시오.

    Stateful 세션 Bean의 경우 제공된 메소드를 완료하기 전에 이 메소드로 시작된 트랜잭션을 완료(즉, 커미트 또는 롤백)할 필요가 없습니다. 트랜잭션은 나중에 예를 들면, 동일한 메소드에 대한 후속 호출이나 심지어 다른 메소드 내에서 완료할 수 있습니다. 그러나, 동일한 메소드 호출 내에서 트랜잭션이 시작되고 완료되도록 애플리케이션을 구성하는 것이 일반적으로 선호되는데, 이는 애플리케이션 디버깅 및 유지보수를 단순화시키기 때문입니다.

    다음 코드 추출은 트랜잭션 컨텍스트를 캡슐화하는 오브젝트를 확보하는 데 필요한 표준 코드를 표시하고 다음 단계를 포함합니다.
    • java:comp/UserTransaction에서 검색을 호출하여 javax.transaction.UserTransaction 오브젝트를 작성하십시오.
    • 필요한 경우 begincommit와 같은 트랜잭션 메소드를 사용하여 트랜잭션 경계를 지정하는 데 UserTransaction 오브젝트를 사용하십시오. 애플리케이션 컴포넌트가 트랜잭션을 시작할 경우, commit 메소드 또는 rollback 메소드를 호출하여 해당 트랜잭션을 반드시 완료해야 합니다.
    . ..
    import javax.transaction.*;
    import javax.naming.InitialContext;
    import javax.naming.NamingException;
    ...
        public float doSomething(long arg1)throws NamingException {
            InitialContext initCtx = new InitialContext();
            UserTransaction userTran = (UserTransaction)initCtx.lookup(
               "java:comp/UserTransaction");
            ...
            //Use userTran object to call transaction methods
            userTran.begin();
            //Do transactional work
            ...
            userTran.commit();
            ...
        }
        ...
    }

주제 유형을 표시하는 아이콘 태스크 주제



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