Sun Java System Web Server 7.0 관리자 설명서

11장 Java 및 웹 응용 프로그램 작업

이 장에서는 가상 서버의 Java 설정을 편집하는 절차를 설명합니다. 관리 콘솔이나 wadm 명령줄 도구에서 Java 설정을 편집할 수 있습니다. 이 장에서는 Sun Java System Web Server에서 구성할 수 있는 다양한 Java 자원에 대해서도 설명합니다.

이 장에서는 Sun Java System Web Server에서 Java 웹 응용 프로그램을 배포하는 방법에 대해서도 설명합니다.

Sun Java System Web Server에서 사용하도록 Java 구성

이 절에서는 선택한 구성에 대해 Java를 활성화하고 Java Home 변수를 설정할 수 있게 합니다.

Procedure구성에 대해 Java 활성화

  1. 구성을 선택합니다.

    구성 목록에서 구성을 선택합니다. 구성 탭을 눌러 사용 가능한 구성 목록을 가져옵니다.

  2. Java > 일반 탭을 누릅니다.

  3. Java 사용 확인란을 선택합니다.

    구성에 대한 Java 지원을 설정하거나 해제합니다. Java를 사용하면 서버에서 Java 응용 프로그램을 처리할 수 있습니다.

  4. Java Home을 설정합니다.

    Java SE의 위치를 지정합니다. 절대 경로 또는 서버의 config 디렉토리에 대한 상대 경로를 지정합니다.

  5. 고정 첨부를 설정합니다.

    서버에서 각 HTTP 요청 처리 스레드를 JVM에 한 번만 첨부할지 여부를 지정합니다. 그렇지 않을 경우 서버는 각 요청에 대해 HTTP 요청 처리 스레드를 첨부/분리합니다.


    주 –

    CLI 사용

    구성에 대해 Java를 활성화하려면 다음 명령을 실행합니다.


    wadm> enable-java --user=admin --password-file=admin.pwd --host=serverhost 
    --port=8989 --config=config1

    CLI 참조 enable-java(1)를 참조하십시오.


Java 클래스 경로 설정

이 절에서는 선택된 구성에 대해 JVM 클래스 경로를 추가할 수 있습니다.

ProcedureJava 클래스 경로를 설정하는 방법

  1. 구성을 선택합니다.

    구성 목록에서 구성을 선택합니다. 구성 탭을 눌러 사용 가능한 구성 목록을 가져옵니다.

  2. Java > 경로 설정 탭을 누릅니다.

    다음 매개 변수를 편집합니다.

    • 환경 클래스 경로 무시 — 기본적으로 사용됩니다.

    • 클래스 경로 접두어 — 시스템 클래스 경로의 접두어입니다. XML 파서 클래스와 같은 시스템 클래스를 대체하려면 시스템 클래스 경로 접두어만 사용해야 합니다. 사용 시 주의.

    • 서버 클래스 경로 — 서버 클래스를 포함하는 클래스 경로입니다. 읽기 전용 목록입니다.

    • 클래스 경로 접미어 — 서버 클래스 경로에 추가합니다.

    • 원시 라이브러리 경로 접두어 — 운영 체제 원시 라이브러리 경로의 접두어입니다.

    • Bytecode 프로세서 클래스com.sun.appserv.BytecodePreprocessor를 구현하는 클래스의 정규화된 이름입니다. 런타임 클래스 계측을 수행하는 일반적인 방법은 선행 처리 기법을 사용하는 것입니다. 프로필링 및 모니터링 도구는 클래스 선행 프로세서를 사용하여 계측 코드를 JVM에서 로드하기 직전에 Java 클래스의 필요한 위치에 삽입합니다. 이를 위해 클래스 선행 프로세서는 클래스 로더와 함께 작동합니다.

JVM 구성

관리 인터페이스에서 JVM 명령줄 옵션을 설정하려면 다음 작업을 수행합니다.

ProcedureJVM 구성

  1. 구성을 선택합니다.

    구성 목록에서 구성을 선택합니다. 구성 탭을 눌러 목록을 가져옵니다.

  2. Java > JVM 설정 탭을 누릅니다.

    JVM의 설정을 구성합니다.

JVM 옵션 추가

여기에 값을 지정하여 명령줄 JVM 옵션을 추가/삭제할 수 있습니다.

JVM 옵션 추가 버튼을 눌러 JVM 옵션을 추가합니다.

JVM 옵션에 대한 예는 다음과 같습니다.-Djava.security.auth.login.config=login.conf, -Djava.util.logging.manager=com.iplanet.ias.server.logging.ServerLogManager and -Xms128m -Xmx256m


주 –

CLI 사용

CLI를 통해 JVM 옵션을 추가하려면 다음 명령을 실행합니다.


wadm> create-jvm-options --user=admin --password-file=admin.pwd --host=serverhost 
--port=8989 --config=config1 -Dhttp.proxyHost=proxyhost.com -Dhttp.proxyPort=8080

CLI 참조 create-jvm-options(1)를 참조하십시오.


JVM 프로필러 추가

JVM 프로필러는 Java 응용 프로그램에서 성능 문제, 메모리 누수, 다중 스레딩 문제 및 시스템 자원 사용 문제를 진단하고 해결할 수 있게 하여 응용 프로그램에 대해 최고 수준의 안정성 및 확장 가능성을 보장합니다.

ProcedureJVM 프로필러 추가

  1. 구성을 선택합니다.

    구성 목록에서 구성을 선택합니다. 구성 탭을 눌러 사용 가능한 구성 목록을 가져옵니다.

  2. Java > JVM 설정 탭을 누릅니다.

  3. 프로필러 섹션에서 새로 만들기 버튼을누릅니다.

  4. 다음 매개 변수의 값을 입력합니다.

    • 이름 — 새 JVM 프로필러의 약식 이름을 지정합니다.

    • 사용 가능 — 프로필러가 런타임에 사용되는지 여부를 결정합니다.

    • 클래스 경로 — 프로필러의 유효한 클래스 경로를 지정합니다. (선택 사항).

    • 원시 라이브러리 경로 — 유효한 원시 라이브러리 경로를 지정합니다. (선택 사항).

    • JVM 옵션 — CLI에 대해 추가 JVM 옵션을 지정할 수 있습니다.


    주 –

    CLI 사용

    CLI를 통해 JVM 프로필러를 추가하려면 다음 명령을 실행합니다.


    wadm> create-jvm-profiler --user=admin --password-file=admin.pwd 
    --host=serverhost --port=8989 --config=config1

    CLI 참조 create-jvm-profiler(1)를 참조하십시오.


