제2장 JEUS 설정

내용 목차

2.1. 개요
2.2. 서버 추가
2.2.1. WebAdmin 사용
2.2.2. 콘솔 툴 사용
2.3. 서버 설정
2.3.1. 환경변수 설정
2.3.2. 기본 설정
2.3.3. Listener 설정
2.3.4. Thread Pool 설정
2.3.5. Lifecycle Invocation 설정
2.3.6. Resource Reference 설정
2.3.7. Server Template 설정

본 장에서는 도메인에 서버를 추가하는 방법과 서버를 추가할 때 꼭 필요한 설정에 대해서 설명한다. 또한 서버에 설정을 변경할 때의 동작 방법에 대해서 설명한다.

2.1. 개요

JEUS에서는 WebAdmin과 콘솔 툴을 통해 서버의 설정을 변경할 수 있다. 서버의 엔진에서 동작하는 애플리케이션이 보안 인증과 권한 검사를 필요로 하지 않는다면 JEUS에서 보안 기능을 사용하지 않도록 설정한다.

위와는 별도로 하위 구성 요소들에 대한 튜닝도 확인해야 한다. 이에 대한 설명은 각 구성 요소에 대한 장을 참고한다.

2.2. 서버 추가

본 절에서는 WebAdmin과 콘솔 툴을 통해 도메인에 서버를 추가하는 방법과 서버를 추가할 때 반드시 필요로 하는 최소 설정에 대해 설명한다. 서버 설정에 대한 자세한 내용은 “2.3. 서버 설정”을 참고한다.

WebAdmin을 사용해서 서버를 추가할 경우에는 서버의 모든 설정을 추가할 수 있다. 그러나 콘솔 툴을 통해 명령어를 사용해서 서버를 추가할 경우에는 서버의 모든 설정을 추가할 수 없다.

2.2.1. WebAdmin 사용

다음은 WebAdmin을 사용해서 서버를 추가하는 과정에 대한 설명이다.

  1. WebAdmin의 왼쪽 메뉴에서 [Servers]를 선택하면 서버 목록 화면으로 이동한다.

    [그림 2.1] WebAdmin 서버 목록 화면

    WebAdmin 서버 목록 화면


  2. 서버를 추가하려면 설정 변경을 위한 Lock을 가져오는 작업이 선행되어야 한다. 서버를 추가하기 전에 왼쪽 메뉴의 하단에 위치한 [LOCK & EDIT] 버튼을 클릭해서 동적 설정 변경 모드로 전환한다.

  3. 서버 목록 화면([그림 2.1])에 [ADD] 버튼을 클릭하면 서버 설정 화면으로 이동한다. 서버 설정 화면에서 추가할 서버의 이름과 'Jvm Option'을 설정하고 [확인] 버튼을 클릭한다.

    [그림 2.2] WebAdmin 서버 설정 화면 - 서버 추가

    WebAdmin 서버 설정 화면 - 서버 추가

    필요한 경우 서버의 고급 선택사항을 설정한다. 서버를 추가할 때 이 설정이 반드시 필요하지 않기 때문에 상세한 항목 설정은 하지 않는다.

    [그림 2.3] WebAdmin 서버 설정 화면 - 고급 선택사항

    WebAdmin 서버 설정 화면 - 고급 선택사항


    다음은 주요 설명 항목에 대한 설명이다. 각 설정 항목에 대한 자세한 내용은 화면의 설명을 참고한다.

    항목설명
    Log Home각종 로그들이 저장되는 경로를 지정한다. 자세한 설명은 “8.2. JEUS 로거 기본 구조”를 참고한다.
    Node Name추가할 서버가 속하는 노드의 이름을 설정한다. 노드 매니저에 대한 자세한 내용은 "JEUS Node Manager 안내서"를 참고한다.
    Group서버 관리를 위한 그룹을 설정한다. WebAdmin에서 그룹별로 서버를 관리할 수 있다.
    Action On Resource Leak설정에 대한 자세한 내용은 “2.3.2.2. Action On Resource Leak 설정”을 참고한다.
    Data Source Remote LookupRemote JVM 상에서의 데이터소스 Lookup이 가능하도록 한다. 데이터소스 Lookup을 통해 Remote JVM에서 Connection Pool을 구성하여 사용하던 기존 Standalone Client를 지원할 수 있다.
    Engine Init On Startup

    서버 내부의 엔진들(Web, EJB, JMS)의 초기화 시점을 설정한다. 자세한 설명은 “3.2.2. 엔진 초기화 시점 설정”을 참고한다.

    이 부분이 체크되면 서버가 초기화 될 때 내부 엔진들도 함께 초기화되고, 체크되지 않았을 경우에는 각 엔진별로 애플리케이션이 deploy될 경우에 초기화된다. 단, JMS 엔진의 경우 EJB 애플리케이션이 MDB(Message Driven Bean)일 경우에 애플리케이션이 deploy될 때 초기화된다. 이 설정은 서버를 재기동해야 적용된다.

    Use Web Engine

    서버 내부의 웹 애플리케이션을 사용하기 위한 내부 엔진의 사용 여부를 설정한다. 자세한 설명은 “3.2.1. 엔진 사용 여부 설정”을 참고한다.

    사용하지 않음으로 설정하고 웹 애플리케이션을 deploy를 하면 deploy는 실패한다. 이 설정은 서버를 재기동해야 적용된다.

    Use Ejb Engine서버 내부의 EJB 애플리케이션을 사용하기 위한 내부 엔진의 사용 여부를 설정한다. 자세한 설명은 “3.2.1. 엔진 사용 여부 설정”을 참고한다.
    Use Jms Engine서버 내부의 JMS 서비스를 사용하기 위한 내부 엔진의 사용 여부를 설정한다. 자세한 설명은 “3.2.1. 엔진 사용 여부 설정”을 참고한다.
    Managed Executor Service

    Concurrency Utilities for Java EE(JSR-236) 스펙에서 사용할 ManagedExecutorService를 설정한다.

    애플리케이션 서버가 리소스 및 컨텍스트를 관리하는 ExecutorService 상에서 작업을 실행할 수 있다. 자세한 설명은 JEUS Concurrency Utilities 안내서”의 “제2장 Managed Objects”를 참고한다.

    Managed Scheduled Executor Service

    Concurrency Utilities for Java EE(JSR-236) 스펙에서 사용할 ManagedScheduledExecutorService를 설정한다.

    애플리케이션 서버가 리소스 및 컨텍스트를 관리하는 ScheduledExecutorService 상에서 주기적인 작업을 실행할 수 있다. 자세한 설명은 JEUS Concurrency Utilities 안내서”의 “제2장 Managed Objects”를 참고한다.

    Context Service

    Concurrency Utilities for Java EE(JSR-236) 스펙에서 사용할 ContextService를 설정한다.

    작업(Task) 자체를 Dynamic Proxy 기술을 통해 컨텍스트를 유지시켜준다. 자세한 설명은 JEUS Concurrency Utilities 안내서”의 “제2장 Managed Objects”를 참고한다.

    Managed Thread Factory

    Concurrency Utilities for Java EE(JSR-236) 스펙에서 사용할 ManagedThreadFactory를 설정한다.

    해당 ThreadFactory에서 생성된 스레드 상에서 동작하는 작업(Task)들의 Context가 유지된다. 자세한 설명은 JEUS Concurrency Utilities 안내서”의 “제2장 Managed Objects”를 참고한다.

  4. 변경한 설정 내용이 저장되고 결과 메시지가 상단에 표시된다.

    [그림 2.4] WebAdmin Server 설정 화면 - 서버 추가 결과

    WebAdmin Server 설정 화면 - 서버 추가 결과


  5. 기본 정보 화면 상단에 메뉴에서 [Basic] > [System Thread Pool]을 선택하면 System Thread Pool 설정 화면으로 이동한다. 해당 화면에서 'Max' 값을 변경하고 [확인] 버튼을 클릭한다.

    [그림 2.5] 서버 추가 - System Thread Pool 설정

    서버 추가 - System Thread Pool 설정


  6. 변경한 설정 내용이 저장되면 결과 메시지가 상단에 표시된다.

    [그림 2.6] 서버 추가 - System Thread Pool 저장

    서버 추가 - System Thread Pool 저장


  7. System Thread Pool 저장이 완료되면 다음은 서버의 Listener 정보를 설정해야 한다.

    [Resource] > [Listener] 메뉴를 선택하면 Listener 목록 화면으로 이동한다. Listener 목록에서 [ADD] 버튼을 클릭하여 서버의 기본 Listener를 생성한다.

    [그림 2.7] 서버 추가 - 기본 Listener 추가

    서버 추가 - 기본 Listener 추가


  8. 서버의 기본 Listener의 이름과 필요할 경우 서버가 참조할 주소와 포트 번호를 입력하고 [확인] 버튼을 클릭한다. 예제 화면에선 따로 'Listen Address'를 입력하지 않는다.

    [그림 2.8] 서버 추가 - 기본 Listener 정보 설정

    서버 추가 - 기본 Listener 정보 설정


  9. 변경한 설정 내용이 저장되고 화면 상단에 결과 메시지가 나타난다. 화면의 Listener 목록에 Listener가 추가된 것을 확인할 수 있다.

    [그림 2.9] 서버 추가 - 기본 Listener 정보 설정 저장

    서버 추가 - 기본 Listener 정보 설정 저장


  10. 추가한 Listener를 기본 Listener로 설정한다. 'Base' 항목에서 추가한 Listener를 선택한다.

    [그림 2.10] 서버 추가 - 기본 Listener 설정

    서버 추가 - 기본 Listener 설정


    [확인] 버튼을 클릭하면 서버에 변경 결과가 저장되고 다음과 같은 메시지가 나타난다. 설정 정보는 임시 저장이 되고 서버에 실제 적용된 것은 아님을 유의해야 한다.

    [그림 2.11] 서버 추가 - 기본 Listener 설정 저장

    서버 추가 - 기본 Listener 설정 저장


  11. [Engine] 탭을 선택해서 [Web Engine], [Jms Engine], [Ejb Engine] 메뉴를 선택해서 엔진의 정보를 설정한다.

    [그림 2.12] 서버 추가 - 웹 엔진 설정

    서버 추가 - 웹 엔진 설정


  12. 각 단계별 설정이 완료되면 [Activate Changes] 버튼을 클릭해서 지금까지 서버를 추가하고 변경한 서버 설정들을 적용한다.

    [그림 2.13] 서버 추가 - 설정 정보 반영 (1)

    서버 추가 - 설정 정보 반영 (1)


    [Activate Changes] 버튼을 클릭하면 다음과 같은 Activate를 확인할 수 있는 팝업 화면이 나타난다. [확인] 버튼을 클릭하면 수정한 결과가 반영된다.

    [그림 2.14] 서버 추가 - 설정 정보 반영 (2)

    서버 추가 - 설정 정보 반영 (2)


  13. 실제 DAS에서 Activate가 완료되면 도메인에 서버가 추가된다. 그리고 서버 추가에 대한 결과가 WebAdmin 화면 상단에 자세한 메시지로 출력된다.

    [그림 2.15] 서버 추가 - 설정 정보 반영 (3)

    서버 추가 - 설정 정보 반영 (3)


    Activate가 성공하면 결과를 반영하고 난 후 설정 변경 Lock 설정을 해제한다. 화면에 다시 [LOCK & EDIT] 버튼이 나타난 것을 확인할 수 있다. Lock 설정과 관련된 자세한 내용은 "JEUS WebAdmin 안내서"를 참고한다.

  14. WebAdmin의 왼쪽 메뉴에서 [Servers]를 선택해서 서버 목록 조회 화면으로 이동하면 새로 추가된 서버를 확인할 수 있다.

    [그림 2.16] 서버 추가 - 신규 서버 목록 확인

    서버 추가 - 신규 서버 목록 확인


    참고

    추가된 서버를 시작하기 위해서는 해당 서버가 설치된 노드의 노드 매니저가 동작 중이어야 한다. 노드 매니저에 대한 설명은 "JEUS Node Manager 안내서"를 참고한다.

  15. 서버를 시작하려면 서버 목록 화면([그림 2.16])의 'Command' 컬럼의 [start] 버튼을 클릭한다. 여러 개의 서버를 시작하려면 서버 목록의 체크박스를 선택한 후 서버 목록 아래의 [start] 버튼을 클릭한다.

    서버 시작을 위한 설정 화면에서 설정 항목을 선택한 후 [확인] 버튼을 클릭한다. 서버 시작 설정과 관련된 자세한 내용은 “3.1.2. Managed Server 시작”을 참고한다.

    [그림 2.17] 서버 추가 - 신규 서버 실행 (1)

    서버 추가 - 신규 서버 실행 (1)


  16. 서버가 시작되면 다음과 같이 화면 상단에서 서버 시작 결과에 대한 메시지를 확인할 수 있다. 또한 서버의 상태가 'RUNNING'으로 바뀐 것을 확인할 수 있다.

    [그림 2.18] 서버 추가 - 신규 서버 실행 (2)

    서버 추가 - 신규 서버 실행 (2)


