제2장 JEUS 설정

내용 목차

2.1. 개요
2.2. 서버 추가
2.2.1. WebAdmin 사용
2.2.2. 콘솔 툴 사용
2.3. 서버 설정
2.3.1. 기본 설정
2.3.2. Listener 설정
2.3.3. Thread Pool 설정
2.3.4. Lifecycle Invocation 설정
2.3.5. Resource Reference 설정
2.3.6. Group Management Service(GMS) 설정

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

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. 서버 목록 화면에 [ADD] 버튼을 클릭하면 서버 설정화면으로 이동한다.

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

    WebAdmin 서버 설정화면 - 서버 추가 (1)

  4. 서버 설정화면에서 추가할 서버의 이름과 'Jvm Option'을 설정하고 [확인] 버튼을 클릭한다.

    [그림 2.3] WebAdmin 서버 설정화면 - 서버 추가 (2)

    WebAdmin 서버 설정화면 - 서버 추가 (2)


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

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

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


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

    항목설명
    Node Name추가할 서버가 속하는 노드의 이름을 설정한다. 노드 매니저에 대한 자세한 내용은 "JEUS Node Manager 안내서"를 참고한다.
    Log Home각종 로그들이 저장되는 경로를 지정한다. 자세한 설명은 “8.2. JEUS 로거 기본 구조”를 참고한다.
    Action On Resource Leak설정에 대한 자세한 내용은 “2.3.1.2. Action On Resource Leak 설정”을 참고한다.
    Data Source도메인에 설정된 데이터소스 중 해당 서버에서 사용할 데이터소스를 설정한다. 데이터소스에 대한 자세한 설명은 “제6장 DB Connection Pool과 JDBC”를 참고한다.
    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. 엔진 사용 여부 설정”을 참고한다.
    Log Stdout To Raw Format설정에 대한 자세한 설명은 “8.3.3. 표준 출력과 표준 에러를 로그 형식으로 출력 설정”을 참고한다.
    Enable InteropEJB RMI/IIOP를 사용한다면 반드시 설정되어야 한다. Enable Interop에 대한 자세한 설명은 JEUS EJB 안내서”의 “5.2.2. 상호 운용성 활성화 설정”을 참고한다.

    주의

    서버가 클러스터에 포함되어 있는 경우에는 'Use MEJB''Class Ftp' 설정 항목과 Enable Interop 관련 설정은 클러스터에 설정된 값이 우선 적용된다.

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

    [그림 2.5] WebAdmin Server 설정화면 - 서버 추가 (3)

    WebAdmin Server 설정화면 - 서버 추가 (3)


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

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

    서버 추가 - System Thread Pool 설정


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

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

    서버 추가 - System Thread Pool 저장


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

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

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

    서버 추가 - 기본 Listener 추가


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

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

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


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

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

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


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

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

    서버 추가 - 기본 Listener 설정


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

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

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


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

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

    서버 추가 - 웹 엔진 설정


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

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

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


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

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

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


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

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

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

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


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

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

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


  15. 서버 목록에서 [start] 버튼을 클릭하여 서버를 실행한다. 서버의 [start] 버튼을 클릭하면 다음과 같은 설정화면이 나타난다. 서버의 시작 설정과 관련된 자세한 내용은 “3.1.2. Managed Server 시작”을 참고한다.

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

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


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

    [그림 2.19] 서버 추가 - 신규 서버 실행 (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.9. JMS 엔진 관련 명령어”)에 대한 자세한 설명은 관련 안내서를 참고한다.

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

[예 2.1] 콘솔 툴을 통해 서버 추가

[DAS]domain1.adminServer>serverinfo

