Sun Java System Application Server Enterprise Edition 8.1 2005Q2 관리 설명서

8장 J2EE 컨테이너

이 장에서는 서버에 포함된 J2EE 컨테이너를 구성하는 방법에 대해 설명합니다. 이 장은 다음 내용으로 구성되어 있습니다.

J2EE 컨테이너 정보

이 절에서는 Application Server에 포함된 J2EE 컨테이너에 대해 설명합니다.

J2EE 컨테이너 유형

J2EE 컨테이너에서는 응용 프로그램 구성 요소에 대한 런타임 지원을 제공합니다. J2EE 응용 프로그램 구성 요소에서는 컨테이너의 프로토콜 및 메소드를 사용하여 서버에서 제공하는 다른 응용 프로그램 구성 요소와 서비스에 액세스합니다. Application Server는 응용 프로그램 클라이언트 컨테이너, 애플릿 컨테이너, 웹 컨테이너 및 EJB 컨테이너를 제공합니다. 컨테이너를 표시하는 다이어그램은 Application Server 구조 절을 참조하십시오.

웹 컨테이너

웹 컨테이너는 웹 응용 프로그램을 호스트하는 J2EE 컨테이너입니다. 웹 컨테이너는 개발자에게 서블릿 및 JavaServer Pages(JSP 파일)를 실행하는 환경을 제공함으로써 웹 서버 기능을 확장합니다.

EJB 컨테이너

Enterprise bean(EJB 구성 요소)은 비즈니스 논리를 포함하는 프로그래밍 언어 서버 구성 요소입니다. EJB 컨테이너는 Enterprise Bean에 대한 로컬 및 원격 액세스를 제공합니다.

Enterprise Bean에는 Session Bean, Entity Bean 및 Message-Driven Bean 등의 세 가지 유형이 있습니다. Session Bean은 임시 객체와 프로세스를 나타내며 대개 단일 클라이언트에서 사용합니다. Entity Bean은 일반적으로 데이터베이스에서 유지 관리되는 지속성 데이터를 나타냅니다. Message-Driven Bean은 응용 프로그램 모듈과 서비스에 비동기적으로 메시지를 전달하기 위해 사용합니다.

컨테이너는 Enterprise Bean을 만들고 다른 응용 프로그램 구성 요소가 Enterprise Bean을 액세스할 수 있도록 이를 이름 지정 서비스에 바인딩하며, 권한이 있는 클라이언트만 Enterprise Bean 메소드에 액세스할 수 있게 하고, Bean의 상태를 영구 저장소에 저장하고 Bean의 상태를 캐싱하고 필요한 경우 Bean을 활성화하거나 비활성화하는 일을 담당합니다.

J2EE 컨테이너에 대한 관리 콘솔 작업

일반 웹 컨테이너 설정 구성

이 릴리스에는 관리 콘솔의 웹 컨테이너에 대한 컨테이너 차원의 설정이 없습니다.

웹 컨테이너 세션 구성

이 절에서는 웹 컨테이너의 HTTP 세션 설정에 대해 설명합니다. HTTP 세션은 영구 저장소에 상태 데이터를 기록하는 고유한 웹 세션입니다.

Procedure세션 시간 초과값을 설정하는 방법

  1. 트리 구성 요소에서 구성 노드를 선택합니다.

  2. 구성할 인스턴스를 선택합니다.

    • 특정 인스턴스를 구성하려면 해당 인스턴스 구성 노드를 선택합니다. 예를 들어, 기본 인스턴스 server에 대해 server-config 노드를 선택합니다.

    • 모든 인스턴스의 기본 설정을 구성하려면 default-config 노드를 선택합니다.

  3. 웹 컨테이너 노드를 선택합니다.

  4. 세션 등록 정보 탭을 누릅니다.

  5. 세션 시간 초과 필드에 세션이 유효한 시간(초)을 입력합니다.

  6. 저장을 누릅니다.

Procedure관리자 등록 정보를 구성하는 방법

세션 관리자는 세션을 만들고 삭제하는 방법과 세션 상태 저장 위치 및 최대 세션 수를 구성할 수 있는 방법을 제공합니다.