2.2.2. 콘솔 툴 사용

콘솔 툴에서는 add-server 명령어를 통해 서버를 추가할 수 있다. 하지만 이 명령어로는 몇 가지 설정에 대해서만 추가할 수 있기 때문에 서버를 추가하고 난 뒤에 별도의 명령어들을 통해 통해 설정을 변경해야 한다. 만약 엔진 설정을 변경하는 경우 웹 엔진, EJB 엔진, JMS 엔진 명령어를 사용한다.

참고

웹 엔진 설정을 변경하는 명령어(JEUS Reference Book”의 “4.2.8. 웹 엔진 관련 명령어”), EJB 엔진 설정을 변경하는 명령어(JEUS Reference Book”의 “4.2.7. EJB 엔진 관련 명령어”), JMS 엔진 설정을 변경하는 명령어(JEUS Reference Book”의 “4.2.10. JMS 엔진 관련 명령어”)에 대한 자세한 설명은 관련 안내서를 참고한다.

다음은 콘솔 툴에서 서버를 추가하는 예제이다.

[DAS]domain1.adminServer>serverinfo
Information about Domain (domain1)
================================================================================
+-------+---------+-----+-----+-----+------------+--------+-----------+--------+
| Server|  Status |Node | PID | Clu |   Latest   |  Need  |   Listen  |Running |
|       |         |Name |     |ster | Start Time |   to   |   Ports   |Engines |
|       |         |     |     |     | / Shutdown |Restart |           |        |
|       |         |     |     |     |    Time    |        |           |        |
+-------+---------+-----+-----+-----+------------+--------+-----------+--------+
| admin | RUNNING | nod | 116 | N/A | 2016-08-24 | false  | base-0.0. | jms,   |
|Server |(00:03:1 |e1   |35   |     | (수) 오전   |        |0.0:9736   |ejb, web|
|(*)    |2)       |     |     |     |11:09:58 KST|        | http-serv |        |
|       |         |     |     |     |            |        |er-0.0.0.0 |        |
|       |         |     |     |     |            |        |:8088      |        |
|       |         |     |     |     |            |        | jms-0.0.0 |        |
|       |         |     |     |     |            |        |.0:9741    |        |
+-------+---------+-----+-----+-----+------------+--------+-----------+--------+
| serve | RUNNING | nod | 118 | N/A | 2016-08-24 | false  | base-0.0. | jms,   |
|r1     |(00:01:4 |e1   |08   |     | (수) 오전   |        |0.0:9836   |ejb, web|
|       |8)       |     |     |     |11:11:22 KST|        |           |        |
+-------+---------+-----+-----+-----+------------+--------+-----------+--------+
================================================================================

[DAS]domain1.adminServer>>add-server server2 -addr 192.168.15.59 -baseport 9936 -node node1 -jvm "-Xmx512m -XX:MaxPermSize=128m"
Successfully performed the ADD operation for server (server2).
Check the results using "list-servers or add-server".

[DAS]domain1.adminServer>>modify-system-thread-pool server2 -max 200
Successfully performed the MODIFY operation for the system thread pool of the server (server2), but all changes were non-dynamic. They will be applied after restarting.
Check the results using "modify-system-thread-pool server2 or show-system-thread-pool server2".

[DAS]domain1.adminServer>>serverinfo
Information about Domain (domain1)
================================================================================
+-------+---------+-----+-----+-----+------------+--------+-----------+--------+
| Server|  Status |Node | PID | Clu |   Latest   |  Need  |   Listen  |Running |
|       |         |Name |     |ster | Start Time |   to   |   Ports   |Engines |
|       |         |     |     |     | / Shutdown |Restart |           |        |
|       |         |     |     |     |    Time    |        |           |        |
+-------+---------+-----+-----+-----+------------+--------+-----------+--------+
| admin | RUNNING | nod | 116 | N/A | 2016-08-24 | false  | base-0.0. | jms,   |
|Server |(01:35:1 |e1   |35   |     | (수) 오전   |        |0.0:9736   |ejb, web|
|(*)    |2)       |     |     |     |11:09:58 KST|        | http-serv |        |
|       |         |     |     |     |            |        |er-0.0.0.0 |        |
|       |         |     |     |     |            |        |:8088      |        |
|       |         |     |     |     |            |        | jms-0.0.0 |        |
|       |         |     |     |     |            |        |.0:9741    |        |
+-------+---------+-----+-----+-----+------------+--------+-----------+--------+
| serve | RUNNING | nod | 118 | N/A | 2016-08-24 | false  | base-0.0. | jms,   |
|r1     |(01:33:4 |e1   |08   |     | (수) 오전   |        |0.0:9836   |ejb, web|
|       |8)       |     |     |     |11:11:22 KST|        |           |        |
+-------+---------+-----+-----+-----+------------+--------+-----------+--------+
| serve | SHUTDOWN| nod | N/A | N/A | N/A        | N/A    | N/A       | N/A    |
|r2     |         |e1   |     |     |            |        |           |        |
+-------+---------+-----+-----+-----+------------+--------+-----------+--------+
================================================================================