서버에 대해 Java 디버깅 활성화

JVM은 디버그 모드에서 시작할 수 있으며 JPDA(Java Platform Debugger Architecture) 디버거에 연결할 수 있습니다. 디버깅을 사용할 때 로컬 및 원격 디버깅을 모두 사용할 수 있습니다.

Sun Java System Web Server의 디버깅은 JPDA 소프트웨어를 기반으로 수행됩니다. 디버깅을 사용하려면 다음 작업을 수행하십시오.

ProcedureJVM 디버깅 사용

  1. 구성을 선택합니다.

    구성 목록에서 구성을 선택합니다. 구성 탭을 눌러 사용 가능한 구성 목록을 가져옵니다.

  2. Java > JVM 설정 탭을 누릅니다.

  3. 디버그 Java 설정에 있는 디버그 사용 확인란을 선택합니다.

  4. 필요에 따라 새로 만들기 버튼을 눌러 JVM 옵션을 입력합니다.

    기본 JPDA 옵션은 다음과 같습니다.


    -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=7896

    suspend=y로 대체하면 JVM은 중지 모드로 시작되며 디버거가 첨부될 때까지 중지 상태로 남아 있습니다. JVM이 시작되자마자 디버깅을 시작하려는 경우에 유용합니다. JVM을 디버거에 첨부할 때 사용할 포트를 지정하려면 address=port_number를 지정합니다. 디버깅 옵션 목록은 JPDA 문서를 확인하십시오.

Java 웹 응용 프로그램 배포

웹 응용 프로그램 추가

기존 가상 서버에 웹 응용 프로그램을 배포할 수 있습니다.

Procedure웹 응용 프로그램을 배포하는 방법

시작하기 전에
Sun Java System Web Server 7.0

웹 응용 프로그램은 wadm, 관리 콘솔 및 기타 지원되는 IDE를 통해 배포할 수 있습니다.

  1. 웹 응용 프로그램을 배포하려면 서버 구성 아래에 있는 가상 서버 탭을 누릅니다.

  2. 웹 응용 프로그램을 배포할 가상 서버를 선택합니다.

  3. 웹 응용 프로그램 탭 > 새로 만들기 버튼을 누릅니다.

  4. 웹 응용 프로그램 패키지를 지정합니다.

    웹 응용 프로그램 아카이브를 업로드하려면 찾아보기 버튼을 누르고 아카이브를 선택합니다. 서버에 있는 웹 응용 프로그램 아카이브를 지정할 수도 있습니다(선택 사항).

  5. 웹 응용 프로그램에 대한 URI를 지정합니다. 이는 응용 프로그램 컨텍스트 루트이며 서버 호스트에 상대적입니다.

  6. 웹 응용 프로그램에 대한 간단한 설명을 제공합니다.

  7. JSP 사전 컴파일을 활성화/비활성화합니다.

    이 지시문을 활성화하면 웹 응용 프로그램에 있는 모든 JSP를 사전 컴파일하여 성능을 향상시킬 수 있습니다.

  8. 응용 프로그램을 활성화합니다.

    웹 응용 프로그램 상태가 사용 불가능으로 설정되어 있으면 요청 시 사용할 수 없습니다. 하지만 응용 프로그램을 인스턴스에 다시 배포하지 않고도 이 옵션을 언제든지 전환할 수 있습니다.

  9. 응용 프로그램을 배포합니다.

    배포 버튼을 눌러 웹 응용 프로그램을 배포합니다.

    컨텍스트 루트를 지정하여 응용 프로그램에 액세스할 수 있습니다. 예를 들면 http://<your-server>:<port>/<URI>와 같습니다.


    주 –

    CLI 사용


    wadm> add-webapp --user=admin --password-file=admin.passwd --host=localhost 
     --port=8888 --config=config1 --vs=HOSTNAME --uri=/hello /home/test/hello.war

    CLI 참조 add-webapp(1)를 참조하십시오.


웹 응용 프로그램 디렉토리 배포

–file-on-server 옵션을 사용하여 Administration Server 호스트 시스템에 있는 디렉토리를 구성에 배포할 수 있습니다. 다음 명령을 실행합니다.


wadm> add-webapp --user=admin-user --password-file=admin.passwd 
--port=8989 --vs=vs1 --config=config1 --file-on-server
--uri=/mywebapp /space/tmp/mywebapp

배포 중에 JSP 사전 컴파일

웹 응용 프로그램을 배포하는 동안 웹 응용 프로그램에서 JSP를 사전 컴파일하려면 –precompilejsp 옵션을 다음과 같이 설정하여 명령을 실행합니다.


wadm> add-webapp --user=admin-user --password-file=admin.passwd 
--port=8989 --vs=vs1 --config=config1 --file-on-server --uri=/mywebapp
--precompilejsp mywebapp.war

서블릿 컨테이너 구성

이 절에서는 서블릿 컨테이너를 구성하는 절차에 대해 설명합니다.

Procedure서블릿 컨테이너 설정

  1. 구성을 선택합니다.

    구성 목록에서 구성을 선택합니다. 구성 탭을 눌러 목록을 가져옵니다.

  2. Java > 서블릿 컨테이너를 누릅니다.

서블릿 컨테이너 전역 매개 변수

다음 표에서는 서블릿 컨테이너 페이지에서 사용할 수 있는 매개 변수에 대해 설명합니다.

표 11–1 서블릿 컨테이너 매개 변수

매개 변수

설명

로그 수준