세션 관리자 설정을 변경하려면 다음 작업을 수행합니다.

  1. 트리 구성 요소에서 구성 노드를 선택합니다.

  2. 구성할 인스턴스를 선택합니다.

    • 특정 인스턴스를 구성하려면 해당 인스턴스 구성 노드를 선택합니다. 예를 들어, 기본 인스턴스 server에 대해 server-config 노드를 선택합니다.

    • 모든 인스턴스의 기본 설정을 구성하려면 default-config 노드를 선택합니다.

  3. 웹 컨테이너 노드를 선택합니다.

  4. 관리자 등록 정보 탭을 누릅니다.

  5. 리프 간격 값을 설정합니다.

    리프 간격은 비활성 세션 데이터가 저장소에서 삭제되기까지의 시간(초)입니다.

  6. 최대 세션 값을 설정합니다.

    최대 세션 필드는 허용된 최대 세션 수 입니다.

  7. 세션 파일 이름 값을 설정합니다.

    세션 파일 이름 필드는 세션 데이터를 포함하는 파일입니다.

  8. 세션 아이디 생성기 클래스 이름 값을 설정합니다.

    세션 아이디 생성기 클래스 이름 필드를 사용하면 고유한 세션 아이디를 생성하는데 필요한 사용자 정의 클래스를 지정할 수 있습니다. 서버 인스턴스당 세션 아이디 생성기 클래스 하나만 허용되므로 클러스터의 모든 인스턴스는 세션 키 충돌을 방지하기 위해 동일한 세션 아이디 생성기를 사용해야 합니다.

    사용자 정의 세션 아이디 생성기 클래스는 com.sun.enterprise.util.uuid.UuidGenerator 인터페이스를 구현해야 합니다.

    package com.sun.enterprise.util.uuid;
    
    public interface UuidGenerator {
    
        public String generateUuid();
        public String generateUuid(Object obj);  //obj is the session object
    }

    클래스가 Application Server 클래스 경로에 있어야 합니다.

  9. 저장을 누릅니다.

Procedure저장소 등록 정보를 구성하는 방법

  1. 트리 구성 요소에서 구성 노드를 선택합니다.

  2. 구성할 인스턴스를 선택합니다.

    • 특정 인스턴스를 구성하려면 해당 인스턴스 구성 노드를 선택합니다. 예를 들어, 기본 인스턴스 server에 대해 server-config 노드를 선택합니다.

    • 모든 인스턴스의 기본 설정을 구성하려면 default-config 노드를 선택합니다.

  3. 웹 컨테이너 노드를 선택합니다.

  4. 저장소 등록 정보 탭을 누릅니다.

  5. 리프 간격을 설정합니다.

    리프 간격은 비활성 세션 데이터가 저장소에서 삭제되기까지의 시간(초)입니다.

  6. 저장을 누릅니다.

일반 EJB 설정 구성

이 절에서는 서버의 모든 Enterprise Bean 컨테이너에 적용되는 다음 설정에 대해 설명합니다.

기본값을 컨테이너별로 대체하려면 Enterprise Bean의 sun-ejb-jar.xml 파일에서 값을 조정합니다. 자세한 내용은 Application Server Developer’s Guide를 참조하십시오.

세션 저장 위치

세션 저장 위치 필드는 비활성화된 Bean과 영구 HTTP 세션을 파일 시스템에 저장하는 디렉토리를 지정합니다.

비활성화된 Bean은 파일 시스템의 파일에 상태를 기록한 Enterprise Bean입니다. 일반적으로 비활성화된 Bean은 일정 기간 동안 유휴 상태에 있으므로 현재 클라이언트가 액세스할 수 없습니다.

비활성화된 Bean과 마찬가지로 영구 HTTP 세션은 파일 시스템의 파일에 자신의 상태를 기록한 개별 웹 세션입니다.

완결 옵션 필드는 컨테이너가 트랜잭션 간의 비활성화된 Entity Bean 인스턴스를 캐시하는 방법을 지정합니다.

옵션 B는 트랜잭션 간의 Entity Bean 인스턴스를 캐시하며 기본적으로 선택되어 있습니다. 옵션 C는 캐싱을 비활성화합니다.

ProcedureEJB 풀 설정을 구성하는 방법

Bean을 작성하여 생기는 성능 저하 없이 클라이언트 요청에 응답할 수 있도록 컨테이너는 Enterprise Bean 풀을 유지 관리합니다. 이 설정은 Stateless Session Bean 및 Entity Bean에만 적용됩니다.

배포된 Enterprise Bean을 사용하는 응용 프로그램에서 성능 문제가 발생하면 풀을 만들거나 기존 풀이 관리하는 Bean 수를 늘려서 응용 프로그램의 성능을 증가시킬 수 있습니다.