[DAS]domain1.adminServer>>start-server server2
The server(server2) was successfully started. The server is [RUNNING]

[DAS]domain1.adminServer>>serverinfo
Information about Domain (domain1)
================================================================================
+-------+---------+-----+-----+-----+------------+--------+-----------+--------+
| Server|  Status |Node | PID | Clu |   Latest   |  Need  |   Listen  |Running |
|       |         |Name |     |ster | Start Time |   to   |   Ports   |Engines |
|       |         |     |     |     | / Shutdown |Restart |           |        |
|       |         |     |     |     |    Time    |        |           |        |
+-------+---------+-----+-----+-----+------------+--------+-----------+--------+
| admin | RUNNING | nod | 116 | N/A | 2016-08-24 | false  | base-0.0. | jms,   |
|Server |(01:35:3 |e1   |35   |     | (수) 오전   |        |0.0:9736   |ejb, web|
|(*)    |8)       |     |     |     |11:09:58 KST|        | http-serv |        |
|       |         |     |     |     |            |        |er-0.0.0.0 |        |
|       |         |     |     |     |            |        |:8088      |        |
|       |         |     |     |     |            |        | jms-0.0.0 |        |
|       |         |     |     |     |            |        |.0:9741    |        |
+-------+---------+-----+-----+-----+------------+--------+-----------+--------+
| serve | RUNNING | nod | 118 | N/A | 2016-08-24 | false  | base-0.0. | jms,   |
|r1     |(01:34:1 |e1   |08   |     | (수) 오전   |        |0.0:9836   |ejb, web|
|       |3)       |     |     |     |11:11:22 KST|        |           |        |
+-------+---------+-----+-----+-----+------------+--------+-----------+--------+
| serve | RUNNING | nod | 136 | N/A | 2016-08-24 | false  | base-192. | jms,   |
|r2     |(00:00:0 |e1   |60   |     | (수) 오후   |        |168.15.59: |ejb, web|
|       |9)       |     |     |     |12:45:27 KST|        |9936       |        |
+-------+---------+-----+-----+-----+------------+--------+-----------+--------+
================================================================================  

2.3. 서버 설정

서버 설정은 WebAdmin이나 콘솔 툴 사용 설정 가능하다. 콘솔 툴의 경우는 WebAdmin에서처럼 서버의 모든 설정을 변경할 수는 없다. 콘솔 툴에서는 사용자가 많이 사용하는 주요 설정만 사용할 수 있도록 한다. 콘솔 툴에서 변경할 수 없는 설정은 WebAdmin을 통해서 변경해야 한다.

2.3.1. 환경변수 설정

본 절에서는 서버 및 JEUS에서 제공하는 각종 콘솔 툴들이 동작하기 위해 필요한 환경변수에 대하여 설명한다. 환경변수는 WebAdmin이나 콘솔 툴을 통한 설정을 지원하지 않는다.

JEUS가 동작하기 위하여 필요한 환경변수는 설치할 때 UNIX 환경인 경우 JEUS_HOME/bin/jeus.properties, Windows 환경인 경우 JEUS_HOME\bin\jeus.properties.cmd 파일에 자동적으로 기본값이 설정된다. 해당 파일들은 각 운영체제 계열에서 제공하는 쉘 스크립트로 작성되어 있으며, 필요한 경우 사용자가 해당 파일을 수정하여 환경변수를 추가하거나 수정할 수 있다.

참고

쉘 스크립트를 작성하는 방법이나 환경변수를 변경하는 방법은 OS에 따라 다르므로, 이에 대해서는 각 OS 안내서를 참고한다.

JEUS에서 사용하는 주요 환경변수에 대한 목록은 다음과 같다.

환경변수설명
JEUS_HOMEJEUS 설치 디렉터리를 설정한다. (예: /home/jeus)
JEUS_LIBPATHJEUS 라이브러리 파일 경로를 설정한다. (예: /home/jeus/lib/system)
VM_TYPEJava HotSpot JVM 사용 유무를 설정한다. (예: hotspot or old)
USERNAMEAdministrator 계정의 ID를 설정한다.
PASSWORDAdministrator 패스워드를 설정한다.
JAVA_HOMEJDK 설치 디렉터리 경로를 설정한다. (예: /usr/jdk1.7)
JAVA_ARGSJDK 파라미터를 설정한다.
JAVA_VENDORJDK 벤더를 설정한다. (예: Sun, IBM, HP)

jeus.properties에 지정한 환경변수는 해당 스크립트를 참조하여 실행하는 모든 서버 및 툴에 적용된다.

서버별로 환경변수를 다르게 지정하려면 다음과 같은 과정을 수행한다.

  1. 다음의 경로에 각 운영체제별로 환경변수 파일 또는 셸 스크립트 파일을 생성한다.

    • UNIX 환경

      JEUS_HOME/bin/<SERVER_NAME>.properties
    • Windows 환경

      JEUS_HOME\bin\<SERVER_NAME>.properties.cmd
  2. 각 운영체제별로 생성한 파일(과정 1)을 수정하여 환경변수를 지정한다. 파일을 작성할 때 jeus.properties 또는 jeus.properties.cmd 파일을 참고한다.

    다음은 각 운영체제별 환경변수 파일의 예이다.

    • UNIX 환경

      # set up JAVA_HOME
      JAVA_HOME=/usr/java/jdk1.8.0_181
      
      # set up user name
      USERNAME=administrator
      
      # set up password
      PASSWORD=jeus
    • Windows 환경

      rem setup JAVA_HOME
      SET JAVA_HOME=C:\Java\jdk1.8.0_181\jre\..
      
      rem setup user name
      SET USERNAME=jeus
      
      rem setup password
      SET PASSWORD=jeus
  3. 서버 기동 스크립트를 사용하여 서버를 기동하는 경우 - server 옵션을 사용하여 서버 이름을 지정한다.

    다음은 각 운영체제별 서버 기동하는 예제이다.

    • UNIX 환경

      JEUS_HOME/bin$startDomainAdminServer -server adminServer
    • Windows 환경

      JEUS_HOME\bin>startDomainAdminServer.cmd -server adminServer

    참고

    노드 매니저를 사용하여 서버를 기동하는 경우에는 서버 기동 스크립트를 실행하지 않기 때문에 서버별로 환경변수를 지정하는 기능을 사용할 수 없다.

2.3.2. 기본 설정

본 절에서는 기본적인 설정에 대해서 설명한다. 설명하지 않은 설정들에 대해서는 관련 서비스에 대한 안내서를 참고한다.

2.3.2.1. 기본 설정 동적으로 변경

서버의 기본 설정 중 Class FTP, Use MEJB, Log Stdout To Raw Format은 동적 변경 가능하다. 동적 반영되는 설정은 WebAdmin에서는 아이콘()을 통해 확인할 수 있고, 콘솔 툴에서는 help 명령어를 통해 modify-server 명령어를 실행하면 조회할 수 있다. 각 명령어에 대한 자세한 내용은 "JEUS Reference Book"을 참고한다.

WebAdmin 사용

다음은 WebAdmin을 통해 동적 변경이 가능한 기본 설정들을 변경하는 과정에 대한 설명이다.

  1. WebAdmin의 왼쪽 메뉴에서 [Servers]를 선택하면 서버 목록 화면으로 이동한다.

  2. 서버 목록에서 설정할 서버(server1)를 선택하면 서버 설정 화면으로 이동한다. 설정 화면에서 [Basic] 탭을 선택한다.

  3. 설정 변경을 위해서는 Lock을 가져오는 작업이 선행되어야 한다. 왼쪽 메뉴의 하단에 위치한 [LOCK & EDIT] 버튼을 클릭해서 동적 설정 변경 모드로 전환한다.

  4. 고급 선택사항에서 'Use MEJB', 'Log Stdout To Raw Format' 항목을 설정한다.

  5. 설정이 완료되면 [확인] 버튼을 클릭한다. 설정 정보의 반영을 위해서 [Activate Chages] 버튼을 클릭한다.

  6. 설정 변경의 결과로 화면 상단에 설정 변경 결과 메시지가 출력된다. 'Use MEJB', 'Log Stdout To Raw Format' 설정이 변경되고 서버에 반영된 것을 확인할 수 있다.

콘솔 툴 사용

다음은 콘솔 툴 사용 동적 변경 가능한 기본 설정을 변경하는 예이다.