서블릿 컨테이너의 로그 상세 표시입니다. 사용 가능한 값은 최고(가장 많음), 보통, 최저, 정보, 경고, 실패, 구성, 보안 또는 치명적 오류(가장 적음)입니다. 

동적 다시 로드 간격

이 매개 변수는 배포된 웹 응용 프로그램을 서버에서 확인하여 수정하기 전에 대기할 시간을 정의합니다. 값의 범위는 1 - 60이며 동적 다시 로드를 사용하지 않는 경우에는 –1입니다. 

익명 역할

모든 사용자에게 할당된 기본 또는 익명 역할의 이름입니다. 기본 역할은 ANYONE입니다. 

서블릿 풀 크기

SingleThreadedServlet당 인스턴스화할 서블릿 인스턴스 수입니다. 값의 범위는 1 - 4096입니다.

디스패처 최대 깊이

중첩된 요청 디스패치를 허용하는 서블릿 컨테이너의 최대 깊이입니다. 가능한 값의 범위는 0 - 2147.0483647.0이며 기본값은 20입니다. 

교차 컨텍스트 허용

요청 디스패처에서 다른 컨텍스트로 디스패치할 수 있는지 여부를 지정합니다. 기본값은 false입니다. 

쿠키 인코딩

서블릿 컨테이너에서 쿠키 값을 인코딩할지 여부를 지정합니다. 기본값은 true입니다. 

세션 아이디 다시 사용

클라이언트의 새 세션을 만들 때 기존 세션 아이디 번호를 다시 사용할지 여부를 지정합니다. 기본값은 false입니다. 

보안 세션 쿠키

Dynamic/True/False. 이 매개 변수는 JSESSIONID 쿠키에 보안을 표기하는 조건을 제어합니다. 보안 연결(HTTPS)에서 요청을 받은 경우에만 쿠키에 보안을 표시하려면 Dynamic(기본값)을 사용합니다. 

항상 보안 표시를 하려면 True를 사용하고 보안 표시를 하지 않으려면 False를 사용합니다. 

서버 라이프사이클 모듈 구성

Java Server 라이프사이클 모듈은 시작 또는 중지와 같은 서버 이벤트가 발생할 때마다 특정 작업을 수행하기 위해 서버 라이프사이클 이벤트를 수신하는 Java 클래스입니다.

서버에서는 웹 서버 환경 내에서 단기 또는 장기 Java 기반 작업 실행을 지원합니다. 이러한 작업은 서버 시작 시 자동으로 시작되고 서버 종료 시 알림이 수신됩니다. 따라서 싱글톤 및 RMI 서버의 인스턴스화와 같은 작업에 연결할 수 있습니다.

다음은 서버 라이프사이클에 대한 간단한 설명입니다.

서버 라이프사이클 소개

Procedure라이프사이클 모듈을 추가하는 방법

  1. 구성을 선택합니다.

    구성 목록에서 구성을 선택합니다. 구성 목록을 보려면 구성 탭을 누릅니다.

  2. Java > 라이프사이클 모듈 탭을 누릅니다.

  3. 새로 만들기 버튼을 누릅니다.

    다음 매개 변수에 대한 값을 제공합니다.

    • 이름 — 새 라이프사이클 모듈에 유효한 고유 이름을 제공합니다.

    • 사용 가능 — 이 라이프사이클 모듈을 사용하려면 이 옵션을 사용합니다.

    • 클래스 이름 — 정규화된 Java 클래스 이름입니다. 클래스는 com.sun.appserv.server.LifecycleListener 인터페이스를 구현해야 합니다. 이 인터페이스 사용에 대한 자세한 내용은 Developer's Guide를 참조하십시오.

    • 클래스 경로 — 선택 사항입니다. Listener 클래스의 클래스 경로를 지정할 수 있습니다.

    • 로드 순서 — 100보다 큽니다. 라이프사이클 이벤트 Listener의 로드 순서를 숫자로 나타냅니다. 내부 라이프사이클 모듈과의 충돌을 피하려면 100 이상의 로드 순서를 선택하는 것이 좋습니다.

    • 로드 실패 시 — 이 옵션을 사용하면 서버가 Listener 클래스에서 발생한 예외를 치명적인 것으로 처리하지 않으므로 서버가 정상적으로 시작됩니다. 기본적으로 사용 안 함으로 설정됩니다.

    • 설명 — 라이프사이클 모듈에 대한 간단한 설명을 제공합니다.

    • 등록 정보 — 등록 정보는 Java 라이프사이클 모듈에 인수를 전달하는 데 사용할 수 있습니다. 새 등록 정보를 추가하려면 등록 정보 추가 버튼을 누르고 이름, 값 및 설명 텍스트를 입력합니다.


    주의 – 주의 –

    서버 라이프사이클 Listener 클래스는 주 서버 스레드에서 동시에 호출되므로 Listener 클래스가 서버를 차단하지 않도록 특별히 주의해야 합니다. 필요한 경우 Listener 클래스에서 스레드를 만들 수도 있으나 셧다운/종료 단계 동안에는 해당 클래스를 중지해야 합니다.


Procedure라이프사이클 모듈을 삭제하는 방법

  1. 구성을 선택합니다.

    구성 목록에서 구성을 선택합니다. 구성 목록을 보려면 구성 탭을 누릅니다.

  2. Java > 라이프사이클 모듈 탭을 누릅니다.

  3. 라이프사이클 모듈을 선택하고 라이프사이클 모듈 삭제 버튼을 누릅니다.


    주 –

    CLI 사용

    다음 예에서는 com.MyLifecycleModule 클래스로 구현되는 test 구성을 위해 myLifecycleModule이라는 Java 라이프사이클 모듈을 만드는 방법을 보여줍니다.


    wadm> create-lifecycle-module --user=admin --password-file=admin.pwd 
    --host=serverhost --port=8989 --config=config1 
    --class=com.sun.webserver.tests.LifecycleClass LifecycleTest

    CLI 참조 create-lifecycle-module(1)을 참조하십시오.

    Java 라이프사이클 모듈을 나열하려면 다음 명령을 실행합니다.


    wadm> list-lifecycle-modules --config=test

    CLI 참조 list-lifecycle-modules(1)를 참조하십시오.

    Java 라이프사이클 모듈에 등록 정보를 추가하려면 다음 명령을 실행합니다.


    wadm> create-lifecycle-module-userprop --user=admin --password-file=admin.pwd 
    --host=serverhost --port=8989 --config=config1 --module=LifecycleTest info=Testing

    CLI 참조 create-lifecycle-module-userprop(1)을 참조하십시오.

    Java 라이프사이클 모듈 등록 정보를 수정하려면 다음 명령을 실행합니다.


    wadm> set-lifecycle-module-prop --user=admin --password-file=admin.pwd 
    --host=serverhost --port=8989 --config=config1 --module=LifecycleTest 
    class-path=/space 

    CLI 참조 set-lifecycle-module-prop(1)를 참조하십시오.


