TaskNameManager 인터페이스
TaskNameManager는 애플리케이션 프로파일링 기능에 대한 프로그램 방식의 인터페이스입니다. 아주 드문 경우에 프로그램 내에서 현재 태스크 이름을 설정하는 것이 필요할 수 있으므로 TaskNameManager 인터페이스는 실행 스레드와 연관된 현재 태스크를 사용 가능하게 하고 원래 태스크와 현재 태스크를 재설정하는 것을 사용 가능하게 합니다.
애플리케이션 프로파일링을 사용하면 WebSphere Application Server 런타임 환경에 대한 특정 작업 단위를 식별할 수 있습니다. 런타임은 해당 작업 단위의 정확한 요구사항에 대한 지원을 조정할 수 있습니다. 액세스 인텐트가 현재 애플리케이션 프로파일링 기능을 이용하는 런타임의 유일한 컴포넌트입니다. 예를 들어, 강한 업데이트 잠금이 있는 엔티티 Bean을 로드하도록 하나의 트랜잭션을 구성하고 잠금 없이 동일한 엔티티 Bean을 로드하도록 다른 트랜잭션을 구성할 수 있습니다.
애플리케이션 프로파일링은 태스크와 프로파일 기능을 달성하기 위해 두 가지 개념을 도입합니다.
태스크는 작업 단위로 구성 가능한 이름입니다. 이 경우에 작업 단위는 트랜잭션 또는 ActivitySession 중 하나를 의미합니다.
프로파일은 엔티티 Bean에 구성되는 일련의 액세스 의도 정책에 대한 단순한 태스크의 맵핑입니다. Bean에 대한 호출(파인더 메소드나 CMR(Container Managed Relationship) getter 또는 동적 조회에 의한 호출 중 하나)이 데이터가 백엔드 태스크에서 검색되는 것을 필요로 하면, 요청과 연관된 활동 작업 단위의 태스크가 트랜잭션의 정확한 요구사항을 판별하는 데 사용됩니다. 동일한 Bean이 로딩되고, 태스크 대 프로파일 맵핑과 관련하여 다르게 동작합니다. 각 프로파일은 애플리케이션의 액세스 의도를 재구성할 기회를 개발자에게 제공합니다.
5.x 호환 모드 속성이 선택된 서버에서 실행 중인 J2EE 1.3 애플리케이션을 제외하고는 이 인터페이스는 컨테이너 관리 트랜잭션 또는 컨테이너 관리 ActivitySession에 대해 구성된 Enterprise JavaBean에서는 사용할 수 없는데, 이는 정확히 작업 단위가 시작된 시간에만 작업 단위와 태스크를 연관시킬 수 있기 때문입니다. 따라서 태스크 이름을 설정하기 위한 호출은 작업 단위가 시작되기 전에 먼저 시작되어야 합니다. 시작된 후 작업 단위의 이름을 지정할 수 없습니다. 컨테이너 관리 작업 단위 실행 중 이 인터페이스를 호출하면 간단히 무시됩니다.
TaskNameManager 인터페이스는 다음의 JNDI(Java Naming and Directory Interface) 검색을 사용하여 모든 J2EE 컴포넌트에서 사용 가능합니다.
java:comp/websphere/AppProfile/TaskNameManager
package com.ibm.websphere.appprofile;
/**
* The TaskNameManager is the programmatic interface
* to the application profiling function. Using this interface,
* programmers can set the current task name on the
* thread of execution. The task name must have been
* configured in the deployment descriptors as a task
* reference associated with a task. The set task
* name's scope is the duration of the method
* invocation in the EJB and Web components and for
* the duration of the client process, or until the
* resetTaskName() method is invoked.
*/
public interface TaskNameManager {
/**
* Set the thread's current task name to the specified
* parameter. The task name must have been configured as
* a task reference with a corresponding task or the
* IllegalTaskName exception is thrown.
*/
public void setTaskName(String taskName) throws IllegalTaskNameException;
/**
* Sets the thread's task name to the value that was set
* at, or imported into, the beginning of the method
* invocation (for EJB and Web components) or process
* (for J2EE clients).
*/
public void resetTaskName();
}