[DAS]domain1.adminServer>>modify-server server2
Shows the current configuration.
server (server2)
================================================================================
+-----------------------------------+------------------------------------------+
| Node                              | node1                                    |
| JVM Configs                       | -Xmx512m -XX:MaxPermSize=128m            |
| Action On Resource Leak           | WARNING                                  |
| Stdout to Raw Format              | true                                     |
| MEJB                              | false                                    |
| Class FTP                         | false                                    |
| Server Log Home Directory         | none                                     |
+-----------------------------------+------------------------------------------+
================================================================================

[DAS]domain1.adminServer>>modify-server server2 -logStdoutToRawFormat false -mejb true -classFtp true
Successfully performed the MODIFY operation for server (server2), but all changes were non-dynamic. They will be applied after restarting.
Check the results using "list-servers server2 or modify-server server2".

[DAS]domain1.adminServer>>modify-server server2
Shows the current configuration.
server (server2)
================================================================================
+-----------------------------------+------------------------------------------+
| Node                              | node1                                    |
| JVM Configs                       | -Xmx512m -XX:MaxPermSize=128m            |
| Action On Resource Leak           | WARNING                                  |
| Stdout to Raw Format              | false                                    |
| MEJB                              | true                                     |
| Class FTP                         | true                                     |
| Server Log Home Directory         | none                                     |
+-----------------------------------+------------------------------------------+
================================================================================ 

2.3.2.2. Action On Resource Leak 설정

Action On Resource Leak은 서버에서 사용되는 리스소가 닫혔는지 여부를 확인해서 설정한 동작을 수행하고 사용자에게 Resource Leak이 있다는 것을 알려주는 기능이다. 서버에서 이런 역할을 담당하는 것을 Invocation Manager라고 한다.

Invocation Manager는 서버에서 Servlet/JSP, EJB Stateless Session Bean, 그리고 MDB와 같은 Stateless 메소드를 호출하는 동안 사용하는 외부 리소스(external resource)인 JDBC Connection과 WebT Connection을 추적하여 커넥션이 닫히지 않은 경우 모드에 따라 사용하는 리소스에 대해 logging을 남기거나 반환하는 작업을 한다. 이 구성요소를 위해 3가지 모드 중 하나를 선택할 수 있다.

모드설명
NoAction반환되지 않은 리소스가 있더라도 아무런 동작을 하지 않는다.
Warning

컴포넌트 호출 후에 반환되지 않은 리소스에 대한 로그를 남긴다 (기본값).

추가적으로 SMTP Handler 설정을 통해 이메일 안내를 받도록 할 수 있다.

AutoClose

컴포넌트 호출 후에 반환되지 않은 리소스에 대한 로그를 남기고 이를 닫아준다.

추가적으로 SMTP Handler 설정을 통해 이메일 안내를 받도록 할 수 있다.

Action On Resource Leak 설정을 Warning 또는 AutoClose로 한 경우 서버 설정 중에 SMTP Handler 설정을 함으로써 이메일 안내를 받을 수 있다. 기본적으로 제공되는 jeus logger를 사용 중이라면 해당 logger에 SMTP Handler만 추가하면 된다.

WebAdmin 사용

다음은 WebAdmin을 통해 SMTP Handler를 추가해서 Action On Resource Leak을 설정하는 예이다.

  1. WebAdmin의 왼쪽 메뉴에서 [Servers]를 선택하면 서버 목록 화면으로 이동한다. 서버 목록에서 서버(server1)를 선택하면 서버 설정 화면으로 이동한다. 해당 화면에서 [Basic] 탭의 [System Logging] 메뉴를 선택한다.

    [그림 2.19] SMTP Handler 추가

    SMTP Handler 추가

  2. 설정 변경을 위해서는 Lock을 가져오는 작업이 선행되어야 한다. 왼쪽 메뉴의 하단에 위치한 [LOCK & EDIT] 버튼을 클릭해서 동적 설정 변경 모드로 전환한다.

  3. SMTP Handler 정보를 설정하고 [확인] 버튼을 클릭한다.

    [그림 2.20] SMTP Handler 설정

    SMTP Handler 설정


    다음은 설정 항목에 대한 설명이다.

    항목설명
    NameHandler의 이름을 설정한다. Handler의 이름은 logger 내에서 유일해야 한다.
    LevelHandler의 레벨을 설정한다. Logger의 레벨 설정으로 찍히는 로그 중에 이메일 안내를 보낼 로그의 레벨을 설정한다.
    Smtp Host Address이메일을 보낼 SMTP 서버의 주소를 설정한다. 단, SMTP 호스트는 SSL 프로토콜을 사용하지 않는 서버여야 한다.
    From Address이메일 송신자의 메일 주소를 설정한다.
    Sender IdSMTP 서버에 등록된 메일 송신자 id를 설정한다.
    Sender PasswordSMTP 서버에 등록된 메일 송신자 password를 설정한다.
    To Address이메일 수신자의 메일 주소를 설정한다.
    PropertySMTP 메일 서버에 전달할 property를 설정한다.
    Send For All Messages
    • true : 로그에 찍히는 모든 메시지 중 handler의 레벨을 통과한 메시지는 모두 이메일 전송이 되게 된다.

    • false : Rsource Leak 안내와 같은 몇몇 메시지만 이메일 전송이 된다.

  4. 설정 정보를 반영하려면 [Activate Chages] 버튼을 클릭하면 화면 상단에 설정 변경 결과 메시지가 출력되고, 서버의 Action On Resource Leak 설정이 변경된 것을 확인할 수 있다. 운영 중인 서버의 Action On Resource Leak 설정을 변경했다면 설정 변경은 성공했으나 서버에 적용할 수 없다는 메시지를 확인할 수 있다. 변경한 Action On Resource Leak 설정을 적용하려면 서버를 재기동해야 한다.

콘솔 툴 사용

다음은 콘솔 툴의 modify-server 명령어를 통해 Action On Resource Leak을 변경하는 예이다.

  1. 서버를 부팅하기 전에 modify-server 명령어를 통해 현재 설정을 변경할 서버의 설정을 조회한다.

    [DAS]domain1.adminServer>modify-server server2
    Shows the current configuration.
    server (server2)
    ================================================================================
    +-----------------------------------+------------------------------------------+
    | Node                              | node1                                    |
    | JVM Configs                       | -Xmx512m -XX:MaxPermSize=128m            |
    | Action On Resource Leak           | WARNING                                  |
    | Stdout to Raw Format              | false                                    |
    | MEJB                              | true                                     |
    | Class FTP                         | true                                     |
    | Server Log Home Directory         | none                                     |
    +-----------------------------------+------------------------------------------+
    ================================================================================ 
  2. server2의 Action On Resource Leak 설정을 AutoClose로 설정한다.

    [DAS]domain1.adminServer>modify-server server2 -actionOnResourceLeak AutoClose
    Successfully performed the MODIFY operation for server (server2).
    Check the results using "list-servers server2 or modify-server server2".

    참고

    동적 반영이 되지 않는 옵션들의 경우는 서버를 부팅하기 전에 변경해야 한다. 운영 중인 서버에 이런 설정을 수정하게 되면 동적으로 반영되지 않기 때문에 서버를 재기동해야 한다.

  3. modify-server 또는 list-servers 명령어를 통해 변경한 설정이 잘 반영되었는지를 확인한다.

    [DAS]domain1.adminServer>modify-server server2
    Shows the current configuration.
    server (server2)
    ================================================================================
    +-----------------------------------+------------------------------------------+
    | Node                              | node1                                    |
    | JVM Configs                       | -Xmx512m -XX:MaxPermSize=128m            |
    | Action On Resource Leak           | AUTO_CLOSE                               |
    | Stdout to Raw Format              | false                                    |
    | MEJB                              | true                                     |
    | Class FTP                         | true                                     |
    | Server Log Home Directory         | none                                     |
    +-----------------------------------+------------------------------------------+
    ================================================================================ 
  4. 서버 'server2'을 시작한다.

    [DAS]domain1.adminServer>start-server server2
    The server(server2) was successfully started. The server is [RUNNING]

    참고

    콘솔 툴이나 WebAdmin에서 start-server 명령어가 가능하려면 SSH를 사용할 수 있는 환경이어야 하고, 노드 설정이 되어 있어야 한다. 노드 매니저에 대한 자세한 설명은 "JEUS Node Manager 안내서"를 참고한다.

  5. 'server2'의 Action On Resource Leak 설정을 다시 원래 값인 WARNING으로 변경한다.

    이 설정은 서버가 운영 중이기 때문에 설정 변경만 되고 실제로 서버에 적용되지는 않는다. 변경한 설정이 적용되길 원한다면 서버를 재기동해야 한다.

    [DAS]domain1.adminServer>modify-server server2 -actionOnResourceLeak Warning
    Successfully performed the MODIFY operation for server (server2), but all changes were non-dynamic. They will be applied after restarting.
    Check the results using "list-servers server2 or modify-server server2".
  6. modify-server 또는 list-servers 명령어를 통해 변경한 설정을 확인한다.

    [DAS]domain1.adminServer>modify-server server2
    Shows the current configuration.
    server (server2)
    ================================================================================
    +-----------------------------------+------------------------------------------+
    | Node                              | node1                                    |
    | JVM Configs                       | -Xmx512m -XX:MaxPermSize=128m            |
    | Action On Resource Leak           | WARNING                                  |
    | Stdout to Raw Format              | false                                    |
    | MEJB                              | true                                     |
    | Class FTP                         | true                                     |
    | Server Log Home Directory         | none                                     |
    +-----------------------------------+------------------------------------------+
    ================================================================================