Java 자원 구성

웹 응용 프로그램은 자원 관리자, 데이터 소스(예: SQL 데이터 소스), 전자 메일 세션 및 URL 연결 팩토리 등 다양한 자원에 액세스할 수 있습니다. Java EE 플랫폼은 JNDI(Java Naming and Directory Interface) 서비스를 통해 응용 프로그램이 이러한 자원을 사용할 수 있도록 합니다.

Sun Java System Web Server를 사용하면 다음 Java EE 자원을 만들고 관리할 수 있습니다.

JDBC 자원 구성

JDBC 데이터 소스는 Sun Java System Web Server를 사용하여 만들고 관리할 수 있는 Java EE 자원입니다.

JDBC API는 관계형 데이터베이스 시스템과의 연결을 위한 API입니다. JDBC API는 두 부분으로 이루어집니다.

JDBC 데이터 소스 객체는 Java 프로그래밍 언어로 데이터 소스를 구현한 것입니다. 간단히 말해 데이터 소스는 데이터를 저장하기 쉽게 하는 것입니다. 이는 대규모 기업용의 복잡한 데이터베이스처럼 정교한 것일 수도 있고 행과 열로 이루어진 파일과 같이 간단한 것일 수도 있습니다. JDBC 데이터 소스는 Sun Java System Web Server를 통해 만들고 관리할 수 있는 Java EE 자원입니다.

JDBC API는 일련의 Java용 클래스를 제공하며, 다양한 범위의 관계형 데이터베이스에 동일하게 액세스할 수 있도록 하는 표준 SQL 데이터베이스 액세스 인터페이스를 포함합니다.

JDBC를 사용하면 SQL 문을 거의 모든 데이터베이스 관리 시스템(DBMS)에 보낼 수 있습니다. 또한 관계형 및 객체 DBMS 모두에 대한 인터페이스로 사용됩니다.

JDBC 자원 추가

CLI를 통해 JDBC 자원을 추가하려면 다음 명령을 실행합니다.


wadm> create-jdbc-resource --user=admin --password-file=admin.pwd --host=serverhost
--port=8989 --config=config1 --datasource-class=oracle.jdbc.pool.OracleDataSource jdbc

CLI 참조 create-jdbc-resource(1)를 참조하십시오.

위의 예에서 com.pointbase.jdbc.jdbcDataSource는 JDBC 드라이버 클래스를 나타냅니다.

지원되는 JDBC 드라이버의 목록은 Sun Java System Web Server에서 지원되는 JDBC 드라이버를 참조하십시오.

Sun Java System Web Server에서 지원되는 JDBC 드라이버

다음 표에서는 새 JDBC 자원을 추가할 때 구성해야 하는 공통 JDBC 드라이버 및 해당 등록 정보 목록을 제공합니다. 새 JDBC 자원 추가를 참조하십시오.

표 11–2 공통 및 지원되는 JDBC 드라이버 목록

드라이버

클래스 이름

등록 정보

Oracle 드라이버

oracle.jdbc.pool.OracleDataSource

  • url

  • 사용자

  • 비밀번호

Oracle용 SJS JDBC 드라이버

com.sun.sql.jdbcx.oracle.OracleDataSource

  • 서버 이름

  • 포트 번호

  • 사용자

  • 비밀번호

  • SID

DB2 IBM 드라이버

com.ibm.db2.jdbc.DB2DataSource

  • 서버 이름

  • 데이터베이스 이름

  • 포트 번호

  • 사용자

  • 비밀번호

  • 드라이버 유형

DB2용 SJS JDBC 드라이버

com.sun.sql.jdbcx.db2.DB2DataSource

  • 데이터베이스 이름

  • 위치 이름

  • 패키지 이름

  • 비밀번호

  • 포트 번호

  • 서버 이름

  • 사용자

MS SQLServer 드라이버

com.ddtek.jdbcx.sqlserver.SQLServerDataSource

  • 데이터베이스 이름

  • 비밀번호

  • 사용자

  • 서버 이름

  • 포트 번호

MS용 SJS JDBC 드라이버

com.sun.sql.jdbcx.sqlserver.SQLServerDataSource

  • 데이터베이스 이름

  • 비밀번호

  • 사용자

  • 서버 이름

  • 포트 번호

Sybase 드라이버

com.sybase.jdbcx.SybDataSource

  • 데이터베이스 이름

  • 비밀번호

  • 포트 번호

  • 서버 이름

  • 사용자

Sybase용 SJS JDBC 드라이버

com.sun.sql.jdbcx.sybase.SybaseDataSource

  • 데이터베이스 이름

  • 비밀번호

  • 사용자

  • 포트 번호

  • 서버 이름

MySQL MM 드라이버

org.gjt.mm.mysql.jdbc2.optional.MysqlDataSource

  • 서버 이름

  • 포트

  • 데이터베이스 이름

  • 사용자

  • 비밀번호

Informix 드라이버

com.informix.jdbcx.IfxDataSource

  • 포트 번호

  • 데이터베이스 이름

  • IfxIFXHOST(Informix 데이터베이스를 실행하는 컴퓨터의 IP 주소 또는 호스트 이름)

  • 서버 이름

  • 사용자

  • 비밀번호

