작업 영역으로 로컬 작업 관리

시작하기 전에

클라이언트에 UserWorkArea 파티션에 액세스 주제에 설명된 대로 UserWorkArea 인터페이스에 대한 참조가 있거나 사용자 정의 작업 영역 파티션에 액세스 주제에 정의된 대로 사용자 정의 파티션에 대한 참조가 있는지 확인하십시오. 다음 단계에서는 UserWorkArea 파티션을 실례로 사용합니다. 그러나 사용자 정의 파티션을 정확히 같은 방법으로 사용할 수 있습니다.

이 태스크 정보

작업 영역을 사용하는 비즈니스 애플리케이션에서 서버 오브젝트는 일반적으로 작업 영역 특성을 검색하고 이 정보를 사용하여 로컬 작업을 안내합니다.

프로시저

  1. 활성 작업 영역의 이름을 검색하여 호출 스레드가 작업 영역과 연관되었는지 여부를 판별하십시오.

    애플리케이션은 UserWorkArea 인터페이스에서 getName 메소드를 사용하여 현재 작업 영역의 이름을 검색합니다. 스레드가 작업 영역과 연관되지 않는 경우, getName 메소드는 널을 리턴합니다. 다음 코드 예에서 작업 영역의 이름은 작업 영역이 시작된 클래스의 이름에 해당합니다.

    public class SimpleSampleBeanImpl implements SessionBean {
    
        ...
    
        public String [] test() {
           // Get the work-area reference from JNDI.
           ...
    
           // Retrieve the name of the work area. In this example,
           // the name is used to identify the class in which the
           // work area was begun.
           String invoker = userWorkArea.getName();
           ...
       }
    }
  2. 작업 영역 특성을 대체하십시오. 서버 오브젝트는 고유한 중첩된 작업 영역을 작성하여 클라이언트 작업 영역 특성을 대체할 수 있습니다. 자세한 정보는 작업 영역 특성 대체 문서를 참조하십시오.
  3. get 메소드를 사용하여 작업 영역에서 특성을 검색하십시오.
    get 메소드는 본래 간단해서 처리할 선언된 예외가 없습니다. 활성 작업 영역이 없는 경우 또는 현재 작업 영역에 해당 특성 세트가 없는 경우 get 메소드는 널을 리턴합니다.
    중요사항: get 메소드는 CORBA 클라이언트가 작성된 데이터 유형을 설정하고 엔터프라이즈 Bean 인터페이스를 호출하는 상대적으로 드문 시나리오에서 NotSerializableError를 생성할 수 있습니다.

    다음 예제는 SimpleSampleBean에 의한 사이트 ID 및 우선순위 특성의 검색을 보여줍니다. 한 특성은 클라이언트에 의해 외부 작업 영역에 설정되었고 다른 특성은 서버측 Bean에 의해 중첩된 작업 영역에 설정되었음을 유념하십시오. 중첩은 특성 검색에 투명합니다.

    public class SimpleSampleBeanImpl implements SessionBean {
    
        public String [] test() {
          ...
    
          // Begin a nested work area.
          userWorkArea.begin("SimpleSampleBean");
          try {
            userWorkArea.set("company",
                             SimpleSampleCompany.London_Development);
          }
          catch (NotOriginator e) {
          }
    
          SimpleSampleCompany company =
             (SimpleSampleCompany) userWorkArea.get("company");
          SimpleSamplePriority priority =
             (SimpleSamplePriority) userWorkArea.get("priority");
           ...
       }
    }
    
  4. 옵션: 작업 영역에서 표시할 수 있는 모든 키의 목록을 검색하십시오.

    UserWorkArea 인터페이스는 작업 영역에서 표시할 수 있는 모든 키의 목록을 검색하기 위한 retrieveAllKeys 메소드를 제공합니다. 이 메소드는 인수를 갖지 않으며 문자열 배열을 리턴합니다. 스레드와 연관된 작업 영역이 없는 경우 retrieveAllKeys 메소드는 널을 리턴합니다. 특성을 포함하지 않는 연관된 작업 영역이 있는 경우 메소드는 크기가 0인 배열을 리턴합니다.

  5. getMode 메소드를 사용하여 작업 영역 특성의 모드를 조회하십시오.

    UserWorkArea 인터페이스는 특정 특성의 모드를 판별하기 위한 getMode 메소드를 제공합니다. 이 메소드는 특성의 키를 인수로 취하며 모드를 PropertyModeType 오브젝트로 리턴합니다. 지정된 키가 작업 영역에 존재하지 않는 경우 메소드는 특성을 오류 없이 설정 및 제거할 수 있음을 표시하는 PropertyModeType.normal을 리턴합니다.

  6. 옵션: 작업 영역 특성을 삭제하십시오.

    UserWorkArea 인터페이스는 작업 영역의 현재 범위에서 특성을 삭제하기 위한 remove 메소드를 제공합니다. 특성이 초기에 현재 범위로 설정된 경우 범위를 제거하면 특성이 삭제됩니다. 특성이 초기에 포함하는 작업 영역에 설정된 경우 작업 영역을 제거하면 현재 범위가 완료될 때까지 특성이 삭제됩니다. 현재 작업 영역이 완료될 때 삭제된 특성이 복원됩니다.

    remove 메소드는 특성의 키를 인수로 취합니다. 정상 및 읽기 전용 모드를 갖는 특성만을 제거할 수 있습니다. 고정 특성을 제거하려 시도하면 PropertyFixed 예외가 작성됩니다. 다른 프로세스에서 시작된 작업 영역에서 특성을 제거하려 시도하면 NotOriginator 예외가 생성됩니다.

SimpleSample 애플리케이션 예제의 서버측(작업 영역을 사용하는 애플리케이션 개발 주제에 포함됨)은 클라이언트의 원격 호출을 허용합니다. 각 원격 호출을 사용하여 서버는 또한 클라이언트가 하나를 작성한 경우 클라이언트에서 작업 영역을 가져옵니다. 작업 영역은 투명하게 전파됩니다. 어떤 원격 메소드도 작업 영역과 그 인수 목록을 포함하지 않습니다.

예제 애플리케이션에서 서버 오브젝트는 데모 목적으로만 작업 영역 인터페이스를 사용합니다. 예를 들어 SimpleSampleBean은 의도적으로 가져온 작업 영역에 직접 쓰려고 시도하며, 이것은 NotOriginator 예외를 작성합니다. 마찬가지로 Bean은 의도적으로 읽기 전용 SimpleSampleCompany를 마스크하려 시도하는데, 이것은 PropertyReadOnly 예외를 트리거합니다. SimpleSampleBean은 또한 작업 영역을 중첩하고 SimpleSampleBackendBean을 호출하기 전에 성공적으로 우선순위 특성을 대체합니다. 실제 비즈니스 애플리케이션은 작업 영역 특성을 추출한 후 로컬 작업을 안내하는 데 사용합니다. SimpleSampleBean은 요청이 영업 환경에서 발생할 때 기능이 거부된다는 메시지를 작성하여 이것을 흉내냅니다.


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



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