참고

위에서 사용한 콘솔 툴 명령어에 대한 자세한 설명은 JEUS Reference Book”의 “4.2.3. Server Management 관련 명령어”에서 해당 명령어에 대한 내용을 참고한다.

2.3.2.3. Jvm Config 설정

Jvm Config는 서버를 실행하기 위해 개별적인 JVM에 추가할 파라미터들을 선언하는 데 사용된다. 여기에 설정한 값들을 Launcher 프로세스에서 서버를 시작하기 전에 이 값을 읽어서 서버 JVM을 생성할 때 파라미터로 추가한다. 지정 가능한 JEUS 파라미터들의 목록은 JEUS Reference Book”의 “1.2. 서버 시스템 프로퍼티”를 참고한다. 표준 JVM 파라미터들도 설정 가능하다.

서버에 적용할 JVM 옵션, 시스템 프로퍼티와 더불어 JEUS에서 제공하는 시스템 프로퍼티도 여기에 설정할 수 있다. 주로 JVM 메모리나 옵션들을 설정하는데, 이는 서버의 운영 환경에 맞는 적절한 값을 설정해야 한다. JVM Config 관련 추가적인 설명은 JEUS Domain 안내서”의 “3.6.2. 서버의 JVM 설정변경”을 참고한다.

주의

서버가 운영 중일 때는 이 값을 변경해도 반영되지 않는다. 동적 설정 반영의 대상이 아니기 때문에 운영 중인 서버에 이 값을 변경한 경우에는 서버를 재기동해야 적용된다.

WebAdmin 사용

다음은 WebAdmin을 통해 Jvm Config를 설정하는 과정에 대한 설명이다.

  1. WebAdmin의 왼쪽 메뉴에서 [Servers]를 선택하면 서버 목록 화면으로 이동한다. 서버 목록에서 설정 정보를 변경할 서버(server1)를 선택하면 서버 설정 화면으로 이동한다. 설정 화면에서 [Basic] 탭을 선택한다.

  2. 설정 변경을 위해서는 Lock을 가져오는 작업이 선행되어야 한다. 왼쪽 메뉴의 하단에 위치한 [LOCK & EDIT] 버튼을 클릭해서 동적 설정 변경 모드로 전환한다.

  3. 'Jvm Option' 항목의 설정을 변경하고 [확인] 버튼을 클릭하면 변경한 설정 내용이 저장되고, 결과 메시지가 나타난다.

  4. 설정 정보의 반영을 위해 [Activate Chages] 버튼을 클릭한다.

    화면 상단에 설정 변경 결과 메시지가 출력되고, 서버의 JVM 설정이 변경된 것을 확인할 수 있다. 운영 중인 서버의 Jvm Config를 변경했다면 아래와 같이 설정 변경은 성공하였으나 변경한 JVM 설정을 서버에 적용할 수 없다는 메시지를 확인할 수 있다. 이 경우 변경한 JVM 설정을 적용하고 싶다면 서버를 재기동해야 한다.

콘솔 톨 사용

콘솔 툴의 modify-server, add-jvm-option, modify-jvm-option, remove-jvm-option을 이용하여 서버의 JVM 설정을 변경할 수 있다. 명령에 대한 자세한 설명은 JEUS Domain 안내서”의 “3.6.2. 서버의 JVM 설정변경”, JEUS Reference Book”의 “4.2.3. Server Management 관련 명령어”를 참고한다.

다음은 콘솔 툴의 modify-server 명령어를 통해 서버의 JVM 설정을 변경하는 예이다.

  1. 서버를 부팅하기 전에 modify-server 명령어를 통해 현재 설정을 변경할 서버의 설정을 조회한다.

    [DAS]domain1.adminServer>modify-server server1
    Shows the current configuration.
    server (server1)
    =====================================================================
    +---------------------------------------------------------+---------+
    | Node                                                    | node1   |
    | Action On Resource Leak                                 | WARNING |
    | Stdout to Raw Format                                    | true    |
    | MEJB                                                    | false   |
    | Class FTP                                               | false   |
    | Server Log Home Directory                               | none    |
    +---------------------------------------------------------+---------+
    =====================================================================
  2. server1에 JVM 옵션을 추가한다. JVM의 최대 Heap 메모리를 512MB로 설정하고, 최대 Permanent 메모리를 128MB로 설정한다.

    [DAS]domain1.adminServer>modify-server server1 -jvmOptions "-Xmx512m -XX:MaxPermSize=128m"
    Successfully performed the MODIFY operation for server (server1).
    Check the results using "list-servers server1 or modify-server server1". 

    참고

    동적 반영이 되지 않는 옵션들의 경우는 서버를 부팅하기 전에 변경해야 한다. 운영 중인 서버의 설정 정보를 변경하면 동적으로 반영되지 않기 때문에 서버를 재기동해야 한다.

  3. modify-server 또는 list-servers 명령어를 통해 변경한 설정의 정상 반영을 확인한다.

    [DAS]domain1.adminServer>modify-server server1
    Shows the current configuration.
    server (server1)
    ================================================================================
    +-----------------------------------+------------------------------------------+
    | Node                              | node1                                    |
    | JVM Configs                       | -Xmx512m -XX:MaxPermSize=128m            |
    | Action On Resource Leak           | WARNING                                  |
    | Stdout to Raw Format              | true                                     |
    | MEJB                              | false                                    |
    | Class FTP                         | false                                    |
    | Server Log Home Directory         | none                                     |
    +-----------------------------------+------------------------------------------+
    ================================================================================
  4. 서버 'server1'을 시작한다.

    [DAS]domain1.adminServer>start-server server1
    The server(server1) was successfully started. The server is [RUNNING]

    참고

    콘솔 툴이나 WebAdmin에서 start-server 명령이 가능하려면 SSH를 사용할 수 있는 환경이어야 하고, 노드가 설정되어 있어야 한다. 노드 매니저에 대한 자세한 설명은 "JEUS Node Manager 안내서"를 참고한다.

  5. 'server1'에 JVM 옵션을 추가한다.

    서버에 OutOfMemoryError가 발생한 경우 Heap Dump 파일을 남기는 옵션을 추가하였다. 이 설정은 서버가 운영 중이기 때문에 설정 변경만 되고 실제로 서버에 반영되지는 않는다. 변경한 설정이 반영되길 원한다면 서버를 재기동해야 한다.

    [DAS]domain1.adminServer>modify-server server1 -jvmOptions "-XX:+HeapDumpOnOutOfMemoryError"
    Successfully performed the MODIFY operation for server (server1), but all changes were non-dynamic. 
    They will be applied after restarting.
    Check the results using "list-servers server1 or modify-server server1".
  6. modify-server 또는 list-servers 명령어를 통해 변경한 설정을 확인한다.

    [DAS]domain1.adminServer>modify-server server1
    Shows the current configuration.
    server (server1)
    ================================================================================
    +---------------------------+--------------------------------------------------+
    | Node                      | node1                                            |
    +---------------------------+--------------------------------------------------+
    | JVM Configs               | -Xmx512m -XX:MaxPermSize=128m,                   |
    |                           |-XX:+HeapDumpOnOutOfMemoryError                   |
    +---------------------------+--------------------------------------------------+
    | Action On Resource Leak   | WARNING                                          |
    +---------------------------+--------------------------------------------------+
    | Stdout to Raw Format      | true                                             |
    +---------------------------+--------------------------------------------------+
    | MEJB                      | false                                            |
    +---------------------------+--------------------------------------------------+
    | Class FTP                 | false                                            |
    +---------------------------+--------------------------------------------------+
    | Server Log Home Directory | none                                             |
    +---------------------------+--------------------------------------------------+
    ================================================================================

2.3.2.4. 클래스 패스 설정

본 절에는 서버에 부가적인 클래스 패스를 추가하는 방법에 대해 설명한다. 서버에 클래스 패스를 추가하는 설정은 WebAdmin을 통해서만 가능하다.

주의

서버가 운영 중일 때는 이 값을 변경해도 반영되지 않는다. 동적 설정 반영의 대상이 아니기 때문에 운영 중인 서버에 이 값을 변경한 경우에는 서버를 재기동해야 적용된다.

WebAdmin 사용