기본적으로 컨테이너는 Enterprise Bean의 풀을 유지 관리합니다.

  1. 트리 구성 요소에서 구성 노드를 선택합니다.

  2. 구성할 인스턴스를 선택합니다.

    • 특정 인스턴스를 구성하려면 해당 인스턴스 구성 노드를 선택합니다. 예를 들어, 기본 인스턴스 server에 대해 server-config 노드를 선택합니다.

    • 모든 인스턴스의 기본 설정을 구성하려면 default-config 노드를 선택합니다.

  3. EJB 컨테이너 노드를 선택합니다.

  4. 초기 및 최소 풀 크기 필드의 풀 설정에서 컨테이너가 풀에 만든 최소 개수를 입력합니다.

  5. 최대 풀 크기 필드에서 컨테이너가 언제든지 풀에서 유지하는 최대 수를 입력합니다.

  6. 풀 크기 조정 개수 필드에 풀 유휴 시간 초과에 지정한 시간을 초과해서 Bean이 계속 유휴 상태로 있는 경우 풀에서 제거할 Bean의 수를 입력합니다.

  7. 풀 유휴 시간 초과 필드에서 풀에서 Bean을 제거하기 전에 풀의 이 유휴 상태를 유지할 수 있는 시간을 초 단위로 입력합니다.

  8. 저장을 누릅니다.

  9. Application Server를 다시 시작합니다.

ProcedureEJB 캐시 설정을 구성하는 방법

컨테이너는 자주 사용되는 Enterprise Bean에 대해 Enterprise Bean 데이터 캐시를 유지 관리합니다. 이렇게 하면 컨테이너가 다른 응용 프로그램 모듈의 Enterprise Bean 데이터 요청에 빨리 응답할 수 있습니다. 이 절은 Stateful Session Bean과 Entity Bean에만 적용됩니다.

캐시된 Enterprise Bean의 상태는 활성, 유휴 또는 비활성 상태 중 하나입니다. 활성화된 Enterprise Bean은 현재 클라이언트가 액세스하고 있습니다. 유휴 Enterprise Bean의 데이터는 현재 캐시에 있지만 Bean에 액세스하는 클라이언트가 없습니다. 비활성화된 Bean의 데이터는 임시로 저장되지만 클라이언트가 Bean을 요청할 경우 다시 캐시로 읽어 들입니다.

  1. 트리 구성 요소에서 구성 노드를 선택합니다.

  2. 구성할 인스턴스를 선택합니다.

    • 특정 인스턴스를 구성하려면 해당 인스턴스 구성 노드를 선택합니다. 예를 들어, 기본 인스턴스 server에 대해 server-config 노드를 선택합니다.

    • 모든 인스턴스의 기본 설정을 구성하려면 default-config 노드를 선택합니다.

  3. EJB 컨테이너 노드를 선택합니다.

  4. 최대 캐시 크기 필드의 최대 캐시 크기를 조정합니다.

    Bean 작성 및 완전 삭제의 오버헤드를 제거하려면 캐시할 Bean의 최대 개수를 늘립니다. 그러나 캐시를 늘릴 경우 서버에서 더 많은 메모리와 자원을 소모합니다. 운영 환경이 캐시 설정에 충분해야 합니다.

  5. 캐시 크기 조정 개수 필드에서 캐시 크기 조정 개수를 조정합니다.

    캐시된 Bean이 최대 개수에 도달하면 컨테이너는 백업 저장소에서 비활성화된 Bean을 제거합니다. 이 개수는 기본적으로 32로 설정됩니다.

  6. Entity Bean에 대한 캐시 정리가 예약되는 속도를 캐시 유휴 시간 초과 필드에서 초 단위로 조정합니다.

    캐시된 Entity Bean이 일정 기간 동안 유휴 상태일 경우 비활성화됩니다. 즉, Bean의 상태가 백업 저장소에 기록됩니다.

  7. 제거 시간 초과 필드에서 캐시 또는 비활성화된 저장소에서 Stateful Session Bean을 얼마 후에 제거할지 초 단위로 시간을 조정합니다.

  8. 컨테이너가 Stateful Session Bean을 제거하는 데 사용할 정책을 제거 선택 정책 필드에 구성합니다.

    컨테이너는 제거 선택 정책 필드에 설정된 정책을 기반으로 제거할 Stateful Session Bean을 결정합니다. 캐시에서 Bean을 제거하기 위해 컨테이너에서 사용할 수 있는 세 가지 정책은 다음과 같습니다.

    • 최근에 사용되지 않음(NRU)

    • 선입선출(FIFO)

    • 가장 오래 전에 사용됨(LRU)

    NRU 정책은 최근에 사용하지 않은 Bean을 제거합니다. FIFO 정책은 캐시에서 가장 오래된 Bean을 제거합니다. LRU 정책은 가장 오래 전에 사용된 Bean을 제거합니다. 기본적으로 컨테이너에서는 NRU 정책을 사용합니다.

    Entity bean은 항상 FIFO 정책을 사용하여 제거됩니다.

  9. 저장을 누릅니다.

  10. Application Server를 다시 시작합니다.

