국제화 컨텍스트: 전파 및 범위

국제화 컨텍스트의 범위는 함축적입니다. 모든 EJB(Enterprise JavaBeans) 클라이언트 애플리케이션, 서블릿 서비스 메소드 및 EJB 비즈니스 메소드 호출에는 메소드가 실행되는 두 개의 국제화 컨텍스트가 있습니다.

각 애플리케이션 컴포넌트 호출의 경우, 컨테이너가 실제 구현에 위임하기 전에 관련된 국제화 정책에 의해 표시된 대로 컨테이너가 호출자 컨텍스트 및 호출 컨텍스트를 범위에 입력합니다. 구현이 리턴될 때, 서비스가 범위에서 이러한 컨텍스트를 제거합니다. 국제화 서비스는 컴포넌트가 국제화 컨텍스트의 범위를 명시적으로 관리할 수 있도록 하는 프로그램 메커니즘을 제공하지 않습니다.

국제화 컨텍스트는 원격 메소드 요청에 대해 by-value 시맨틱을 관찰합니다. 호출을 범위로 하는 국제화 컨텍스트 요소의 변경은 원격 호출 프로세스를 범위로 하는 국제화 컨텍스트의 해당 요소에는 영향을 주지 않습니다. 또한, 국제화 컨텍스트 API를 통해 확보한 컨텍스트 요소의 수정도 호출을 범위로 하는 해당 요소에 영향을 주지 않습니다.

EJB 클라이언트 프로그램(포함)

클라이언트 컨테이너의 main 메소드를 호출하기 전에 Java™ EE 클라이언트 컨테이너는 범위 호출 및 호출자 국제화에 널 요소를 포함하는 일부 컨텍스트를 도입합니다. 이 컨텍스트는 프로그램 사용 기간 동안 범위 안에 존재합니다. EJB 클라이언트 프로그램은 원격 비즈니스 메소드 호출의 체인을 기반으로 기술적으로는 논리적 호출자 컨텍스트를 가지지 않습니다. 호출자 컨텍스트 요소 액세스는 클라이언트 JVM의 해당 기본 요소를 만듭니다. 출력 EJB 비즈니스 메소드 요청에서 국제화 서비스는 호출 컨텍스트를 대상 프로세스로 전파합니다. 모든 설정 해제(널) 호출 컨텍스트 요소는 국제화 컨텍스트 API 또는 출력 요청으로 내보낼 때 기본 JVM으로 대체됩니다.

팁:

JVM 기본값 이외의 값을 원격 비즈니스 메소드에 전파하기 위해 EJB 클라이언트 프로그램과 AMI 서블릿 또는 엔터프라이즈 Bean은 호출 컨텍스트 요소를 설정(대체)해야 합니다. 호출 컨텍스트 요소 설정 방법에 대해서는 호출 로케일 및 시간대 액세스의 내용을 참조하십시오.

서블릿

모든 서블릿 서비스 메소드(doGet 또는 doPost) 호출에서 Java EE 웹 컨테이너는 호출자 및 호출 국제화 컨텍스트를 서비스 메소드 구현 위임 전 범위로 도입합니다. 호출자 컨텍스트에는 일반적으로 웹 브라우저에서 HTTP 서블릿 요청으로 전파되는 accept-languages가 포함됩니다. 호출 컨텍스트에는 서블릿에 연관된 국제화 정책의 컨테이너 국제화 속성으로 표시되는 모든 컨텍스트가 포함됩니다. 모든 설정 해제(널) 호출 컨텍스트 요소는 국제화 컨텍스트 API 또는 출력 요청으로 내보낼 때 서버 JVM으로 대체됩니다. 호출자 및 호출 컨텍스트는 구현이 리턴되는 직전까지, 즉 컨테이너가 이를 범위에서 제거하는 시점까지는 유효합니다.

엔터프라이즈 Bean

모든 EJB 비즈니스 메소드 호출에서 Java EJB 컨테이너는 호출자 및 호출 국제화 컨텍스트를 비즈니스 메소드 구현 위임 전 범위로 도입합니다. 호출자 컨텍스트에는 수신 IIOP 요청에서 가져온 국제화 컨텍스트 요소가 포함됩니다. 수신 요청에 특정 국제화 컨텍스트 요소가 없는 경우 컨테이너는 널 요소를 범위로 합니다. 호출 컨텍스트에는 비즈니스 메소드에 연관된 국제화 정책의 컨테이너 국제화 속성으로 표시되는 모든 컨텍스트가 포함됩니다.

출력 EJB 비즈니스 메소드 요청에서 서비스는 호출 컨텍스트를 대상 프로세스로 전파합니다. 모든 설정 해제(널) 호출 컨텍스트 요소는 국제화 컨텍스트 API 또는 출력 요청으로 내보낼 때 서버 JVM으로 대체됩니다. 호출자 및 호출 컨텍스트는 구현이 리턴되는 직전까지, 즉 컨테이너가 이를 범위에서 제거하는 시점까지는 유효합니다.

원격 myBeanMethod Bean 메소드를 호출하는 Java 클라이언트가 포함된 단순 EJB 애플리케이션을 고려하십시오. 클라이언트 측에서 애플리케이션은 국제화 서비스 API를 사용하여 호출 컨텍스트 요소를 설정할 수 있습니다. 클라이언트가 myBeanMethod()를 호출하면 서비스는 클라이언트 호출 컨텍스트를 출력 요청으로 내보냅니다. 서버 측에서 서비스는 가져온 컨텍스트를 수신 요청에서 분리하고 이를 해당 호출자 컨텍스트로 범위 지정합니다. 서비스는 호출 컨텍스트를 연관된 국제화 컨텍스트 관리 정책으로 표시된 메소드로도 범위 지정합니다. 그러면 EJB 컨테이너는 myBeanMethod 메소드를 호출하고 이는 국제화 컨텍스트 API를 사용하여 호출자 또는 호출 컨텍스트인 요소에 액세스합니다. myBeanMethod 메소드가 리턴되면 EJB 컨테이너는 이 컨텍스트를 범위에서 제거합니다.