Information about Domain (domain1)
===============================================================================================
+--------+----------+-----+------+-----+----------------+---------+-------------+-------------+
| Server |  Status  | Node|  PID | Clus|  Latest Start  | Need to | Listen Ports| Running     |
|        |          |Name |      | ter |Time / Shutdown | Restart |             | Engines     |
|        |          |     |      |     |      Time      |         |             |             |
+--------+----------+-----+------+-----+----------------+---------+-------------+-------------+
| adminSe| RUNNING  | N/A | 2864 | N/A | Mon May 21     | false   | base-0.0.0.0| jms,ejb,web |
|rver(*) |(2575 sec)|     |      |     |20:42:15 KST    |         |:9736        |             |
|        |          |     |      |     |2012            |         | http-server-|             |
|        |          |     |      |     |                |         |0.0.0.0:8088 |             |
+--------+----------+-----+------+-----+----------------+---------+-------------+-------------+
| server1| RUNNING  |host1| 3232 | N/A | Mon May 21     | false   | base-192.168| jms,ejb,web |
|        |(220 sec) |     |      |     |21:22:13 KST    |         |.0.4:9836    |             |
|        |          |     |      |     |2012            |         |             |             |
+--------+----------+-----+------+-----+----------------+---------+-------------+-------------+
===============================================================================================

[DAS]domain1.adminServer>add-server server2 -addr 192.168.0.4 -baseport 9936 -node host1 -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 se
rver (server2)., but all changes were non-dynamic. They will be applied after re
starting.
Check the results using "modify-system-thread-pool server2 or show-system-thread
-pool server2"

[DAS]domain1.adminServer>modify-web-engine-configuration -server server2 ....
....

[DAS]domain1.adminServer>serverinfo

Information about Domain (domain1)
==============================================================================================
+--------+----------+-----+------+-----+---------------+---------+-------------+-------------+
| Server |  Status  | Node|  PID | Clus|  Latest Start | Need to | Listen Ports| Running     |
|        |          |Name |      | ter |Time / Shutdown| Restart |             | Engines     |
|        |          |     |      |     |     Time      |         |             |             |
+--------+----------+-----+------+-----+---------------+---------+-------------+-------------+
| adminSe| RUNNING  | N/A | 2864 | N/A | Mon May 21    | false   | base-0.0.0.0| jms,ejb,web |
|rver(*) |(2846 sec)|     |      |     |20:42:15 KST   |         |:9736        |             |
|        |          |     |      |     |2012           |         | http-server-|             |
|        |          |     |      |     |               |         |0.0.0.0:8088 |             |
+--------+----------+-----+------+-----+---------------+---------+-------------+-------------+
| server1| RUNNING  |host1| 3232 | N/A | Mon May 21    | false   | base-192.168| jms,ejb,web |
|        |(491 sec) |     |      |     |21:22:13 KST   |         |.0.4:9836    |             |
|        |          |     |      |     |2012           |         |             |             |
+--------+----------+-----+------+-----+---------------+---------+-------------+-------------+
| server2| SHUTDOWN |host1| N/A  | N/A | N/A           | N/A     | N/A         | N/A         |
+--------+----------+-----+------+-----+---------------+---------+-------------+-------------+
==============================================================================================

[DAS]domain1.adminServer>start-server server2
The server [server2] was successfully started. 

[DAS]domain1.adminServer>serverinfo

Information about Domain (domain1)
==============================================================================================
+--------+----------+-----+------+-----+---------------+---------+-------------+-------------+
| Server |  Status  | Node|  PID | Clus|  Latest Start | Need to | Listen Ports| Running     |
|        |          |Name |      | ter |Time / Shutdown| Restart |             | Engines     |
|        |          |     |      |     |     Time      |         |             |             |
+--------+----------+-----+------+-----+---------------+---------+-------------+-------------+
| adminSe| RUNNING  | N/A | 2864 | N/A | Mon May 21    | false   | base-0.0.0.0| jms,ejb,web |
|rver(*) |(3085 sec)|     |      |     |20:42:15 KST   |         |:9736        |             |
|        |          |     |      |     |2012           |         | http-server-|             |
|        |          |     |      |     |               |         |0.0.0.0:8088 |             |
+--------+----------+-----+------+-----+---------------+---------+-------------+-------------+
| server1| RUNNING  |host1| 3232 | N/A | Mon May 21    | false   | base-192.168| jms,ejb,web |
|        |(729 sec) |     |      |     |21:22:13 KST   |         |.0.4:9836    |             |
|        |          |     |      |     |2012           |         |             |             |
+--------+----------+-----+------+-----+---------------+---------+-------------+-------------+
| server2| RUNNING  |host1| 1900 | N/A | Mon May 21    | false   | base-192.168| jms,ejb,web |
|        |(146 sec) |     |      |     |21:32:05 KST   |         |.0.4:9936    |             |
|        |          |     |      |     |2012           |         |             |             |
+--------+----------+-----+------+-----+---------------+---------+-------------+-------------+
==============================================================================================