다음은 WebAdmin을 통해 서버에 클래스 패스를 추가하는 설정들을 변경하는 예이다.

  1. WebAdmin의 왼쪽 메뉴에서 [Servers]를 선택하면 서버 목록 화면으로 이동한다. 서버 목록에서 서버(server1)를 선택하면 서버 설정 화면으로 이동한다. 설정 화면에서 [Basic] 탭을 선택한다.

  2. 설정 변경을 위해서는 Lock을 가져오는 작업이 선행되어야 한다. 왼쪽 메뉴의 하단에 위치한 [LOCK & EDIT] 버튼을 클릭해서 동적 설정 변경 모드로 전환한다.

  3. 고급 선택사항에서 User Interceptor의 하위 항목에 원하는 클래스 패스를 추가한다. 설정이 완료되면 [확인] 버튼을 클릭한다.

  4. 설정 정보를 적용하기 위해서 [Activate Chages] 버튼을 클릭한다.

    설정 변경이 완료된 결과 화면으로 상단에 설정 변경 결과 메시지가 출력되고, 서버에 User Interceptor 설정이 추가된 것을 확인할 수 있다.

    운영 중인 서버의 User Interceptor 설정을 변경했다면 설정 변경은 성공하였으나 변경한 User Interceptor 설정을 서버에 적용할 수 없다는 메시지를 확인할 수 있다. 이 경우 변경한 User Interceptor 설정을 적용하고 싶다면 서버를 재기동해야 한다.

2.3.3. Listener 설정

본 절에서는 서버에서 사용하는 네트워크 Listener 설정에 대해서 설명한다.

네트워크 Listener는 서버에서 수행되는 시스템 서비스들이나 각종 엔진에서 참조하여 그 설정을 사용하기 위한 것이다. 이 Listener는 포트 통합 서비스가 적용되어 있기 때문에 각자 다른 서비스나 엔진에서 하나의 Listener를 공유해서 사용하도록 설정할 수도 있다. 극단적인 예로는 기본 Listener 하나만을 열어두고 모든 서비스를 해당 Listener를 통해서 서비스하는 것도 가능하다.

주의

서버가 운영 중일 때 이 값을 변경하려고 하면 반영되지 않는다. 동적 설정 반영의 대상이 아니기 때문에 운영 중인 서버에 이 값을 변경한 경우에는 서버를 재기동해야 적용된다.

WebAdmin 사용

다음은 WebAdmin에서 기본 Listener를 설정하는 방법이다. 기본 Listener는 설정된 Listener 중의 하나를 선택하게 되며, JEUS의 가장 기본적인 시스템 서비스 및 Webadmin 등이 이 Listener를 사용하게 된다.

[그림 2.21] 기본 Listener 설정

기본 Listener 설정


새로운 Listener는 [LOCK & EDIT] 버튼을 누르고 [Add] 버튼을 클릭해서 추가할 수 있다. 개별 Listener의 기본적인 설정은 다른 시스템 서비스나 엔진에서 참조할 이름을 반드시 설정하며, 다른 Listener와 중복되지 않도록 포트 번호를 설정한다.

[그림 2.22] 개별 Listener 설정

개별 Listener 설정


다음은 Listener에 적용할 수 있는 SSL(Secure Socket Layer) 설정이다. 해당 Listener를 사용하는 서비스나 엔진이 SSL로 서비스를 한다. (예: https)

[그림 2.23] 개별 Listener SSL 설정

개별 Listener SSL 설정


2.3.4. Thread Pool 설정

본 절에서는 서버에서 사용하는 공용 Thread Pool에 대한 설정을 설명한다.

서버에서 사용되는 서비스들이 전용 Thread Pool을 별도로 설정해서 사용하지 않는다면 모두 이 공용 Thread Pool을 사용한다. 공용 Thread Pool을 사용하는 서비스는 트랜잭션 서비스와 JNDI 서비스, 스케줄러 서비스가 있다. 이 서비스들은 설정에 따라 공용 Thread Pool을 사용할 수도 있고, 전용 Thread Pool을 사용할 수도 있다. 공용 Thread Pool을 사용한다면 서비스에서 사용할 최소 Thread 개수를 미리 할당해 놓을 수 있다.

참고

애플리케이션의 요청을 처리하는 엔진에서는 공용 Thread Pool을 사용하지 않는다. 서비스에서 전용 Thread Pool을 사용하는 방법에 대한 설명은 “제4장 JNDI Naming Server”“제7장 트랜잭션 매니저”"JEUS Scheduler 안내서"를 참고한다.

WebAdmin 사용

다음은 WebAdmin에서 Thread Pool을 설정하는 방법에 대한 설명이다.

  1. WebAdmin의 왼쪽 메뉴에서 [Servers]를 선택하면 서버 목록 화면으로 이동한다. 서버 목록에서 서버를 선택하면 서버 설정 화면으로 이동한다. 설정 화면에서 [Basic] 탭을 선택하고 하위에 [System Thread Pool] 메뉴를 선택한다.

  2. System Thread Pool 설정을 변경하려면 설정 변경을 위한 Lock을 가져오는 작업이 선행되어야 한다.

    Lock을 설정하기 전에 현재 설정된 System Thread Pool의 정보를 확인할 수 있다. 설정을 변경하려면 왼쪽 메뉴의 하단에 위치한 [LOCK & EDIT] 버튼을 클릭해서 Lock을 가져와야 한다. Lock을 가져온 후에는 System Thread Pool 설정을 변경할 수 있는 화면으로 변경된다.

  3. Thread Pool의 'Max''Keep Alive Time'을 변경하고 [확인] 버튼을 클릭한다.

    다음은 설정 항목에 대한 설명이다.

    • 기본 설정

      항목설명
      MinThread Pool에서 관리하는 Thread의 최소 개수를 의미한다. 필요할 때 Thread를 생성한다. (기본값: 0)
      MaxThread Pool에서 관리하는 Thread의 최대 개수를 의미한다. (기본값: 100)
    • 고급 선택사항

      항목설명
      Keep Alive Time

      Thread Pool에서 사용하지 않는 Thread를 자동으로 정리할 시간을 설정한다. Min으로 설정한 값 이상의 Thread가 설정된 시간 동안 사용되지 않을 경우 자동으로 Thread Pool에서 삭제한다.

      공용 Thread Pool의 경우 기본값은 5분이다. (단위: ms)

      Queue size

      Thread Pool이 처리하는 일(work)을 저장하는 큐의 크기를 지정한다.

      (기본값: 4096개)

      • Stuck Thread Handling

        Thread가 일정시간 이상 계속 점유된 상태일 경우 해당 Thread에 대해서 특정 액션을 하기 위한 설정이다.

        항목설명
        Max Stuck Thread Time

        Thread가 점유되었다고 판단하는 기준이 되는 설정이다. 설정한 시간 이상으로 점유된 상태이면 해당 Thread를 Stuck Thread로 간주한다.

        (기본값: 1시간, 단위: ms)

        Action On Stuck Thread

        점유되었다고 판단된 Thread에 대한 액션을 설정한다. 공용 Thread Pool의 기본값은 IgnoreAndReplace이고 다음에 나열한 값들을 설정할 수 있다.

        • None : Stuck Thread에 아무런 액션도 취하지 않는다.

        • Interrupt : Stuck Thread에 Interrupt Signal을 보낸다.

        • IgnoreAndReplace : Stuck Thread를 무시하고 새로운 Thread로 교체한다.

        Stuck Thread Check Period

        Thread가 Stuck 상태가 되었는지 체크하는 주기를 설정한다.

        (기본값: 5분, 단위: ms)

  4. 설정 정보를 적용하기 위해서 [Activate Changes] 버튼을 클릭한다. 화면 상단에 설정 변경 결과 메시지가 출력되고, 서버의 System Thread Pool 설정이 변경되었음을 확인할 수 있다.

콘솔 툴 사용

본 절에서는 콘솔 툴로 공용 Thread Pool을 조회하고 변경하는 예제를 설명한다.

참고

예제에서 사용한 명령어들에 대한 자세한 설명은 JEUS Reference Book”의 “4.2.5. Thread Management 관련 명령어”를 참고한다. 서비스들에서 사용하는 Thread Pool에 대한 설정은 각 서비스의 매뉴얼을 참고한다.

다음은 Thread Pool의 max를 100에서 200으로 변경하고 keep alive time을 5분에서 10분으로 변경하는 예제이다.

[DAS]domain1.adminServer>show-system-thread-pool server1
Shows the current configuration.
the system thread pool of the server (server1)
================================================================================
+---------------------------------------------------------+--------------------+
| Min                                                     | 0                  |
| Max                                                     | 100                |
| Keep-Alive Time                                         | 300000             |
| Queue Size                                              | 4096               |
| Max Stuck Thread Time                                   | 3600000            |
| Action On Stuck Thread                                  | IGNORE_AND_REPLACE |
| Stuck Thread Check Period                               | 300000             |
| Reserved Threads for the Service transaction            | 0                  |
| Reserved Threads for the Service namingserver           | 0                  |
+---------------------------------------------------------+--------------------+
================================================================================