웹 서비스 클라이언트 프로그램(포함)

웹 서비스 클라이언트의 main 메소드를 호출하기 전에 클라이언트 컨테이너는 범위를 호출 및 널 요소를 포함하는 호출자 국제화 컨텍스트로 도입합니다. 이 컨텍스트는 프로그램 지속 기간 동안 범위 안에 존재합니다. 웹 서비스 클라이언트 프로그램은 원격 비즈니스 메소드 호출의 체인의 기반으로 기술적으로는 논리적 호출자 컨텍스트를 가지지 않습니다. 호출자 컨텍스트 요소 액세스는 클라이언트 가상 머신의 해당 기본 요소를 만듭니다.

출력 웹 서비스 요청에서 국제화 서비스는 현재 스레드에 연관된 호출 컨텍스트를 포함하는 SOAP 헤더 블록을 투명하게 작성합니다. 호출 컨텍스트의 SOAP 표시는 대상 프로세스 호출을 통해 전파됩니다. 모든 설정 해제(즉, 널) 호출 컨텍스트 요소는 국제화 컨텍스트 API 또는 출력 요청으로 내보낼 때 JVM 기본 요소로 대체됩니다. 또한, 헤더에 시간대 ID만 있기 때문에 호출 컨텍스트의 시간대 오브젝트(java.lang.SimpleTimeZone)의 추가 상태는 유실될 수 있으며 이는 요청을 통해 전파되지 않기 때문입니다.

팁:

JVM 기본값 이외의 값을 원격 비즈니스 메소드에 전파하기 위해 웹 서비스 클라이언트 프로그램과 AMI 서블릿 또는 엔터프라이즈 Bean은 호출 컨텍스트 요소를 설정(대체)해야 합니다. 자세한 정보는 호출 로케일 및 시간대 액세스의 내용을 참조하십시오.

웹 서비스에 사용되는 Stateless 세션 Bean

모든 웹 서비스 사용 Bean의 메소드 호출에서 EJB 컨테이너는 호출자 및 호출 국제화 컨텍스트를 비즈니스 메소드 구현 제어 위임 전 범위로 도입합니다. 호출자 컨텍스트는 수신 요청의 SOAP 헤더 블록에서 가져오는 국제화 컨텍스트 요소를 포함합니다. 수신 요청에 특정 국제화 컨텍스트 요소가 없는 경우 컨테이너는 널 요소를 범위에 도입합니다. 호출 컨텍스트에는 비즈니스 메소드에 연관된 국제화 정책의 컨테이너 국제화 속성으로 표시되는 모든 컨텍스트가 포함됩니다.

출력 EJB 비즈니스 메소드 요청에서 서비스는 호출 컨텍스트를 대상 프로세스로 전파합니다. 모든 설정 해제(즉, 널) 호출 컨텍스트 요소는 국제화 컨텍스트 API 또는 출력 요청으로 내보낼 때 서버 JVM의 기본 요소로 대체됩니다. 호출자 및 호출 컨텍스트는 제어가 비즈니스 메소드 구현에서 리턴되기 직전까지, 즉 컨테이너가 이를 범위에서 제거하는 시점까지는 유효합니다.

출력 웹 서비스 요청에서 국제화 서비스는 현재 스레드에 연관된 호출 컨텍스트를 포함하는 SOAP 헤더 블록을 투명하게 작성합니다. 호출 컨텍스트의 SOAP 표시는 대상 프로세스 호출을 통해 전파됩니다. 모든 설정 해제(즉, 널) 호출 컨텍스트 요소는 국제화 컨텍스트 API 또는 출력 요청으로 내보낼 때 JVM 기본 요소로 대체됩니다.

스레드 연관 고려사항

웹 및 EJB 컨테이너는 국제화 컨텍스트의 범위를 메소드를 메소드 구현을 실행하는 스레드와 연관시켜서 메소드로 지정합니다. 유사하게 국제화 컨텍스트 API의 메소드는 컨텍스트를 이 메소드가 실행되는 스레드와 연관시키거나 이와 연관된 컨텍스트를 가져옵니다.

새 스레드가 애플리케이션 컴포넌트 내에서 생산되는 경우(예를 들어, 서블릿의 service 메소드 내에서 사용자가 생성하는 스레드 또는 AWR 클라이언트의 스레드를 처리하는 시스템 생성 이벤트) 상위 스레드에 연관된 국제화 컨텍스트는 자동으로 새로 생산된 스레드로 전송되지 않습니다. 이런 경우, 서비스는 모든 원격 비즈니스 메소드 요청 및 새 스레드에서 실행되는 모든 API 호출의 JVM에 대한 로케일 및 시간대를 내보냅니다.

기본 컨텍스트가 적절하지 않은 경우 필요한 호출 컨텍스트 요소는 InvocationInternationalization 인터페이스의 setXxx 메소드를 사용하여 새 스레드에 명시적으로 연관되어야 합니다. 현재 국제화 컨텍스트 관리 정책은 호출 컨텍스트가 EJB 클라이언트 프로그램 내뿐만 아니라 서블릿, 세션 Bean, 애플리케이션 관리 국제화를 사용하는 메시지 구동 Bean에서도 설정되도록 합니다.


주제 유형을 표시하는 아이콘 개념 주제



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