2.3. 서버 설정

서버 설정은 WebAdmin이나 콘솔 툴을 통해 설정 가능하다.

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

2.3.1. 기본 설정

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

2.3.1.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' 설정이 변경되고 서버에 반영된 것을 확인할 수 있다.

콘솔 툴 사용

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

[예 2.2] 콘솔 툴을 통해 동적 설정변경

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

[DAS]domain1.adminServer>modify-server server1 -logStdoutToRawFormat false -mejb
 true -classFtp true
Successfully performed the MODIFY operation for server (server1).
Check the results using "list-servers server1 or modify-server server1"

[DAS]domain1.adminServer>modify-server server1
Shows the current configuration.
server (server1)
================================================================================
+----------------------------------+-------------------------------------------+
| Node                             | node1                                     |
+----------------------------------+-------------------------------------------+
| JVM Configs                      | -Xmx256m -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.1.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을 추적하여 Connection이 닫히지 않은 경우 모드에 따라 사용하는 리소스에 대해 logging을 남기거나 반환하는 작업을 한다. 이 구성요소를 위해 3가지 모드 중 하나를 선택할 수 있다.

모드설명
NoAction반환되지 않은 리소스가 있더라도 아무런 동작을 하지 않는다.
Warning컴포넌트 호출 후에 반환되지 않은 리소스에 대한 로그를 남긴다. (기본값)
AutoClose컴포넌트 호출 후에 반환되지 않은 리소스에 대한 로그를 남기고 이를 닫아준다.

WebAdmin 사용

다음은 WebAdmin을 통해 Action On Resource Leak을 설정하는 예이다.

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

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

  3. 'Action On Resource 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 server1
    Shows the current configuration.
    server (server1)
    ================================================================================
    +----------------------------------+-------------------------------------------+
    | Node                             | node1                                     |
    +----------------------------------+-------------------------------------------+
    | JVM Configs                      | -Xmx256m -XX:MaxPermSize=128m             |
    +----------------------------------+-------------------------------------------+
    | Action On Resource Leak          | WARNING                                   |
    +----------------------------------+-------------------------------------------+
    | Stdout to Raw Format             | true                                      |
    +----------------------------------+-------------------------------------------+
    | MEJB                             | false                                     |
    +----------------------------------+-------------------------------------------+
    | Class FTP                        | false                                     |
    +----------------------------------+-------------------------------------------+
    | Server Log Home Directory        | none                                      |
    +----------------------------------+-------------------------------------------+
    ================================================================================
  2. server1의 Action On Resource Leak 설정을 AutoClose로 설정한다.

    [DAS]domain1.adminServer>modify-server server1 -actionOnResourceLeak AutoClose
    Successfully performed the MODIFY operation for server (server1), but all change
    s were non-dynamic. They will be applied after restarting.
    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                      | -Xmx256m -XX:MaxPermSize=128m             |
    +----------------------------------+-------------------------------------------+
    | Action On Resource Leak          | AUTO_CLOSE                                |
    +----------------------------------+-------------------------------------------+
    | 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.

    참고

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

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

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

    [DAS]domain1.adminServer>modify-server server1 -actionOnResourceLeak Warning
    Successfully performed the MODIFY operation for server (server1), but all change
    s 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                      | -Xmx256m -XX:MaxPermSize=128m             |
    +----------------------------------+-------------------------------------------+
    | Action On Resource Leak          | WARNING                                   |
    +----------------------------------+-------------------------------------------+
    | Stdout to Raw Format             | true                                      |
    +----------------------------------+-------------------------------------------+
    | MEJB                             | false                                     |
    +----------------------------------+-------------------------------------------+
    | Class FTP                        | false                                     |
    +----------------------------------+-------------------------------------------+
    | Server Log Home Directory        | none                                      |
    +----------------------------------+-------------------------------------------+
    ================================================================================