Informix용 SJS JDBC 드라이버

com.sun.sql.jdbcx.informix.InformixDataSource

  • 데이터베이스 이름

  • informixServer(연결할 Informix 데이터베이스 서버의 이름)

  • 비밀번호

  • 포트 번호

  • 서버 이름

PostgreSQL 드라이버

org.postgresql.ds.PGSimpleDataSource

  • 서버 이름

  • 데이터베이스 이름

  • 포트 번호

  • 사용자

  • 비밀번호

Apache Derby 드라이버

org.apache.derby.jdbc.EmbeddedDataSource

  • 데이터베이스 이름

  • 사용자

  • 비밀번호

JDBC 자원 관리

Procedure새 JDBC 자원 추가

  1. 구성을 선택합니다.

    구성 목록에서 구성을 선택합니다. 구성 탭을 눌러 목록을 가져옵니다.

  2. Java > 자원 탭을 누릅니다.

  3. JDBC 자원 섹션 아래에 있는 새로 만들기 버튼을 누릅니다.

  4. 드라이버 공급업체를 선택합니다.

    JNDI 이름에 고유한 값을 지정하고 사용 가능한 목록에서 JDBC 드라이버 공급업체를 선택합니다.

  5. JDBC 자원 등록 정보를 제공합니다.

    이전 단계에서 선택한 JDBC 드라이버 공급업체를 기반으로 드라이버의 클래스 이름 및 JDBC자원 등록 정보가 자동으로 채워집니다.

  6. 검토를 수행합니다.

    요약을 보고 마침을 눌러 새 JDBC 자원을 만듭니다.

JDBC 연결 풀 관리

JDBC 연결 풀 구성

Sun Java System Web Server 7.0에서 JDBC 연결 풀은 jdbc-resource 요소를 통해 구성됩니다. 아래의 단계를 수행하여 가장 간단한 형태의 연결 풀을 구성할 수 있습니다. 이 예에서 연결 풀은 Oracle JDBC 드라이버를 사용합니다.

ProcedureJDBC 연결 풀을 만드는 방법

  1. wadm을 시작합니다.

  2. JDBC 자원을 만듭니다.

    기본 구성으로 JDBC 자원을 만듭니다. 다른 속성을 사용하여 연결 풀을 미세 조정할 수 있습니다. 추가 속성 및 예는 설명서 페이지를 참조하십시오.


    wadm> create-jdbc-resource --config=test 
    --datasourceclass=oracle.jdbc.pool.OracleDataSource jdbc/MyPool
  3. 공급업체별 등록 정보를 구성합니다.

    등록 정보는 드라이버의 공급업체별 등록 정보를 구성하는 데 사용됩니다. 아래 예에서는 등록 정보 url, userpassword가 JDBC 자원에 추가됩니다.


    wadm> add-jdbc-resource-userprop --config=test --jndi-name=jdbc/MyPool 
    url=jdbc:oracle:thin:@hostname:1521:MYSID user=myuser password=mypassword
  4. 연결 확인을 활성화합니다.

    풀에 대해 연결 확인을 활성화할 수 있습니다. 이 옵션을 사용하면 연결이 응용 프로그램으로 전달되기 전에 확인 과정을 거칩니다. 따라서 네트워크 고장 또는 데이터베이스 서버 장애로 인해 데이터베이스를 사용할 수 없는 경우 서버가 자동으로 데이터베이스 연결을 다시 설정할 수 있습니다. 연결 확인에는 추가 오버헤드가 필요하므로 성능이 약간 저하될 수 있습니다.


    wadm> set-jdbc-resource-prop --config=test --jndi-name=jdbc/MyPool 
    connection-validation-table-name=test connection-validation=table
  5. 기본 풀 설정을 변경합니다.

    이 예에서는 최대 연결 수를 변경합니다.


    wadm> set-jdbc-resource-prop --config=test --jndi-name=jdbc/MyPool 
    max-connections=100
  6. 구성을 배포합니다.


    wadm> deploy-config test
  7. JDBC 드라이버를 포함하는 Jar 파일을 지정합니다.

    서버에는 드라이버를 구현하는 클래스를 제공해야 합니다. 이 작업은 다음과 같은 두 가지 방법으로 수행할 수 있습니다.

    • 드라이버의 jar 파일을 서버 인스턴스 lib 디렉토리에 복사합니다. 인스턴스 lib 디렉토리에 포함된 jar 파일이 자동으로 로드되어 서버에서 사용할 수 있게 되기 때문에 이 방법이 가장 간단한 방법입니다.

    • JVM의 class-path-suffix가 JDBC 드라이버의 jar 파일을 포함하도록 수정합니다.


      wadm> set-jvm-prop  --config=test class-path-suffix=/export/home/lib/classes12.jar
  8. 웹 응용 프로그램에서의 사용법

    • WEB-INF/web.xml 수정


      <web-app>
      ...
        <resource-ref>
          <description>JDBC Connection Pool</description>
          <res-ref-name>jdbc/myJdbc</res-ref-name>
          <res-type>javax.sql.DataSource</res-type>
          <res-auth>Container</res-auth>
        </resource-ref>
      ...
      </web-app>
    • WEB-INF/sun-web.xml 수정


      <sun-web-app>
      ...
        <resource-ref>
          <res-ref-name>jdbc/myJdbc</res-ref-name>
          <jndi-name>jdbc/MyPool</jndi-name>
        </resource-ref>
      ...
      </sun-web-app>
    • 연결 풀 사용


      Context initContext = new InitialContext();
          Context webContext = (Context)context.lookup("java:/comp/env");
      
          DataSource ds = (DataSource) webContext.lookup("jdbc/myJdbc");
          Connection dbCon = ds.getConnection();

사용자 정의 자원 등록

다음 작업을 수행하여 인스턴스에 사용자 정의 자원을 등록할 수 있습니다.

Procedure사용자 정의 자원을 추가하는 방법

  1. 구성을 선택합니다.

    구성 목록에서 구성을 선택합니다. 구성 탭을 눌러 목록을 가져옵니다.

  2. Java > 자원 탭을 누릅니다.

  3. 사용자 정의 자원 섹션 아래에 있는 새로 만들기 버튼을 누릅니다.