Message-Driven Bean 설정 구성

Message-Driven Bean의 풀은 EJB 풀 설정을 구성하는 방법에 설명된 Session Bean의 풀과 유사합니다. 기본적으로 컨테이너는 Message-Driven Bean의 풀을 관리합니다.

이 풀의 구성을 조정하려면 다음 작업을 수행합니다.

ProcedureMDB 풀 설정을 구성하는 방법

  1. 트리 구성 요소에서 구성 노드를 선택합니다.

  2. 구성할 인스턴스를 선택합니다.

    • 특정 인스턴스를 구성하려면 해당 인스턴스 구성 노드를 선택합니다. 예를 들어, 기본 인스턴스 server에 대해 server-config 노드를 선택합니다.

    • 모든 인스턴스의 기본 설정을 구성하려면 default-config 노드를 선택합니다.

  3. EJB 컨테이너 노드를 선택합니다.

  4. MDB 설정 탭을 누릅니다.

  5. 초기 및 최소 풀 크기 필드의 풀 설정에서 컨테이너가 풀에 작성한 Message Bean의 최소 개수를 입력합니다.

  6. 최대 풀 크기에서 언제든지 컨테이너가 풀에 유지하는 Bean의 최대 개수를 입력합니다.

  7. 풀 크기 조정 개수 필드에 풀 유휴 시간 초과에 지정한 시간을 초과해서 Bean이 계속 유휴 상태로 있는 경우 풀에서 제거할 Bean의 수를 입력합니다.

  8. 풀 유휴 시간 초과 필드에서 풀에서 Bean을 제거하기 전에 풀의 이 유휴 상태를 유지할 수 있는 시간을 초 단위로 입력합니다.

  9. 저장을 누릅니다.

  10. Application Server를 다시 시작합니다.

EJB 타이머 서비스 설정 구성

타이머 서비스는 Enterprise Bean 컨테이너에서 사용하는 알림이나 이벤트를 예약하기 위해 컨테이너에서 제공하는 영구적인 트랜잭션 알림 서비스입니다. Stateful Session Bean을 제외한 모든 Enterprise Bean은 타이머 서비스를 통해 알림을 받을 수 있습니다. 서비스에 설정된 타이머는 서버가 종료되거나 다시 시작되어도 삭제되지 않습니다.

Procedure타이머 서비스를 구성하는 방법

  1. 트리 구성 요소에서 구성 노드를 선택합니다.

  2. 구성할 인스턴스를 선택합니다.

    • 특정 인스턴스를 구성하려면 해당 인스턴스 구성 노드를 선택합니다. 예를 들어, 기본 인스턴스 server에 대해 server-config 노드를 선택합니다.

    • 모든 인스턴스의 기본 설정을 구성하려면 default-config 노드를 선택합니다.

  3. EJB 컨테이너 노드를 선택합니다.

  4. EJB 타이머 서비스 탭을 누릅니다.

  5. 최소 전달 간격 필드에서 최소 전달 간격 밀리초를 설정합니다.

    최소 전달 간격은 특정 타이머의 다음 타이머 만료가 발생하기 전에 허용된 최소 밀리초입니다. 이 간격을 너무 작게 설정하면 서버가 오버로드될 수 있습니다.

  6. 최대 재전송 필드에서 타이머 서비스가 알림을 전달하는 최대 시도 횟수를 설정합니다.

  7. 재전송 간격 필드에서 재전송 시도 간격을 밀리초 단위로 설정합니다.

  8. 저장을 누릅니다.

  9. Application Server를 다시 시작합니다.

Procedure타이머 서비스에서 외부 데이터베이스를 사용하는 방법

기본적으로 타이머 서비스는 내장된 데이터베이스를 사용하여 타이머를 저장합니다.

  1. JDBC 자원을 만드는 방법에 설명된 대로 데이터베이스에 대한 JDBC 자원을 설정합니다.

  2. 타이머 데이터 소스 필드에 이 자원의 JNDI 이름을 입력합니다.

  3. 저장을 누릅니다.

  4. Application Server를 다시 시작합니다.

    PointBase 및 Oracle용 샘플 타이머 데이터베이스 작성 파일이 install-dir /lib/install/databases/에 제공됩니다.