[DAS]domain1.adminServer>modify-system-thread-pool server1 -max 200 -keep 600000
Successfully performed the MODIFY operation for the system thread pool of the server (server1).
Check the results using "modify-system-thread-pool server1 or show-system-thread-pool server1".

[DAS]domain1.adminServer>show-system-thread-pool server1
Shows the current configuration.
the system thread pool of the server (server1)
================================================================================
+---------------------------------------------------------+--------------------+
| Min                                                     | 0                  |
| Max                                                     | 200                |
| Keep-Alive Time                                         | 600000             |
| Queue Size                                              | 4096               |
| Max Stuck Thread Time                                   | 3600000            |
| Action On Stuck Thread                                  | IGNORE_AND_REPLACE |
| Stuck Thread Check Period                               | 300000             |
| Reserved Threads for the Service transaction            | 0                  |
| Reserved Threads for the Service namingserver           | 0                  |
+---------------------------------------------------------+--------------------+
================================================================================

다음은 JNDI 서비스에서 공용 Thread Pool에서 Thread를 미리 할당하도록 설정하는 예제이다.

[DAS]domain1.adminServer>show-system-thread-pool server1
Shows the current configuration.
the system thread pool of the server (server1)
================================================================================
+---------------------------------------------------------+--------------------+
| Min                                                     | 0                  |
| Max                                                     | 200                |
| Keep-Alive Time                                         | 600000             |
| Queue Size                                              | 4096               |
| Max Stuck Thread Time                                   | 3600000            |
| Action On Stuck Thread                                  | IGNORE_AND_REPLACE |
| Stuck Thread Check Period                               | 300000             |
| Reserved Threads for the Service transaction            | 0                  |
| Reserved Threads for the Service namingserver           | 0                  |
+---------------------------------------------------------+--------------------+
================================================================================

[DAS]domain1.adminServer>modify-system-thread-pool server1 -service namingserver -r 10
Successfully performed the MODIFY operation for The namingserver thread pool of the server (server1)., but all changes were non-dynamic. They will be applied after restarting.
Check the results using "show-system-thread-pool server1 -service namingserver or modify-system-thread-pool server1 -service namingserver".

[DAS]domain1.adminServer>show-system-thread-pool server1 -service namingserver
Shows the current configuration.
the system thread pool of the server (server1)
================================================================================
+---------------------------------------------------------+--------------------+
| Min                                                     | 0                  |
| Max                                                     | 200                |
| Keep-Alive Time                                         | 600000             |
| Queue Size                                              | 4096               |
| Max Stuck Thread Time                                   | 3600000            |
| Action On Stuck Thread                                  | IGNORE_AND_REPLACE |
| Stuck Thread Check Period                               | 300000             |
| Reserved Threads for the Service transaction            | 0                  |
| Reserved Threads for the Service namingserver           | 10                 |
+---------------------------------------------------------+--------------------+
================================================================================

[DAS]domain1.adminServer>modify-system-thread-pool server1 -service namingserver
Shows the current configuration.
The namingserver thread pool of the server (server1).
================================================================================
+----------------------------------------------------------------------+-------+
| Reserved Threads for the Service namingserver                        | 10    |
+----------------------------------------------------------------------+-------+
================================================================================

2.3.5. Lifecycle Invocation 설정

JEUS에서는 서버의 Lifecycle에 맞게 사용자가 원하는 작업을 할 수 있도록 Lifecycle Invocation 기능을 제공하고 있다. 서버는 부팅, 다운 과정에서 각 단계에 사용자가 설정한 이벤트를 호출해준다. Lifecycle Invocation은 WebAdmin을 통해서만 설정 가능하다.

주의

서버가 운영 중일 때 class name을 변경하려고 하면 반영되지 않는다. class name 은 동적 설정 반영의 대상이 아니기 때문에 운영 중인 서버에 이 값을 변경한 경우에는 서버를 재기동해야 적용된다. 그 외의 Invocation 설정은 동적반영된다.

다음은 Lifecycle Invocation에 등록하는 클래스는 일반 Java 클래스 예제이다. 이 클래스를 서버의 Lifecycle에 맞게 호출하고 싶은 대상 서버의 SERVER_HOME/lib/application에 위치시킨다.

[예 2.1] Lifecycle Invocation에 등록하는 클래스 : <<LifeCycleTester.java>>

package lifecycle;

public class LifeCycleTester {
    public void boot() {
        System.out.println("Boot");
        // do somethig
    }

    public void beforeDeploy() {
        System.out.println("Before Deploy");
        // do somethig
    }

    public void afterDeploy() {
        System.out.println("After Deploy");
        // do somethig
    }

    public void ready() {
        System.out.println("Ready");
        // do somethig
        try {
            System.out.println("Sleeping for 15 seconds ....");
            Thread.sleep(15000L);
        } catch (Exception e) {
            //ignored
        }
    }

    public void beforeUndeploy() {
        System.out.println("Before Undeploy");
        // do somethig
    }

    public void afterUndeploy() {
        System.out.println("After Undeploy");
        // do somethig
    }
}


WebAdmin 사용

다음은 위의 예제를 이용해서 WebAdmin을 통해 서버의 Lifecycle Invocation 클래스로 설정하는 과정에 대한 설명이다.

  1. WebAdmin의 왼쪽 메뉴에서 [Servers]를 선택하면 서버 목록 화면으로 이동한다. 서버 목록 화면에서 서버(adminServer)를 선택하면 서버 설정 화면으로 이동한다. 설정 화면에서 [Resource] 탭을 선택하고 [Lifecycle Invocation] 메뉴를 선택하면, 현재 설정된 Lifecycle Invocation 정보를 조회하는 화면으로 이동한다.

    [그림 2.24] WebAdmin에서 Lifecycle Invocation 설정 (1)

    WebAdmin에서 Lifecycle Invocation 설정 (1)

  2. 왼쪽 메뉴의 하단에 위치한 [LOCK & EDIT] 버튼을 클릭해서 Lock을 가져온 뒤, Lifecycle Invocation을 추가하기 위해 테이블 상단의 [ADD] 버튼을 클릭한다.

    [그림 2.25] WebAdmin에서 Lifecycle Invocation 설정 (2)

    WebAdmin에서 Lifecycle Invocation 설정 (2)

  3. Lifecycle Invocation 클래스와 Lifecycle Invocation 타입에 맞게 수행할 메소드를 추가한다. Lifecycle Invocation 클래스를 'test.lifecycle.invocation.LifeCycleInvocation'으로 설정하고 boot 메소드가 BOOT 시점에 호출되도록 지정한 후 [확인] 버튼을 클릭한다.

    [그림 2.26] WebAdmin에서 Lifecycle Invocation 설정 (3)

    WebAdmin에서 Lifecycle Invocation 설정 (3)

    다음은 Invocation 설정 항목에 대한 설명이다.

    항목설명
    Invocation Type

    메소드가 호출되는 시점을 지정한다.

    • BOOT : 서버가 시작되고 엔진들이 띄워지기 전의 시점이다.

    • BEFORE_DEPLOY : 서버가 시작되고 이 서버에 등록된 애플리케이션이 distribute 작업을 하기 전 시점이다.

    • AFTER_DEPLOY : 서버가 시작되고 이 서버에 등록된 애플리케이션을 모두 distribute한 후의 시점이다.

    • READY : 서버가 시작되고 Target으로 등록된 애플리케이션이 모두 deploy 작업을 마치고 서비스될 수 있는 준비가 완료된 시점이다.

    • BEFORE_UNDEPLOY : 서버가 stop 명령을 받았을 때 이 서버에서 서비스 중인 애플리케이션들을 undeploy하기 전의 시점이다.

    • AFTER_UNDEPLOY : 서버가 stop 명령을 받았을 때 이 서버에서 서비스중인 애플리케이션들을 undeploy를 모두 완료한 시점이다.

    Invocation Argument메소드를 호출할 때 사용하는 argument를 지정한다.
    Method NameInvocation에 사용될 메소드를 지정한다.
    Method ParamInvocation에 사용될 메소드의 파라미터를 지정한다.
  4. Lifecycle Invocation 목록에 추가한 Lifecycle Invocation 클래스가 조회된다. Lifecycle Invocation 클래스에서 사용할 라이브러리를 설정한다. Lifecycle Invocation 타입에 맞게 수행할 메소드를 추가하기 위해 Library Ref 목록의 [ADD] 버튼을 클릭한다.

    [그림 2.27] WebAdmin에서 Lifecycle Invocation 설정 (4)

    WebAdmin에서 Lifecycle Invocation 설정 (4)

  5. 클래스에서 참조하는 라이브러리에 대한 레퍼런스 설정이다. 여기에 설정한 라이브러리는 lib/shared에 있어야 한다. Shared Library에 대한 자세한 설명은 JEUS Applications & Deployment 안내서”의 “3.3.2. 공유 라이브러리”를 참고한다.

    [그림 2.28] WebAdmin에서 Lifecycle Invocation 설정 (5)

    WebAdmin에서 Lifecycle Invocation 설정 (5)


    항목설명
    Library Name사용할 라이브러리 이름을 지정한다.
    Specification Version설정한 라이브러의 스펙 버전을 지정한다.
    Implementation Version설정한 라이브러의 구현 버전을 지정한다.
  6. 다음은 추가한 라이브러리를 [확인] 버튼을 클릭해서 저장했을 때 조회되는 화면이다.

    [그림 2.29] WebAdmin에서 Lifecycle Invocation 설정 (6)

    WebAdmin에서 Lifecycle Invocation 설정 (6)


  7. 메소드가 호출되는 시점에 따라 Lifecycle Invocation 메소드를 추가로 설정한다.

    [그림 2.30] WebAdmin에서 Lifecycle Invocation 설정 (7)

    WebAdmin에서 Lifecycle Invocation 설정 (7)


  8. Lifecycle Invocation 설정 변경을 완료하면 [Activate Changes] 버튼을 클릭하여 변경한 설정을 서버에 반영한다. 화면 상단에 Lifecycle Invocation 설정 변경 결과 메시지가 출력되고, 서버의 Lifecycle Invocation 설정이 변경된 것을 확인할 수 있다.

    [그림 2.31] WebAdmin에서 Lifecycle Invocation 설정 (8)

    WebAdmin에서 Lifecycle Invocation 설정 (8)


    참고

    운영 중인 서버의 Lifecycle Invocation 설정을 변경한 경우 위와 같이 설정 변경은 성공했으나 변경한 Lifecycle Invocation 설정을 서버에 적용할 수 없다는 메시지를 확인할 수 있다. 이 경우 변경한 Lifecycle Invocation 설정을 적용하고 싶다면 서버를 재기동해야 한다.