사용자 정의 자원 등록 정보

다음 표에서는 사용자 정의 자원을 만드는 데 사용할 수 있는 등록 정보에 대해 설명합니다.

표 11–3 사용자 정의 자원 등록 정보

등록 정보

설명

JNDI 이름

사용자 정의 자원에 대해 고유한 JNDI 이름을 제공합니다. 

사용 가능

런타임에 이 JDBC 자원을 사용할지 여부를 결정합니다. 

자원 유형

이 자원의 정규화된 유형입니다. 

팩토리 클래스

이 자원 유형을 인스턴스화하는 클래스입니다. javax.naming.spi.ObjectFactory를 구현하는 사용자 작성 팩토리 클래스의 정규화된 이름입니다.

설명

사용자 정의 자원에 대한 간단한 설명을 제공합니다. 

등록 정보

등록 정보 추가 버튼을 눌러 CLI 등록 정보를 제공합니다(선택 사항). 


주 –

CLI 사용

CLI를 통해 사용자 정의 자원을 만들려면 다음 명령을 실행합니다.


wadm> create-custom-resource --user=admin --password-file=admin.pwd --host=serverhost 
--port=8989 --config=config1 --res-type=samples.jndi.customResource.MyBean 
--factory-class=samples.jndi.customResource.MyCustomConnectionFactory custom

CLI 참조 create-custom-resource(1)를 참조하십시오.


외부 JNDI 자원 작업

외부 JNDI 리소스 생성

이 옵션을 사용하여 외부 JNDI(Java Naming and Directory Interface) 자원을 만들 수 있습니다. 내부 JNDI 저장소에 저장된 자원에 액세스하려면 외부 JNDI 자원이 필요합니다.

Procedure외부 JNDI 자원을 추가하는 방법

  1. 구성을 선택합니다.

    구성 목록에서 구성을 선택합니다. 구성 탭을 눌러 목록을 가져옵니다.

  2. Java > 자원 탭을 누릅니다.

  3. 외부 JNDI 섹션 아래에 있는 새로 만들기 버튼을 누릅니다.

외부 JNDI 자원 등록 정보

다음 표에서는 새 외부 JNDI 자원을 추가하는 동안 사용할 수 있는 등록 정보에 대해 설명합니다.

표 11–4 외부 JNDI 자원 등록 정보

등록 정보

설명

JNDI 이름

새 외부 JNDI 자원에 대해 고유한 이름을 제공합니다. 

사용 가능

런타임에 이 외부 JNDI 자원을 사용할지 여부를 결정합니다. 

외부 JNDI 이름

외부 JNDI 자원 이름입니다. 

자원 유형

이 자원의 정규화된 유형입니다. 

팩토리 클래스

이 자원 유형을 인스턴스화하는 클래스입니다. 

설명

사용자 정의 자원에 대한 간단한 설명을 제공합니다. 

등록 정보

등록 정보 추가 버튼을 눌러 CLI 등록 정보를 제공합니다(선택 사항). 


주 –

CLI 사용

CLI를 통해 외부 JNDI 자원을 만들려면 다음 명령을 실행합니다.


wadm> create-external-jndi-resource --user=admin 
--password-file=admin.pwd --host=serverhost --port=8989 --config=config1 
--res-type=org.apache.naming.resources.Resource 
--factory-class=samples.jndi.externalResource.MyExternalConnectionFactory 
--jndilookupname=index.html external-jndi

CLI 참조 create-external-jndi-resource(1)를 참조하십시오.


메일 자원 구성

JMS 대상은 Sun Java System Web Server를 통해 만들고 관리할 수 있는 Java EE 자원입니다.

많은 인터넷 응용 프로그램에는 전자 메일 알림을 보낼 수 있는 기능이 필요하므로 Java EE 플랫폼에는 응용 프로그램 구성 요소가 인터넷 메일을 보낼 수 있게 하는 JavaMail 서비스 공급자와 함께 JavaMail API가 포함되어 있습니다.

Procedure메일 자원을 추가하는 방법

  1. 구성을 선택합니다.

    구성 목록에서 구성을 선택합니다. 구성 탭을 눌러 목록을 가져옵니다.

  2. Java > 자원 탭을 누릅니다.

  3. 메일 자원 섹션 아래에 있는 새로 만들기 버튼을 누릅니다.

메일 자원 등록 정보

다음 표에서는 새 메일 자원을 추가하는 동안 사용할 수 있는 등록 정보에 대해 설명합니다.

표 11–5 메일 자원 등록 정보

등록 정보

설명

JNDI 이름

새 메일 자원에 대해 고유한 이름을 제공합니다. 

사용 가능

런타임에 이 메일 자원을 사용할지 여부를 결정합니다. 

사용자

메일 서버에 등록된 유효한 사용자 이름입니다. 

보낸 사람

서버가 메일을 보낸 전자 메일 주소입니다. 

호스트

메일 서버의 호스트 이름/IP 주소입니다. 

저장소 프로토콜

메시지 검색에 사용된 프로토콜입니다. 

저장소 프로토콜 클래스

저장소 프로토콜에 대한 저장소 서비스 공급자 구현입니다. 저장소 프로토콜을 구현하는 클래스의 정규화된 클래스 이름입니다. 기본 클래스는 com.sun.mail.imap.IMAPStore입니다.

전송 프로토콜

메시지를 보낼 때 사용되는 프로토콜입니다. 

전송 프로토콜 클래스

전송 프로토콜에 대한 전송 서비스 공급자 구현입니다. 전송 프로토콜을 구현하는 클래스의 정규화된 클래스 이름입니다. 기본 클래스는 com.sun.mail.smtp.SMTPTransport입니다.


주 –

CLI 사용

메일 자원을 만들려면 다음 명령을 실행합니다.


wadm> create-mail-resource --config=test --server-host=localhost 
--mail-user=nobody --from=xyz@foo.com mail/Session

