TaskNameManager 인터페이스 사용

TaskNameManager 인터페이스를 사용하여, 프로그래밍 방식으로 현재 태스크 이름을 설정할 수 있습니다. 실행의 스레드와 연관된 현재 태스크의 대체 및 원래 태스크로 현재 태스크 재설정 모두가 가능합니다.

이 태스크 정보

5.x 호환 모드 속성이 선택되는 서버에서 실행하고 있는 J2EE 1.3 애플리케이션을 제외하고, 작업 단위가 작업 단위가 시작되던 바로 그 때 작업 단위와만 연관될 수 있기 때문에 이 인터페이스는 컨테이너 관리 트랜잭션 또는 컨테이너 관리 ActivitySessions를 위해 구성되는 엔터프라이즈 JavaBean 내에 사용될 수 없습니다. 그러므로 작업 단위가 시작되기 전에 태스크 이름 설정에 대한 호출이 호출되어야 합니다. 시작된 후 작업 단위의 이름을 지정할 수 없습니다. 컨테이너 관리 작업 단위 실행 중 이 인터페이스를 호출하면 간단히 무시됩니다.

애플리케이션 프로파일링은 런타임 시 조작 중인 태스크의 쿼리를 지원하지 않습니다. 대신 애플리케이션은 애플리케이션 관리 태스크로 선언적으로 구성된 논리적 태스크 이름과 상호작용합니다. 논리적 참조를 사용하면 애플리케이션을 재컴파일하지 않고 실제 이름을 변경할 수 있습니다.

가능한 경우 프로그래밍 방식으로 태스크를 설정하지 마십시오. 선언적 메소드는 재개발 및 재컴파일을 요구하지 않고 쉽게 조정될 수 있는 이식 가능 기능이 됩니다.

참고: 애플리케이션 프로파일 서비스의 콘솔 페이지에서 5.x 호환 모드 속성을 선택하면, J2EE 1.3 애플리케이션에 구성된 태스크는 작업 단위와 연관되지 않아도 되며 임의로 적용되고 대체될 수 있습니다. 조작의 권장 모드가 아니며 데이터베이스 액세스 중 예상된 교착 상태로 이어질 수 있습니다. 애플리케이션 프로파일링 5.x 호환 모드 하에서 실행 중인 애플리케이션과 해당 호환 모드에서 실행되고 있지 않는 애플리케이션 사이에 요청 시 태스크는 통신되지 않습니다.

버전 6.0 클라이언트가 애플리케이션 프로파일링 5.x 호환 모드에서 실행된 애플리케이션과 상호작용하려면, 클라이언트 프로세스에서 appprofileCompatibility 시스템 특성을 true로 설정해야 합니다. launchClient 명령을 호출할 때 -CCDappprofileCompatibility=true 옵션을 지정하여 수행할 수 있습니다.

프로시저

  1. 애플리케이션 관리 태스크를 구성하십시오. 애플리케이션 프로파일링에서는 태스크 이름 참조가 프로그래밍 방식으로 설정될 태스크에 대해 설정되어야 합니다. 런타임 시 실제 태스크 설정이 재코딩 또는 재컴파일을 요구하지 않고 리어셈블리로 조정될 수 있도록 태스크 이름 참조는 간접 레벨을 소개합니다. 태스크 참조로 선언되지 않는 태스크 이름을 설정하려는 시도는 예외를 증가시킵니다. 태스크 이름이 설정될 때 이미 작업 단위가 시작되었다면 기존 작업 단위는 태스크 이름과 연관되지 않습니다. 태스크 이름이 설정된 후 시작된 작업 단위만이 태스크와 연관됩니다.
    다음 주제에서 설명된 대로 애플리케이션 관리 태스크를 구성하십시오. 이 태스크를 완료하려면 어셈블리 도구 Information Center를 참조하십시오.
    • 웹 컴포넌트에 대한 애플리케이션 관리 태스크를 구성합니다.
    • 애플리케이션 클라이언트에 대한 애플리케이션 관리 태스크를 구성합니다.
    • 엔터프라이즈 JavaBean용 애플리케이션 관리 태스크를 구성합니다.
  2. TaskNameManager 인터페이스에서 JNDI(Java Naming and Directory Interface) 검색을 수행합니다.
    InitialContext ic = new InitialContext();
    TaskNameManager tnManager = ic.lookup
    ("java:comp/websphere/AppProfile/TaskNameManager");
    애플리케이션 프로파일링 서비스가 사용 안함으로 설정되면 TaskNameManager 인터페이스는 네임스페이스로 바인드되지 않습니다.
  3. 태스크 이름을 설정하십시오.
    try {
    tnManager.setTaskName("updateAccount");
    }
    catch (IllegalTaskNameException e) {
    // task name reference not configured. Handle error.
    }
    // . . .
    //
    setTaskName() 메소드(이 예에서 "updateAccount")에 전달된 이름은 실제로 1단계에서 구성된 태스크 이름 참조입니다.
  4. UserTransaction 시작
    참고: 5.x 호환 모드 설정으로 J2EE 1.3 애플리케이션을 사용 중인 경우, 3단계에 설정된 태스크 이름 세트는 지금 활성 태스크 이름이며 이 단계를 무시할 수 있습니다.
    J2EE 애플리케이션을 사용 중이고 호환 모드가 설정되지 않았거나 J2EE 1.4 애플리케이션을 사용 중인 경우 타스크 이름이 활성화되도록 트랜잭션을 시작해야 합니다. 태스크 이름만 트랜잭션과 연관될 수 있습니다. 또한, 트랜잭션이 시작되면 트랜잭션과 연관되며, 해당 태스크 이름은 트랜잭션의 수명에 대해 트랜잭션과 연관됩니다. 그러므로 이 시점에서 이전 단계에서 설정된 태스크 이름은 활성 상태가 아닙니다. 다음 코드 스니펫이 설명한대로 UserTransaction을 시작해야 합니다.
    try{
        InitialContext initCtx = new InitialContext();
        userTran = (UserTransaction) initCtx.lookup("java:comp/UserTransaction");
        userTran.begin();
    }
          catch(Exception e){
    }         
    // . . .
    //
    TaskNameManager 인터페이스에서 resetTaskName() 메소드에 주의하십시오. 5.x 호환 모드 속성이 애플리케이션 프로파일 서비스의 콘솔 페이지에서 선택된 서버에서 실행 중인 J2EE 1.3 애플리케이션에서 호출되지 않으면 태스크 이름 재설정은 적용되지 않습니다. 조작의 권장 모드는 아니며 데이터베이스 액세스 중 예상되지 않은 교착 상태로 이어질 수 있습니다. 5.x 호환 모드가 임의의 setTaskName() 메소드 조작의 영향을 실행 취소하고 컴포넌트가 실행을 시작했을 때 태스크 이름이 현재 무엇이든 간에 다시 설정하도록 설정될 때 resetTask()에 대한 호출은 J2EE 1.3 애플리케이션에 의해서만 사용되어야 합니다. setTaskName() 메소드가 호출되지 않으면, resetTaskName() 메소드는 아무도 효과가 없습니다.

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



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