참고

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

2.3.1.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 설정을 변경 할 수 있다. add-jvm-option, modify-jvm-option, remove-jvm-option 명령에 대한 자세한 설명은 JEUS Domain 안내서”의 “3.6.2. 서버의 JVM 설정변경”을 참고한다.

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

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

    [DAS]domain1.adminServer>modify-server server1
    Shows the current configuration.
    server (server1)
    ================================================================================
    +----------------------------------+-------------------------------------------+
    | Node                             | node1                                     |
    +----------------------------------+-------------------------------------------+
    | JVM Configs                      | -Xmx512m                                  |
    +----------------------------------+-------------------------------------------+
    | 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 "-XX:MaxPermSize=128m"
    Successfully performed the MODIFY operation for server (server1), but all change
    s were non-dynamic. They will be applied after restarting.
    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 .

    참고

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

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

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

    [DAS]domain1.adminServer>modify-server server1 -jvmOptions "-XX:+HeapDumpOnOutOf
    MemoryError"
    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                                               |
    +------------------------------+----------------------------------------------------+
    =====================================================================================

참고

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

2.3.1.4. 클래스 패스 설정

본 절에는 서버에 부가적인 클래스 패스를 추가하는 방법에 대해 설명한다. 서버에 클래스 패스를 추가하는 설정은 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.2. Listener 설정

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

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

주의

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

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

[그림 2.20] 기본 Listener 설정

기본 Listener 설정


다음은 개별 Listener의 기본적인 설정 방법이다. 우선 다른 시스템 서비스나 엔진에서 참조할 이름을 반드시 설정해야 하고, 다른 Listener와 중복되지 않도록 포트 번호를 설정한다.

[그림 2.21] 개별 Listener 설정

개별 Listener 설정


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

[그림 2.22] 개별 Listener SSL 설정

개별 Listener SSL 설정


2.3.3. 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                  |
+---------------------------------------------------------+--------------------+
================================================================================