CLI 참조 create-mail-resource(1)를 참조하십시오.


SOAP 인증 공급자 구성

컨테이너 사양을 위한 Java Authentication Service 공급자 인터페이스는 인증 기법 공급자가 컨테이너와 통합하는 데 사용할 수 있는 표준 서비스 공급자 인터페이스를 정의합니다. 관리 콘솔을 사용하여 새 SOAP 인증 공급자를 추가할 수 있습니다.

ProcedureSOAP 인증 공급자를 추가하는 방법

  1. 구성을 선택합니다.

    구성 목록에서 구성을 선택합니다. 구성 탭을 눌러 목록을 가져옵니다.

  2. Java > 웹 서비스 탭을 누릅니다.

  3. SOAP 인증 공급자 섹션 아래에 있는 새로 만들기 버튼을 누릅니다.

SOAP 인증 공급자 매개 변수

다음 표에서는 새 SOAP 인증 공급자 페이지에서 사용할 수 있는 매개 변수에 대해 설명합니다.

표 11–6 SOAP 인증 공급자 매개 변수

매개 변수

설명

이름

새 SOAP 인증 공급자의 약식 이름을 입력합니다. 

클래스 이름

공급자를 구현하는 클래스입니다. javax.security.auth.XXX를 구현하는 클래스의 정규화된 클래스 이름입니다.

인증 소스 요청

이 속성은 사용자 이름/비밀번호와 같은 메시지 계층 보낸 사람 인증, 또는 요청 메시지에 적용될 디지털 서명과 같은 내용 인증에 대한 요구 사항을 정의합니다. 값(auth-policy)은 보낸 사람 또는 내용 중 하나입니다. 이 인수를 지정하지 않으면 요청의 소스 인증이 필요하지 않습니다. 

인증 수신자 요청

이 속성은 보낸 사람에 대한 메시지 수신기의 메시지 계층 인증에 대한 요구 사항을 정의합니다(예: XML 암호화). 값은 내용 전 또는 내용 후 중 하나입니다. 

인증 소스 응답

이 속성은 사용자 이름/비밀번호와 같은 메시지 계층 보낸 사람 인증, 또는 응답 메시지에 적용될 디지털 서명과 같은 내용 인증에 대한 요구 사항을 정의합니다. 값(auth-policy)은 보낸 사람 또는 내용 중 하나입니다. 이 인수를 지정하지 않으면 응답의 소스 인증이 필요하지 않습니다. 

인증 수신자 응답

이 속성은 보낸 사람에 대한 응답 메시지 수신기의 메시지 계층 인증에 대한 요구 사항을 정의합니다(예: XML 암호화). 

등록 정보

등록 정보 추가 버튼을 눌러 다른 CLI 등록 정보를 입력합니다. 


주 –

CLI 사용

CLI를 사용하여 SOAP 인증 공급자를 추가하려면 다음 명령을 실행합니다.


wadm> create-soap-auth-provider --user=admin --password-file=admin.pwd 
--host=serverhost --port=8989 --config=config1 
--class-name=javax.security.auth.soapauthprovider soap-auth

CLI 참조 create-soap-auth-provider(1)를 참조하십시오.


세션 복제 구성

Sun Java System Web Server 7.0은 웹 응용 프로그램에 고가용성을 제공하는 세션 복제 기능을 지원합니다. 세션 복제는 하나의 인스턴스에서 같은 클러스터의 다른 서버 인스턴스로 HTTP 세션을 복제하여 이러한 목적을 달성합니다. 따라서 각 HTTP 세션에는 원격 인스턴스에 백업 복사본이 있습니다. 클러스터에서 인스턴스 하나를 사용할 수 없는 장애가 발생하는 경우에도 클러스터의 세션 연속성이 계속 유지됩니다.

Sun Java System Web Server 7.0Sun Java System Web Server 7.0

위 그림은 역방향 프록시가 설정된 네 개의 노드 사이에서 세션 복제가 일어나는 전형적인 시나리오를 보여줍니다. Web Server C가 오프라인 상태가 되면 Web Server B에서 Web Server D로 세션 데이터가 복제됩니다.

세션 복제 설정

이 절에서는 선택한 구성에 대해 세션 복제 등록 정보를 설정하는 절차에 대해 설명합니다.

Procedure세션 복제를 설정하는 방법

  1. 구성을 선택합니다.

    구성 목록에서 구성을 선택합니다. 구성 탭을 눌러 목록을 가져옵니다.

  2. Java > 세션 복제를 누릅니다.

세션 복제 매개 변수 수정

다음 표에서는 세션 복제 페이지에서 사용할 수 있는 매개 변수에 대해 설명합니다.

표 11–7 세션 복제 매개 변수

매개 변수

설명

포트

Administration Server가 수신하고 있는 포트 번호입니다. 기본 포트는 8888입니다. 

사용 가능

선택한 구성에 대해 세션 복제를 활성화합니다. 

암호화

복제에 앞서 세션 데이터를 암호화할지 여부를 지정합니다. 기본값은 false입니다. 

암호

클러스터 구성원이 세션 데이터 복제를 위해 사용하는 암호 제품군(알고리즘, 모드, 채우기)입니다. 

Getatrribute 트리거 복제

HttpSession.getAttribute 메소드 호출로 세션이 백업되어야 하는지 여부를 지정합니다. 기본값은 true입니다.

복제본 검색 최대 홉 수

세션의 백업 검색을 시도하는 동안 연결해야 할 최대 인스턴스 수입니다. 값의 범위는 1 - 2147.0483647.0이며 제한이 없는 경우에는 -1입니다. 

시작 검색 시간 초과

지정된 백업 인스턴스에 연결을 시도할 때 인스턴스가 소요할 최대 시간(초)입니다. 값의 범위는 0.001 - 3600입니다. 

쿠키 이름

세션이 있는 인스턴스를 추적하는 쿠키의 이름을 입력합니다. 

인증 영역 관리

Java EE 기반 보안 모델은 사용자를 확인하고 인증하는 보안 영역을 제공합니다.