2.3.6. Resource Reference 설정

서버의 애플리케이션에서 공통으로 사용할 리소스에 대한 매핑 정보를 설정한다.

애플리케이션에서 사용하는 리소스는 해당 애플리케이션이 서비스되는 서버의 JNDI 저장소에 이름이 등록된다. 리소스 매핑을 설정하면 등록되는 이름에 상관없이 애플리케이션에서는 항상 같은 이름의 리소스를 Lookup해서 사용할 수 있다.

주의

서버가 클러스터에 포함되어 있는 경우에는 Resource Reference 설정은 클러스터에 설정된 값이 우선 적용된다.

WebAdmin 사용

다음은 WebAdmin에서 Resource Reference를 설정하는 과정에 대한 설명이다.

  1. WebAdmin의 왼쪽 메뉴에서 [Servers]를 선택하면 서버 목록 조회 화면으로 이동한다.

    서버 목록에서 서버를 선택하면 서버 설정 화면으로 이동한다. 설정 화면에서 [Basic] 탭을 선택하고 [Res Ref] 메뉴를 선택하면 Res Ref 화면으로 이동한다.

    [그림 2.32] WebAdmin에서 Resource Reference 설정 (1)

    WebAdmin에서 Resource Reference 설정 (1)

  2. Resource Reference 설정을 변경하려면 설정 변경을 위한 Lock을 가져오는 작업이 선행되어야 한다. Lock을 설정하기 전에는 현재 설정된 Resource Reference의 정보를 확인할 수 있다. 설정을 변경하려면 왼쪽 메뉴의 하단에 위치한 [LOCK & EDIT] 버튼을 클릭해서 Lock을 가져온다. Lock을 가져온 후에는 Resource Reference 설정을 변경할 수 있는 화면으로 변경된다.

  3. Resource Reference를 추가하기 위해 Resource Reference 목록의 [ADD] 버튼을 클릭한다.

    [그림 2.33] WebAdmin에서 Resource Reference 설정 (2)

    WebAdmin에서 Resource Reference 설정 (2)

  4. 리소스를 매핑할 'Ref Name'과 실제 리소스가 바인딩된 'Export Name'을 설정하고 [확인] 버튼을 클릭한다.

    [그림 2.34] WebAdmin에서 Resource Reference 설정 (3)

    WebAdmin에서 Resource Reference 설정 (3)

    항목설명
    Ref Name리소스를 매핑하는 레퍼런스 이름을 설정한다. 여기에 설정한 이름이 애플리케이션에서 Lookup할 때 사용될 이름이다.
    Export Name실제 리소스가 서버에 바인딩되어 있는 이름을 지정한다. 실제 리소스가 서버의 JNDI 저장소에 등록된 JNDI 이름이다.

  5. 다음은 [확인] 버튼을 클릭해서 저장했을 때 보여지는 화면이다. 설정이 완료되면 다음과 같이 신규 리소스 매핑 정보가 목록에 추가된다.

    [그림 2.35] WebAdmin에서 Resource Reference 설정 (4)

    WebAdmin에서 Resource Reference 설정 (4)

  6. [Activate Chages] 버튼을 클릭하여 변경한 설정을 서버에 반영하면 다음과 같이 리소스 매핑 설정 변경의 결과를 조회할 수 있다.

    화면 상단에 설정 변경 결과 메시지가 출력되고, 서버의 리소스 매핑 설정이 변경되었음을 확인할 수 있다. 운영 중인 서버의 리소스 매핑 설정을 변경한 경우 위와 같이 설정 변경은 성공하였으나 변경한 리소스 매핑 설정을 서버에 적용할 수 없다는 메시지를 확인할 수 있다. 이 경우 변경한 리소스 매핑 설정을 적용하고 싶다면 서버를 재기동해야 한다.

    [그림 2.36] WebAdmin에서 Resource Reference 설정 (5)

    WebAdmin에서 Resource Reference 설정 (5)


2.3.7. Server Template 설정

클러스터를 생성할 때에 사용할 서버들의 공통적인 설정들을 서버 템플릿으로 저장해 둘 수 있다. 이를 이용하여 클러스터 생성시에 공통 설정을 가지는 다수의 서버를 자동으로 생성할 수 있어서 간단하게 서버 클러스터 환경을 구성할 수 있다.

서버 템플릿의 설정 방법은 기본적으로는 서버의 설정 방법과 동일하며 클러스터를 생성할 때에 Dynamic Servers를 선택하여 해당 템플릿을 지정하는 것으로, 같은 설정의 다수의 서버를 생성하게 된다. 서버 템플릿으로 기동되는 서버는 포트 번호와같이 서버별로 설정이 달라야하는 경우에는 특정한 규칙에 따라 서버별로 다른 번호를 부여받게 된다. 또한, Listener IP는 지정한 노드의 값으로 설정되기 때문에 서버 템플릿의 정확한 사용을 위해 DOMAIN_HOME/nodes.xml 설정이 필요할 수 있다.

서버 템플릿의 설정은 WebAdmin 혹은 콘솔에서 추가할 수 있다.

WebAdmin 사용

WebAdmin의 왼쪽 메뉴에서 [Servers]를 선택한 후 아래의 Server Templates 영역을 통해서 서버 템플릿을 추가할 수 있다.

[그림 2.37] 서버 템플릿의 추가

서버 템플릿의 추가


서버 템플릿의 추가는 많은 부분이 서버 추가와 동일하다. 서버 추가와는 달리 실제 서버가 생성되지 않고, 서버 설정을 담은 서버 템플릿만이 추가가 된다. 이를 이용하여 차후에 서버 클러스터 환경을 구성할 때에 동일한 설정을 가진 서버들을 일괄 생성할 수 있다.

기본적인 설정은 위에서 설명한 서버를 생성할 때 설정과 동일하다. 서버 템플릿을 이용한 클러스터 설정에 대해서는 JEUS Domain 안내서”의 “5.5.3. Dynamic Servers를 이용한 클러스터 설정”을 참고한다.

[그림 2.38] 서버 템플릿의 설정

서버 템플릿의 설정


콘솔 툴 사용

콘솔 툴을 이용하여 서버 템플릿을 추가할 수 있다. add-server-template 명령어를 통해 서버 템플릿을 추가하고, 각종 옵션을 주어 세부 항목을 설정한다. add-server-template에 대한 자세한 설명은 JEUS Reference Book”의 “4.2.4.9. add-server-template”을 참고한다.

[DAS]domain1.adminServer>add-server-template template1 -m true
Successfully performed the ADD operation for server template (template1), but all changes were non-dynamic. They will be applied after restarting.
Check the results using "list-servers or show-server-template or add-server-template".

[DAS]domain1.adminServer>show-server-template

Shows the current configuration.
Server template list
=============================================================
+-----------------------------------------------+-----------+
| server templates                              | template1 |
+-----------------------------------------------+-----------+
=============================================================