[DAS]domain1.adminServer>modify-system-thread-pool server1 -max 200 -keep 600000
Successfully performed the MODIFY operation for The system thread pool of the se
rver (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                  |
+---------------------------------------------------------+--------------------+
================================================================================

다음은 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 af
ter restarting.
Check the results using "show-system-thread-pool server1 -service namingserver o
r modify-system-thread-pool server1 -service namingserver"

[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           | 10                 |
+---------------------------------------------------------+--------------------+
================================================================================

2.3.4. Lifecycle Invocation 설정

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

주의

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

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

[예 2.3] <<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을 통해 서버의 Lifecycle Invocation 클래스로 설정하는 과정에 대한 설명이다.

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

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

    WebAdmin에서 Lifecycle Invocation 설정 (1)

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

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

    WebAdmin에서 Lifecycle Invocation 설정 (2)

  3. Lifecycle Invocation 클래스를 'test.lifecycle.invocation.LifeCycleInvocation'으로 설정하고 [확인] 버튼을 클릭한다.

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

    WebAdmin에서 Lifecycle Invocation 설정 (3)


  4. Lifecycle Invocation 목록에 추가한 Lifecycle Invocation 클래스가 조회된다. 라이브러리 설정을 위해 해당 클래스 이름을 클릭한다.

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

    WebAdmin에서 Lifecycle Invocation 설정 (4)

  5. Lifecycle Invocation 클래스에서 사용할 라이브러리를 설정한다. Lifecycle Invocation 타입에 맞게 수행할 메소드를 추가하기 위해 Library Ref 목록의 [ADD] 버튼을 클릭한다.

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

    WebAdmin에서 Lifecycle Invocation 설정 (5)

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

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

    WebAdmin에서 Lifecycle Invocation 설정 (6)


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

    항목설명
    Library Name사용할 라이브러리 이름을 지정한다.
    Specification Version설정한 라이브러의 스펙 버전을 지정한다.
    Implementation Version설정한 라이브러의 구현 버전을 지정한다.

  6. 다음은 추가한 라이브러리를 [확인] 버튼을 클릭해서 저장했을 때 조회되는 화면이다. Lifecycle Invocation 타입에 맞게 수행할 메소드를 추가하기 위해 Invocation 목록에 [ADD] 버튼을 클릭한다.

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

    WebAdmin에서 Lifecycle Invocation 설정 (7)


  7. test.lifecycle.invocation.LifeCycleInvocation의 BOOT 메소드가 BOOT 시점에 호출되도록 하려면 다음과 같이 설정하고 [확인] 버튼을 클릭한다.

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

    WebAdmin에서 Lifecycle Invocation 설정 (8)


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

    • Method Param

      항목설명
      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 사용될 메소드의 파라미터를 지정한다.

  8. 다음은 Lifecycle Invocation 메소드를 추가한 내용을 [확인] 버튼을 클릭해서 저장했을 때 조회되는 화면이다.

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

    WebAdmin에서 Lifecycle Invocation 설정 (9)


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

    [그림 2.32] WebAdmin에서 Lifecycle Invocation 설정 (10)

    WebAdmin에서 Lifecycle Invocation 설정 (10)


  10. Lifecycle Invocation 설정변경을 완료하면 [Activate Changes] 버튼을 클릭하여 변경한 설정을 서버에 반영한다.

    [그림 2.33] WebAdmin에서 Lifecycle Invocation 설정 (11)

    WebAdmin에서 Lifecycle Invocation 설정 (11)


    다음은 Lifecycle Invocation 설정변경의 결과이다. 화면 상단에 설정변경 결과 메시지가 출력되고, 서버의 Lifecycle Invocation 설정이 변경된 것을 확인할 수 있다.

    [그림 2.34] WebAdmin에서 Lifecycle Invocation 설정 (12)

    WebAdmin에서 Lifecycle Invocation 설정 (12)


    참고

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

2.3.5. Resource Reference 설정

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

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

주의

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

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

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

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

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

    WebAdmin에서 Resource Reference 설정 (1)

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

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

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

    WebAdmin에서 Resource Reference 설정 (2)

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

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

    WebAdmin에서 Resource Reference 설정 (3)

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

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

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

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

    WebAdmin에서 Resource Reference 설정 (4)

  5. [Activate Chages] 버튼을 클릭하여 변경한 설정을 서버에 반영한다.

  6. 다음은 리소스 매핑 설정변경의 결과이다.

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

    [그림 2.39] WebAdmin에서 Resource Reference 설정 (6)

    WebAdmin에서 Resource Reference 설정 (6)


2.3.6. Group Management Service(GMS) 설정

Group Management Service(이하 GMS)는 도메인을 구성하는 서버나 클러스터들이 서로 간의 상태를 체크하기 위해 사용하는 서비스이다. 그룹에 속한 멤버들에게 정해진 주기마다 자신의 상태를 보내고 또 다른 멤버들의 상태를 확인한다. 이 항목에서는 서버 그룹이나 클러스터 그룹의 멤버(서버나 클러스터) 간에 상태를 확인할 주기와 상태 체크에 이상이 있을 때 멤버가 FAILURE라고 감지할 재시도 횟수 등을 WebAdmin을 통해 설정할 수 있다.

다음은 WebAdmin에서 설정을 변경하기 위한 과정이다.

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

  2. 동적 설정변경을 위해 왼쪽 메뉴의 하단에 위치한 [LOCK & EDIT] 버튼을 클릭해서 Lock을 가져온다.

  3. 'Failure Verification Timeout' 항목을 10초로 수정하고 [확인] 버튼을 클릭한다.

  4. [Activate Chages] 버튼을 클릭해서 변경한 설정을 서버에 반영한다. 화면 상단에 설정변경 결과 메시지가 출력되고, 설정이 변경된 것을 확인할 수 있다.

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