인증 프로세스는 Java 영역을 통하여 사용자를 검증합니다. 영역은 일련의 사용자, 그룹 매핑(선택) 및 인증 요청을 검증할 수 있는 인증 로직으로 구성됩니다. 구성된 영역에서 인증 요청이 검증되고 보안 컨텍스트가 설정되면 이 아이디가 모든 후속 인증 결정에 적용됩니다.


주 –

Java 영역은 auth-db(인증 데이터베이스)와 비슷하지만 auth-db는 ACL 엔진(ACL 파일에 있는 규칙 기반)에서 사용되는 반면 Java 영역은 Java 서블릿 액세스 제어 규칙(각 웹 응용 프로그램의 web.xml에서 지정)에서 사용됩니다.


서버 인스턴스의 구성된 영역 수에는 제한이 없습니다. 구성 정보는 server.xml 파일의 auth-realm 요소에 있습니다.

다음 표에서는 Sun Java System Web Server 7.0에서 지원되는 여러 영역 유형에 대해 정의합니다.

표 11–8 영역 유형

영역

설명

파일

file 영역은 Sun Java System Web Server를 처음 설치할 때 기본적으로 설정되는 영역입니다. 이 영역은 설정이 쉽고 간단하여 개발자에게 매우 편리합니다.

file 영역은 텍스트 파일에 저장된 사용자 데이터를 기준으로 사용자를 인증합니다. Java 영역은 auth-db(인증 데이터베이스)와 비슷하지만 auth-db는 ACL 엔진(ACL 파일에 있는 규칙 기반)에서 사용되는 반면 Java 영역은 Java 서블릿 액세스 제어 규칙(각 웹 응용 프로그램의 web.xml에서 지정)에서 사용됩니다.

LDAP

ldap 영역을 통해 사용자 보안 정보용 LDAP 데이터베이스를 사용할 수 있습니다. LDAP 디렉토리 서비스는 고유한 아이디를 가진 속성의 모음입니다. ldap 영역은 작업 시스템 배포에 이상적입니다.

ldap 영역에 대해 사용자를 인증하려면 LDAP 디렉토리에 원하는 사용자를 만들어야 합니다. Administration Server의 사용자 및 그룹 탭에서 이 작업을 실행할 수 있습니다. 이 작업은 LDAP 디렉토리 제품의 사용자 관리 콘솔에서도 수행할 수 있습니다.

PAM

PAM(Solaris) 영역은 인증을 Solaris PAM 스택에 위임합니다. PAM auth-db와 마찬가지로 이 영역은 Solaris 9 및 10에서만 지원되며 서버 인스턴스가 루트로 실행 중이어야 합니다.  

인증서

인증서 영역은 SSL 인증을 지원합니다. 인증서 영역은 Sun Java System Web Server의 보안 컨텍스트에 사용자 신분을 설정하며 클라이언트 인증서에 있는 사용자 데이터를 입력합니다. 그럼 다음 Java EE 컨테이너는 각 사용자의 인증서에 있는 사용자 DN을 기준으로 인증 프로세스를 처리합니다. 이 영역은 X.509 인증서를 통한 SSL 또는 TLS 클라이언트 인증으로 사용자를 인증합니다.

원시

native 영역은 특별 영역으로, 핵심 ACL 기반 인증 모델과 Java EE/서블릿 인증 모델을 연결하는 역할을 합니다. Java 웹 응용 프로그램용 원시 영역을 사용하여 ACL 하위 시스템이 인증을 수행할 수 있도록 할 뿐 아니라 Java 웹 응용 프로그램에서 이를 사용할 수 있도록 합니다.

인증 작업이 시작되면 원시 영역이 이 인증을 해당 핵심 인증 하위 시스템에 위임합니다. 사용자 관점에서 예를 들자면, 이는 구성된 LDAP 서버에 인증을 위임하는 LDAP 영역과 같습니다. 원시 영역이 그룹 구성원 조회를 처리하는 경우에도 핵심 인증 하위 시스템에 이 작업을 위임합니다. Java 웹 모듈 및 개발자의 관점에서 원시 영역은 웹 모듈과 함께 사용할 수 있는 기타 Java 영역과 다르지 않습니다. 

사용자 정의

Oracle 등의 기타 데이터베이스용 영역을 구축하면 플러그인 가능한 JAAS 로그인 모듈과 영역 구현을 사용하여 필요에 맞는 영역을 만들 수 있습니다. 

다음 절에서는 새 인증 영역 추가와 관련된 단계에 대해 설명합니다.

Procedure인증 영역을 추가하는 방법

  1. 구성을 선택합니다.

    새 인증 영역을 추가할 구성을 선택합니다. 구성 탭을 누른 다음 구성을 선택합니다.

  2. Java > 보안 탭을 누릅니다.

  3. 새 인증 버튼을 누릅니다.

  4. 영역 상세 정보를 입력합니다.

    • 이름 — 영역의 약식 이름을 입력합니다. 이 이름은 web.xml 등에서 영역을 참조하는 데 사용됩니다.

    • 클래스 — 사용자 정의 영역을 구성하는 경우 사용자 정의 영역을 구현하는 전체 Java 클래스 이름을 입력합니다. 내장 영역에 대해서는 클래스를 입력할 필요가 없습니다.

    • 유형 — 영역 유형을 선택합니다. Java 영역 유형에 대해 설명한 이전 절을 참조하십시오.

    • 등록 정보 — 영역별 등록 정보를 추가합니다. 예를 들면 property name="file" value="instance_dir/config/keyfile" and property name="jaas-context" value="fileRealm과 같습니다.


    주 –

    CLI 사용

    CLI를 통해 인증 영역을 추가하려면 다음 명령을 실행합니다.


    wadm> create-auth-realm --user=admin --password-file=admin.pwd --host=serverhost 
    --port=8989 --config=config1 basic

    CLI 참조 create-auth-realm(1)을 참조하십시오.

    내장 인증 영역 유형의 이름을 지정합니다. 유형은 file, ldap, pam, native 또는 certificate가 될 수 있습니다.