JEUS 설정
본 장에서는 도메인에 서버를 추가하는 방법과 서버를 추가할 때 꼭 필요한 설정에 대해서 설명한다. 또한 서버에 설정을 변경할 때의 동작 방법에 대해서 설명한다.
1. 개요
JEUS에서는 WebAdmin과 콘솔 툴을 통해 서버의 설정을 변경할 수 있다. 서버의 엔진에서 동작하는 애플리케이션이 보안 인증과 권한 검사를 필요로 하지 않는다면 JEUS에서 보안 기능을 사용하지 않도록 설정한다.
위와는 별도로 하위 구성 요소들에 대한 튜닝도 확인해야 한다. 이에 대한 설명은 각 구성 요소에 대한 장을 참고한다.
2. 서버 추가
본 절에서는 WebAdmin과 콘솔 툴을 통해 도메인에 서버를 추가하는 방법과 서버를 추가할 때 반드시 필요로 하는 최소 설정에 대해 설명한다. 서버 설정에 대한 자세한 내용은 서버 설정을 참고한다.
WebAdmin을 사용해서 서버를 추가할 경우에는 서버의 모든 설정을 추가할 수 있다. 그러나 콘솔 툴을 통해 명령어를 사용해서 서버를 추가할 경우에는 서버의 모든 설정을 추가할 수 없다.
2.1. WebAdmin 사용
다음은 WebAdmin을 사용해서 서버를 추가하는 과정에 대한 설명이다.
-
WebAdmin 메인 화면에서 Master Server를 선택한 후 JEUS Master 화면 상단 메뉴에서 [도메인]을 선택한다.
webAdmin 도메인 관리 콘솔 화면 -
[서버] 메뉴를 선택하면 도메인 내에 존재하는 서버 목록이 조회된다. 새로운 서버를 추가하기 위해서는 [추가] 버튼을 클릭한다.
WebAdmin 서버 목록 화면 -
서버 추가 화면에서 추가할 서버의 이름과 'Jvm Option'을 설정하고 [추가] 버튼을 클릭한다.
WebAdmin 서버 설정 화면 - 서버 추가 (1)WebAdmin 서버 설정 화면 - 서버 추가 (2)필요한 경우 서버의 고급 선택사항을 설정한다. 서버를 추가할 때 이 설정이 반드시 필요하지 않기 때문에 상세한 항목 설정은 하지 않는다.
WebAdmin 서버 설정 화면 - 고급 선택사항다음은 주요 설명 항목에 대한 설명이다. 각 설정 항목에 대한 자세한 내용은 화면의 설명을 참고한다.
항목 설명 Name
서버의 이름이다.
Log Home
JEUS Server에서 만드는 log의 기본 경로를 지정한다. 자세한 설명은 JEUS 로거 기본 구조를 참고한다.
Listeners
서버의 JEUS 시스템이 사용하는 Socket Listener 및 Socket Connection Request 처리에 필요한 각종 속성을 지정한다.
Action On Resource Leak
컴포넌트(주로 Stateless Component - Servlet/JSP, Stateless Session Bean, MDB)에서 사용한 리소스(JCA, JDBC Connection 등)에 대한 Logging이나 반환 액션을 설정한다. 기본 동작은 Logging을 남기는 것(Warning)이다. 설정에 대한 자세한 내용은 Action On Resource Leak 설정을 참고한다.
Data Source Remote Lookup
Remote JVM 상에서의 데이터소스 Lookup이 가능하도록 한다. 데이터소스 Lookup을 통해 Remote JVM에서 Connection Pool을 구성하여 사용하던 기존 Standalone Client를 지원할 수 있다.
Engine Init On Startup
서버 내부의 엔진들(Web, EJB, JMS)의 초기화 시점을 설정한다. 자세한 설명은 엔진 초기화 시점 설정을 참고한다.
이 부분이 체크되면 서버가 초기화 될 때 내부 엔진들도 함께 초기화되고, 체크되지 않았을 경우에는 각 엔진별로 애플리케이션이 deploy될 경우에 초기화된다. 단, JMS 엔진의 경우 EJB 애플리케이션이 MDB(Message Driven Bean)일 경우에 애플리케이션이 deploy될 때 초기화된다. 이 설정은 서버를 재기동해야 적용된다.
Use Ejb Engine
서버 내부의 EJB 애플리케이션을 사용하기 위한 내부 엔진의 사용 여부를 설정한다. 자세한 설명은 엔진 사용 여부 설정을 참고한다.
Use Jms Engine
서버 내부의 JMS 서비스를 사용하기 위한 내부 엔진의 사용 여부를 설정한다. 자세한 설명은 엔진 사용 여부 설정을 참고한다.
Use Web Engine
서버 내부의 웹 애플리케이션을 사용하기 위한 내부 엔진의 사용 여부를 설정한다. 자세한 설명은 엔진 사용 여부 설정을 참고한다. 사용하지 않음으로 설정하고 웹 애플리케이션을 deploy를 하면 deploy는 실패한다. 이 설정은 서버를 재기동해야 적용된다.
Managed Executor Service
Jakarta Concurrency(JSR-236) 스펙에서 사용할 ManagedExecutorService를 설정한다. 애플리케이션 서버가 리소스 및 컨텍스트를 관리하는 ExecutorService 상에서 작업을 실행할 수 있다. 자세한 설명은 JEUS Jakarta Concurrency 안내서의 Managed Objects를 참고한다.
Managed Scheduled Executor Service
Jakarta Concurrency(JSR-236) 스펙에서 사용할 ManagedScheduledExecutorService를 설정한다. 애플리케이션 서버가 리소스 및 컨텍스트를 관리하는 ScheduledExecutorService 상에서 주기적인 작업을 실행할 수 있다. 자세한 설명은 JEUS Jakarta Concurrency 안내서의 Managed Objects를 참고한다.
Context Service
Jakarta Concurrency(JSR-236) 스펙에서 사용할 ContextService를 설정한다. 작업(Task) 자체를 Dynamic Proxy 기술을 통해 컨텍스트를 유지시켜준다. 자세한 설명은 JEUS Jakarta Concurrency 안내서의 Managed Objects를 참고한다.
Managed Thread Factory
Jakarta Concurrency(JSR-236) 스펙에서 사용할 ManagedThreadFactory를 설정한다. 해당 ThreadFactory에서 생성된 스레드 상에서 동작하는 작업(Task)들의 Context가 유지된다. 자세한 설명은 JEUS Jakarta Concurrency 안내서의 Managed Objects를 참고한다.
Node Name
추가할 서버가 속하는 노드의 이름을 설정한다. 노드에는 머신 정보, 호스트 정보 등이 포함된다.
Jvm Option
서버 JVM을 실행할 때 적용하는 옵션을 설정한다. 여러 개의 Jvm Option을 나열할 수 있으며, Jvm Option안에 Enter나 띄어쓰기로 여러 개의 옵션을 한 번에 나열할 수 있다.
Data Source
서버 혹은 클러스터에서 유효한 데이터소스를 지정한다.
-
저장이 완료되면 서버 목록에 새로운 서버가 추가된 것을 확인할 수 있다. 서버 이름을 클릭하면 해당 서버의 설정 정보를 관리할 수 있다.
WebAdmin 서버 설정 화면 - 서버 추가 결과 -
새로 추가한 서버의 이름을 클릭하면 서버 설정 화면이 나타난다.
서버 추가 - 서버 설정 변경 화면 -
[Basic] > [System Thread Pool] 메뉴를 선택하면 System Thread Pool 설정 화면으로 이동한다. [수정] 버튼을 클릭하고 'Max' 값을 200으로 변경한다.
서버 추가 - SysteLim Thread Pool 설정 -
[저장] 버튼을 클릭하면 설정 변경 내용이 저장되면서 [저장 완료]라는 결과 메시지가 표시된다.
서버 추가 - System Thread Pool 설정 저장 -
System Thread Pool 저장이 완료되면 다음은 서버의 Listener 정보를 설정해야 한다. Listener port는 머신 내 다른 서버에서 사용하는 포트와 겹치지 않도록 설정해야 한다. 서버 화면에서 추가한 서버를 선택한 후 서버 기본 설정 화면에서 [Resource] > [Listener] 메뉴를 선택하면 Listener 목록 화면으로 이동한다.
서버 추가 - Listener 설정 정보 변경 -
기본 설정 영역에서 [수정] 버튼을 클릭하고 Listen Port를 9836으로 변경한 후 [저장] 버튼을 클릭한다. 변경한 설정 내용이 저장되고 화면의 Listener 목록에 Listener Port 정보가 변경된 것을 확인할 수 있다.
서버 추가 - Listener 설정 정보 저장 -
Listener 목록 아래에 기본 설정 영역에서 'Base' 리스너로 base(0.0.0.0/9836)가 선택되어 있지 않은 경우 base Listener를 선택하고 [저장] 버튼을 클릭한다.
서버 추가 - 기본 Listener 설정 -
서버 기본 설정 화면에서 [Engine] 탭을 선택하면 [Web Engine], [Jms Engine], [Ejb Engine] 메뉴를 선택해서 엔진의 정보를 설정할 수 있다.
서버 추가 - 웹 엔진 설정
2.2. 콘솔 툴 사용
콘솔 툴에서는 add-server 명령어를 통해 서버를 추가할 수 있다. 하지만 이 명령어로는 몇 가지 설정에 대해서만 추가할 수 있기 때문에 서버를 추가하고 난 뒤에 별도의 명령어들을 통해 설정을 변경해야 한다. 만약 엔진 설정을 변경하는 경우 웹 엔진, EJB 엔진, JMS 엔진 명령어를 사용한다.
웹 엔진 설정을 변경하는 명령어(JEUS Reference 안내서의 웹 엔진 관련 명령어), EJB 엔진 설정을 변경하는 명령어(JEUS Reference 안내서의 EJB 엔진 관련 명령어), JMS 엔진 설정을 변경하는 명령어(JEUS Reference 안내서의 JMS 엔진 관련 명령어)에 대한 자세한 설명은 관련 안내서를 참고한다. |
다음은 콘솔 툴에서 서버를 추가하는 예제이다.
[MASTER]domain1.adminServer>server-info Information about Domain (domain1) ================================================================================ +--------+---------+-----+-----+-----+-----------+--------+-----------+--------+ | Server | Status |Node | PID | Clu | Latest | Need | Listen |Running | | | |Name | |ster |Start Time | to | Ports |Engines | | | | | | | / |Restart | | | | | | | | | Shutdown | | | | | | | | | | Time | | | | +--------+---------+-----+-----+-----+-----------+--------+-----------+--------+ | adminS | RUNNING | nod | 572 | N/A |2022-07-14 | false | base-0.0. | jms, | |erver |(00:18:2 |e1 |02 | |(목) 오후 | |0.0:9736 |web, ejb| |(*) |0) | | | |01:28:24 | | http-serv | | | | | | | |KST | |er-0.0.0.0 | | | | | | | | | |:8088 | | +--------+---------+-----+-----+-----+-----------+--------+-----------+--------+ | server1| RUNNING | nod | 589 | N/A |2022-07-14 | false | base-0.0. | jms, | | |(00:00:0 |e1 |25 | |(목) 오후 | |0.0:9836 |web, ejb| | |8) | | | |01:46:36 | | http-serv | | | | | | | |KST | |er-0.0.0.0 | | | | | | | | | |:8188 | | +--------+---------+-----+-----+-----+-----------+--------+-----------+--------+ ================================================================================ [MASTER]domain1.adminServer>add-server server2 -addr 192.168.15.59 -port 9936 -node node1 -jvm "-Xmx512m -XX:MaxPermSize=128m" Successfully performed the ADD operation for server (server2). NOTICE : base-addr [192.168.15.59] base-port [9936] http-port [8088] Check the results using "list-servers or add-server". [MASTER]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". [MASTER]domain1.adminServer>server-info Information about Domain (domain1) ================================================================================ +--------+---------+-----+-----+-----+-----------+--------+-----------+--------+ | Server | Status |Node | PID | Clu | Latest | Need | Listen |Running | | | |Name | |ster |Start Time | to | Ports |Engines | | | | | | | / |Restart | | | | | | | | | Shutdown | | | | | | | | | | Time | | | | +--------+---------+-----+-----+-----+-----------+--------+-----------+--------+ | adminS | RUNNING | nod | 572 | N/A |2022-07-14 | false | base-0.0. | jms, | |erver |(00:38:1 |e1 |02 | |(목) 오후 | |0.0:9736 |web, ejb| |(*) |1) | | | |01:28:24 | | http-serv | | | | | | | |KST | |er-0.0.0.0 | | | | | | | | | |:8088 | | +--------+---------+-----+-----+-----+-----------+--------+-----------+--------+ | server1| RUNNING | nod | 589 | N/A |2022-07-14 | false | base-0.0. | jms, | | |(00:19:5 |e1 |25 | |(목) 오후 | |0.0:9836 |web, ejb| | |9) | | | |01:46:36 | | http-serv | | | | | | | |KST | |er-0.0.0.0 | | | | | | | | | |:8188 | | +--------+---------+-----+-----+-----+-----------+--------+-----------+--------+ | server2| SHUTDOWN| nod | N/A | N/A |2022-07-14 | N/A | N/A | N/A | | | |e1 | | |(목) 오후 | | | | | | | | | |02:04:50 | | | | | | | | | |KST | | | | +--------+---------+-----+-----+-----+-----------+--------+-----------+--------+ ===============================================================================
3. 서버 설정
서버 설정은 WebAdmin이나 콘솔 툴을 사용해서 설정이 가능하다. 콘솔 툴의 경우는 WebAdmin에서처럼 서버의 모든 설정을 변경할 수는 없다. 콘솔 툴에서는 사용자가 많이 사용하는 주요 설정만 사용할 수 있도록 한다. 콘솔 툴에서 변경할 수 없는 설정은 WebAdmin을 통해서 변경해야 한다.
3.1. 환경변수 설정
본 절에서는 서버 및 JEUS에서 제공하는 각종 콘솔 툴들이 동작하기 위해 필요한 환경변수에 대하여 설명한다. 환경변수는 WebAdmin이나 콘솔 툴을 통한 설정을 지원하지 않는다.
JEUS가 동작하기 위하여 필요한 환경변수는 설치 시 UNIX 환경인 경우 JEUS_HOME/bin/jeus.properties, Windows 환경인 경우 JEUS_HOME\bin\jeus.properties.cmd 파일에 자동적으로 기본값이 설정된다. 해당 파일들은 각 운영체제 계열에서 제공하는 쉘 스크립트로 작성되어 있으며, 필요한 경우 사용자가 해당 파일을 수정하여 환경변수를 추가하거나 수정할 수 있다.
쉘 스크립트를 작성하는 방법이나 환경변수를 변경하는 방법은 OS에 따라 다르므로, 이에 대해서는 각 OS 안내서를 참고한다. |
JEUS에서 사용하는 주요 환경변수에 대한 목록은 다음과 같다.
환경변수 | 설명 |
---|---|
JEUS_HOME |
JEUS 설치 디렉터리를 설정한다. (예: /home/jeus) |
JEUS_LIBPATH |
JEUS 라이브러리 파일 경로를 설정한다. (예: /home/jeus/lib/system) |
VM_TYPE |
Java HotSpot JVM 사용 유무를 설정한다. (예: hotspot or old) |
JEUS_USERNAME |
Administrator 계정의 ID를 설정한다. |
JEUS_PASSWORD |
Administrator 패스워드를 설정한다. |
JAVA_HOME |
JDK 설치 디렉터리 경로를 설정한다. (예: /usr/jdk1.7) |
JAVA_ARGS |
JDK 파라미터를 설정한다. |
JAVA_VENDOR |
JDK 벤더를 설정한다. (예: Sun, IBM, HP) |
jeus.properties에 지정한 환경변수는 해당 스크립트를 참조하여 실행하는 모든 서버 및 툴에 적용된다.
서버별로 환경변수를 다르게 지정하고자 하는 경우에는 다음과 같은 과정을 수행한다.
-
다음의 경로에 각 운영체제별로 환경변수 파일 또는 셸 스크립트 파일을 생성한다.
-
UNIX 환경
JEUS_HOME/bin/<DOMAIN_NAME>.<SERVER_NAME>.properties
-
Windows 환경
JEUS_HOME\bin\<DOMAIN_NAME>.<SERVER_NAME>.properties.cmd
-
-
각 운영체제별로 생성한 파일(과정 1)을 수정하여 환경변수를 지정한다. 파일을 작성할 때 jeus.properties 또는 jeus.properties.cmd 파일을 참고한다.
환경변수를 지정할 때에는 변수이름 앞 주석처리 부분(UNIX의 경우 #, Windows의 경우 rem)을 제거하여 사용한다.
다음은 각 운영체제별 환경변수 파일의 예이다.
-
UNIX 환경
############################################################################### # This part is for booting JEUS automatically. # # BE CAREFUL!! THIS IS ONLY FOR TEST AND DEVELOPMENT ENVIRONMENT. # ############################################################################### # Set up administrator name # JEUS_USERNAME= # Set up administrator password # JEUS_PASSWORD=
-
Windows 환경
rem rem This part is for booting JEUS automatically. rem BE CAREFUL!! THIS IS ONLY FOR TEST AND DEVELOPMENT ENVIRONMENT. rem rem Set up administrator name rem SET JEUS_USERNAME= rem Set up administrator password rem SET JEUS_PASSWORD=
-
-
서버 기동 스크립트를 사용하여 서버를 기동하는 경우 - server 옵션을 사용하여 서버 이름을 지정한다.
다음은 각 운영체제별 서버 기동하는 예제이다.
-
UNIX 환경
JEUS_HOME/bin$startMasterServer -server adminServer
-
Windows 환경
JEUS_HOME\bin>startMasterServer.cmd -server adminServer
-
3.2. 기본 설정
본 절에서는 기본적인 설정에 대해서 설명한다. 설명하지 않은 설정들에 대해서는 관련 서비스에 대한 안내서를 참고한다.
3.2.1. 기본 설정 동적으로 변경
서버의 기본 설정 중 Class FTP, Use MEJB, Log Stdout To Raw Format은 동적 변경 가능하다. 동적 반영되는 설정은 WebAdmin에서는 아이콘()을 통해 확인할 수 있고, 콘솔 툴에서는 help 명령어를 통해 modify-server 명령어를 실행하면 조회할 수 있다. 각 명령어에 대한 자세한 내용은 JEUS Reference 안내서를 참고한다.
WebAdmin 사용
다음은 WebAdmin을 통해 동적 변경이 가능한 기본 설정들을 변경하는 과정에 대한 설명이다.
-
WebAdmin 메인 화면에서 Master Server를 선택한 후 JEUS Master 화면 상단 메뉴에서 [서버]를 선택한다.
-
서버 화면의 목록에 도메인 내에 존재하는 서버 목록이 조회된다. 목록에서버를 선택하면 서버 기본 설정 화면으로 이동한다.
-
[Basic] > [Basic Info] 메뉴를 선택한 후 Basic Info 화면에서 [수정] 버튼을 클릭한다. 고급 선택사항에서 'Use MEJB', 'Log Stdout To Raw Format' 항목을 설정한다. 설정이 완료되면 [저장] 버튼을 클릭한다.
서버 추가 - 동적 설정 변경 -
설정이 완료되면 화면 상단에 저장 완료 메시지가 출력된다. 'Use MEJB', 'Log Stdout To Raw Format' 설정이 변경되고 서버에 반영된 것을 확인할 수 있다.
콘솔 툴 사용
다음은 콘솔 툴 사용 동적 변경 가능한 기본 설정을 변경하는 예이다.
[MASTER]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 | +-----------------------------------+------------------------------------------+ ================================================================================ [MASTER]domain1.adminServer>modify-server server2 -logStdoutToRawFormat false -mejb true -classFtp true Successfully performed the MODIFY operation for server (server2). Check the results using "list-servers server2 or modify-server server2" [MASTER]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 | +-----------------------------------+------------------------------------------+ ===============================================================================
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을 추적하여 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을 설정하는 예이다.
-
WebAdmin 메인 화면에서 Master Server를 선택한 후 JEUS Master 화면 상단 메뉴에서 [서버]를 선택한다.
-
서버 화면의 목록에 도메인 내에 존재하는 서버 목록이 조회된다. 목록에서버를 선택하면 서버 기본 설정 화면으로 이동한다.
서버 추가 - 서버 설정 변경 화면 -
기본 설정 화면에서 [Basic] > [System Logging] 메뉴를 선택하고, System Logging 목록에서 로거를 클릭한다.
System Logging 목록 -
System Logging 상세 화면의 Handler 영역에 [추가] 버튼을 클릭하면 드롭다운 메뉴에서 [File Handler], [Smtp Handler], [Socket Handler], [User Handler]를 선택할 수 있다.
System Logging 설정 -
[Smtp Handler]를 선택하면 Smtp Handler 추가 화면에서 설정 정보를 입력한다.
SMTP Handler 설정다음은 설정 항목에 대한 설명이다.
-
기본 설정
항목 설명 Name
Handler의 이름을 설정한다. Handler의 이름은 logger 내에서 유일해야 한다.
Level
Handler의 레벨을 설정한다. Logger의 레벨 설정으로 찍히는 로그 중에 이메일 안내를 보낼 로그의 레벨을 설정한다.
Smtp Host Address
이메일을 보낼 SMTP 서버의 주소를 설정한다. 단, SMTP 호스트는 SSL 프로토콜을 사용하지 않는 서버여야 한다.
Sender Id
SMTP 서버에 등록된 메일 송신자 id를 설정한다.
Sender Password
SMTP 서버에 등록된 메일 송신자 password를 설정한다.
From Address
이메일 송신자의 메일 주소를 설정한다.
To Address
이메일 수신자의 메일 주소를 설정한다.
Send For All Messages
-
true : 로그에 찍히는 모든 메시지 중 handler의 레벨을 통과한 메시지는 모두 이메일 전송이 되게 된다.
-
false : Rsource Leak 안내와 같은 몇몇 메시지만 이메일 전송이 된다.
Property
SMTP 메일 서버에 전달할 property를 설정한다.
-
-
고급 선택사항
항목 설명 Cc Address
e-mail을 참조로 받는 사람의 주소를 지정한다.
Bcc Address
e-mail을 숨은 참조로 받는 사람의 주소를 지정한다.
Encoding
핸들러가 메시지를 남길 때 사용할 Encoding을 설정한다.
Filter Class
핸들러에 지정할 필터 클래스의 Fully Qualified Class Name을 설정한다. 필터 클래스에 구현한 내용을 바탕으로 로그 메시지들이 필터링되어서 출력된다.
-
-
핸들러 정보를 입력한 후 [추가] 버튼을 클릭하면 Handler 목록에 새로운 Smtp Handler가 추가되고, 서버의 'Action On Resource Leak' 설정이 변경된 것을 확인할 수 있다. 운영 중인 서버의 Action On Resource Leak 설정을 변경한 경우 설정을 적용하려면 서버를 재기동해야 한다.
콘솔 툴 사용
다음은 콘솔 툴의 modify-server 명령어를 통해 Action On Resource Leak을 변경하는 예이다.
-
서버를 부팅하기 전에 modify-server 명령어를 통해 현재 설정을 변경할 서버의 설정을 조회한다.
[MASTER]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 | +-----------------------------------+------------------------------------------+ ===============================================================================
-
server2의 Action On Resource Leak 설정을 AutoClose로 설정한다.
[MASTER]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".
동적 반영이 되지 않는 옵션들의 경우는 서버를 부팅하기 전에 변경해야 한다. 운영 중인 서버에 이런 설정을 수정하게 되면 동적으로 반영되지 않기 때문에 서버를 재기동해야 한다.
-
modify-server 또는 list-servers 명령어를 통해 변경한 설정이 잘 반영되었는지를 확인한다.
[MASTER]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 | +-----------------------------------+------------------------------------------+ ================================================================================
-
'server2’의 Action On Resource Leak 설정을 다시 원래 값인 WARNING으로 변경한다.
이 설정은 서버가 운영 중이기 때문에 설정 변경만 되고 실제로 서버에 적용되지는 않는다. 변경한 설정이 적용되길 원한다면 서버를 재기동해야 한다.
[MASTER]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".
-
modify-server 또는 list-servers 명령어를 통해 변경한 설정을 확인한다.
[MASTER]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 안내서의 Server Management 관련 명령어에서 해당 명령어에 대한 내용을 참고한다. |
3.2.3. Jvm Config 설정
Jvm Config는 서버를 실행하기 위해 개별적인 JVM에 추가할 파라미터들을 선언하는 데 사용된다. 여기에 설정한 값들을 Launcher 프로세스에서 서버를 시작하기 전에 이 값을 읽어서 서버 JVM을 생성할 때 파라미터로 추가한다. 지정 가능한 JEUS 파라미터들의 목록은 JEUS Reference 안내서의 서버 시스템 프로퍼티를 참고한다. 표준 JVM 파라미터들도 설정 가능하다.
서버에 적용할 JVM 옵션, 시스템 프로퍼티와 더불어 JEUS에서 제공하는 시스템 프로퍼티도 여기에 설정할 수 있다. 주로 JVM 메모리나 옵션들을 설정하는데, 이는 서버의 운영 환경에 맞는 적절한 값을 설정해야 한다. JVM Config 관련 추가적인 설명은 JEUS Domain 안내서의 서버의 JVM 설정변경을 참고한다.
서버가 운영 중일 때는 이 값을 변경해도 반영되지 않는다. 동적 설정 반영의 대상이 아니기 때문에 운영 중인 서버에 이 값을 변경한 경우에는 서버를 재기동해야 적용된다. |
WebAdmin 사용
다음은 WebAdmin을 통해 Jvm Config를 설정하는 과정에 대한 설명이다.
-
WebAdmin 메인 화면에서 Master Server를 선택한 후 JEUS Master 화면 상단 메뉴에서 [서버]를 선택한다.
-
서버 화면 목록에서 설정 정보를 변경할 서버를 선택한 후 기본 설정 화면에서 [Basic] > [Basic Info] 탭을 선택한다.
-
Basic Info 화면에서 [수정] 버튼을 클릭한 후 'Jvm Option' 항목의 설정을 변경하고 [저장] 버튼을 클릭한다.
서버 설정 - JVM 옵션 변경 -
저장이 완료되면 저장 완료 메시지가 나타나고 서버 설정 화면에서 서버의 JVM 설정이 변경된 것을 확인할 수 있다. 운영 중인 서버의 Jvm Config를 변경했다면 서버를 재기동해야 변경한 JVM 설정이 적용된다.
콘솔 툴 사용
콘솔 툴의 modify-server, add-jvm-option, modify-jvm-option, remove-jvm-option을 이용하여 서버의 JVM 설정을 변경할 수 있다. 명령에 대한 자세한 설명은 JEUS Domain 안내서의 서버의 JVM 설정변경, JEUS Reference 안내서의 Server Management 관련 명령어를 참고한다.
다음은 콘솔 툴의 modify-server 명령어를 통해 서버의 JVM 설정을 변경하는 예이다.
-
서버를 부팅하기 전에 modify-server 명령어를 통해 현재 설정을 변경할 서버의 설정을 조회한다.
[MASTER]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 | +---------------------------------------------------------+---------+ =====================================================================
-
server1에 JVM 옵션을 추가한다. JVM의 최대 Heap 메모리를 512MB로 설정하고, 최대 Permanent 메모리를 128MB로 설정한다.
[MASTER]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".
동적 반영이 되지 않는 옵션들의 경우는 서버를 부팅하기 전에 변경해야 한다. 운영 중인 서버의 설정 정보를 변경하면 동적으로 반영되지 않기 때문에 서버를 재기동해야 한다.
-
modify-server 또는 list-servers 명령어를 통해 변경한 설정의 정상 반영을 확인한다.
[MASTER]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 | +-----------------------------------+------------------------------------------+ ================================================================================
-
'server1’에 JVM 옵션을 추가한다.
서버에 OutOfMemoryError가 발생한 경우 Heap Dump 파일을 남기는 옵션을 추가하였다. 이 설정은 서버가 운영 중이기 때문에 설정 변경만 되고 실제로 서버에 반영되지는 않는다. 변경한 설정이 반영되길 원한다면 서버를 재기동해야 한다.
[MASTER]domain1.adminServer>modify-server server1 -jvmOptions "-XX:+HeapDumpOnOutOfMemoryError" Successfully performed the MODIFY operation for server (server1). Check the results using "list-servers server1 or modify-server server1".
-
modify-server 또는 list-servers 명령어를 통해 변경한 설정을 확인한다.
[MASTER]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 | +---------------------------+--------------------------------------------------+ ================================================================================
3.2.4. 클래스 패스 설정
본 절에는 서버에 부가적인 클래스 패스를 추가하는 방법에 대해 설명한다. 서버에 클래스 패스를 추가하는 설정은 WebAdmin을 통해서만 가능하다.
서버가 운영 중일 때는 이 값을 변경해도 반영되지 않는다. 동적 설정 반영의 대상이 아니기 때문에 운영 중인 서버에 이 값을 변경한 경우에는 서버를 재기동해야 적용된다. |
WebAdmin 사용
다음은 WebAdmin을 통해 서버에 클래스 패스를 추가하는 설정들을 변경하는 예이다.
-
WebAdmin 메인 화면에서 Master Server를 선택한 후 JEUS Master 화면 상단 메뉴에서 [서버]를 선택한다.
-
서버 화면 목록에서 서버를 선택한 후 기본 설정 화면에서 [Basic] > [Basic Info] 탭을 선택한다.
-
Basic Info 화면에서 [수정] 버튼을 클릭한 후 고급 선택사항에서 User Interceptor의 하위 항목에 원하는 클래스 패스를 추가한다. 설정이 완료되면 [저장] 버튼을 클릭한다.
-
운영 중인 서버의 User Interceptor 설정을 변경한 경우 서버를 재기동해야 변경한 설정이 반영된다.
3.3. Listener 설정
본 절에서는 서버에서 사용하는 네트워크 Listener 설정에 대해서 설명한다.
네트워크 Listener는 서버에서 수행되는 시스템 서비스들이나 각종 엔진에서 참조하여 그 설정을 사용하기 위한 것이다. 이 Listener는 포트 통합 서비스가 적용되어 있기 때문에 각자 다른 서비스나 엔진에서 하나의 Listener를 공유해서 사용하도록 설정할 수도 있다. 극단적인 예로는 기본 Listener 하나만을 열어두고 모든 서비스를 해당 Listener를 통해서 서비스하는 것도 가능하다.
서버가 운영 중일 때 이 값을 변경하려고 하면 반영되지 않는다. 동적 설정 반영의 대상이 아니기 때문에 운영 중인 서버에 이 값을 변경한 경우에는 서버를 재기동해야 적용된다. |
WebAdmin 사용
다음은 WebAdmin에서 기본 Listener를 설정하는 방법이다. 기본 Listener는 설정된 Listener 중의 하나를 선택하게 되며, JEUS의 가장 기본적인 시스템 서비스 및 Webadmin 등이 이 Listener를 사용하게 된다.
-
WebAdmin 메인 화면에서 Master Server를 선택한 후 JEUS Master 화면 상단 메뉴에서 [서버]를 선택한다.
-
서버 화면 목록에서 서버를 선택한 후 기본 설정 화면에서 [Resource] > Listener] 탭을 선택한다.
-
Listener 화면에서 [추가] 버튼을 클릭한 후 Listener 추가 화면에서 Listener 설정 정보를 입력한다. 개별 Listener의 기본적인 설정은 다른 시스템 서비스나 엔진에서 참조할 이름을 반드시 설정하며, 다른 Listener와 중복되지 않도록 포트 번호를 설정한다. 항목에 대한 설명은 [설명 보기] 버튼을 클릭해서 확인한다.
개별 Listener 설정 -
설정 정보 입력이 완료되면 [추가] 버튼을 클릭해서 저장한다.
3.4. Thread Pool 설정
본 절에서는 서버에서 사용하는 공용 Thread Pool에 대한 설정을 설명한다.
서버에서 사용되는 서비스들이 전용 Thread Pool을 별도로 설정해서 사용하지 않는다면 모두 이 공용 Thread Pool을 사용한다. 공용 Thread Pool을 사용하는 서비스는 트랜잭션 서비스와 JNDI 서비스, 스케줄러 서비스가 있다. 이 서비스들은 설정에 따라 공용 Thread Pool을 사용할 수도 있고, 전용 Thread Pool을 사용할 수도 있다. 공용 Thread Pool을 사용한다면 서비스에서 사용할 최소 Thread 개수를 미리 할당해 놓을 수 있다.
애플리케이션의 요청을 처리하는 엔진에서는 공용 Thread Pool을 사용하지 않는다. 서비스에서 전용 Thread Pool을 사용하는 방법에 대한 설명은 JNDI Naming Server와 트랜잭션 매니저와 JEUS Scheduler 안내서를 참고한다. |
WebAdmin 사용
다음은 WebAdmin에서 Thread Pool을 설정하는 방법에 대한 설명이다.
-
WebAdmin 메인 화면에서 Master Server를 선택한 후 JEUS Master 화면 상단 메뉴에서 [서버]를 선택한다.
-
서버 화면 목록에서 서버를 선택한 후 기본 설정 화면에서 [Basic] > [System Thread Pool] 탭을 선택한다.
-
System Thread Pool 화면에서 [수정] 버튼을 클릭한 후 Thread Pool의 'Max'와 'Keep Alive Time'을 변경하고 [저장] 버튼을 클릭한다.
다음은 설정 항목에 대한 설명이다.
-
기본 설정
항목 설명 Min
Thread Pool에서 관리하는 Thread의 최소 개수를 의미한다. 필요할 때 Thread를 생성한다. (기본값: 0)
Max
Thread 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)
-
-
-
콘솔 툴 사용
본 절에서는 콘솔 툴로 공용 Thread Pool을 조회하고 변경하는 예제를 설명한다.
예제에서 사용한 명령어들에 대한 자세한 설명은 JEUS Reference 안내서의 Thread Management 관련 명령어를 참고한다. 서비스들에서 사용하는 Thread Pool에 대한 설정은 각 서비스의 매뉴얼을 참고한다. |
다음은 Thread Pool의 max를 100에서 200으로 변경하고 keep alive time을 5분에서 10분으로 변경하는 예제이다.
[MASTER]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 | +---------------------------------------------------------+--------------------+ ================================================================================ [MASTER]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), but all changes were non-dynamic. They will be applied after restarting. Check the results using "modify-system-thread-pool server1 or show-system-thread-pool server1". [MASTER]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를 미리 할당하도록 설정하는 예제이다.
[MASTER]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 | +---------------------------------------------------------+--------------------+ ================================================================================ [MASTER]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". [MASTER]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 | +---------------------------------------------------------+--------------------+ ================================================================================ [MASTER]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 | +----------------------------------------------------------------------+-------+ ================================================================================
3.5. Lifecycle Invocation 설정
JEUS에서는 서버의 Lifecycle에 맞게 사용자가 원하는 작업을 할 수 있도록 Lifecycle Invocation 기능을 제공하고 있다. 서버는 부팅, 다운 과정에서 각 단계에 사용자가 설정한 이벤트를 호출해준다.
서버가 운영 중일 때 class name을 변경하려고 하면 반영되지 않는다. class name 은 동적 설정 반영의 대상이 아니기 때문에 운영 중인 서버에 이 값을 변경한 경우에는 서버를 재기동해야 적용된다. 그 외의 Invocation 설정은 동적반영된다. |
다음은 Lifecycle Invocation에 등록하는 클래스는 일반 Java 클래스 예제이다. 이 클래스를 jar로 패키징 하여 서버의 Lifecycle에 맞게 호출하고 싶은 대상 서버의 SERVER_HOME/lib/application에 위치시킨다.
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 클래스로 설정하는 과정에 대한 설명이다.
-
WebAdmin 메인 화면에서 Master Server를 선택한 후 JEUS Master 화면 상단 메뉴에서 [서버]를 선택한다.
-
서버 화면 목록에서 서버를 선택하면 서버 기본 설정 화면으로 이동한 후 [Resource] > [Lifecycle Invocation] 메뉴를 선택한다.
-
Lifecycle Invocation 화면에서 [추가] 버튼을 클릭한다.
WebAdmin에서 Lifecycle Invocation 설정 (1) -
Lifecycle Invocation 추가 화면에서 Lifecycle Invocation 클래스의 'Class Name'을 'test.lifecycle.invocation.LifeCycleInvocation’으로 설정하고, boot 메소드가 BOOT 시점에 호출되도록 'Invocation Type'을 BOOT로, 'Invocation Method' 항목의 'Method Name'을 'boot’로 지정한 후 [추가] 버튼을 클릭한다.
WebAdmin에서 Lifecycle Invocation 설정 (2)다음은 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 Name
Invocation에 사용될 메서드를 지정한다.
Method Param
Invocation에 사용될 메서드의 파라미터를 지정한다.
-
-
Lifecycle Invocation 목록에 추가한 Lifecycle Invocation 클래스가 조회된다. 목록에서 Lifecycle Invocation 클래스를 클릭하면 Lifecycle Invocation 상세 화면에서 Library Ref와 Invocation에 대한 설정을 할 수 있다.
WebAdmin에서 Lifecycle Invocation 설정 (3) -
Lifecycle Invocation 타입에 맞게 수행할 메서드를 추가하기 위해 Lifecycle Invocation 상세 화면의 Library Ref 영역에서 [추가] 버튼을 클릭한다.
WebAdmin에서 Lifecycle Invocation 설정 (4) -
Library Ref 추가 화면에서 클래스에서 참조하는 라이브러리에 대한 레퍼런스 설정을 입력한다. 여기에 설정한 라이브러리는 lib/shared에 있어야 한다. Shared Library에 대한 자세한 설명은 JEUS Applications & Deployment 안내서의 공유 라이브러리를 참고한다. 항목 설정이 완료되면 [추가] 버튼을 클릭한다.
WebAdmin에서 Lifecycle Invocation 설정 (5)항목 설명 Library Name
사용할 라이브러리 이름을 지정한다.
Specification Version
설정한 라이브러의 스펙 버전을 지정한다.
Implementation Version
설정한 라이브러의 구현 버전을 지정한다.
-
메서드가 호출되는 시점에 따라 Lifecycle Invocation 메서드를 추가로 설정할 수 있다.
WebAdmin에서 Lifecycle Invocation 설정 (6)운영 중인 서버의 Lifecycle Invocation 설정을 변경한 경우 위와 같이 설정 변경은 성공했으나 변경한 Lifecycle Invocation 설정을 서버에 적용할 수 없다는 메시지를 확인할 수 있다. 이 경우 변경한 Lifecycle Invocation 설정을 적용하고 싶다면 서버를 재기동해야 한다.
콘솔 툴 사용
콘솔 툴을 이용하여 Lifecycle Invocation을 추가할 수 있다. add-lifecycle-invocation 명령어를 통해 서버의 Lifecycle Invocation을 추가하고, add-invocation-library 명령어 및 add-invocation 명령어를 통해 Library Ref 및 Invocation을 추가할 수 있다. 이에 대한 자세한 설명은 JEUS Reference 안내서의 add-lifecycle-invocation, add-invocation-library, add-invocation을 참고한다.
[MASTER]domain1.adminServer>add-lifecycle-invocation lifecycle.LifeCycleTester -s adminServer -m boot -type BOOT Successfully performed the ADD operation for Lifecycle Invocation Class [lifecycle.LifeCycleTester] and Invocation [boot](Invocation ID = 0), but all changes were non-dynamic. They will be applied after restarting. Check the results using "list-lifecycle-invocations". [MASTER]domain1.adminServer>list-lifecycle-invocations List of Lifecycle invocations ================================================================================ +---------------+-------------------------------+-----------------+------------+ | Target | Lifecycle Invocation Class | Invocation | Invocation | | | | Library Ref | | +---------------+-------------------------------+-----------------+------------+ | [Server]admin | test.lifecycle.invocation.Lif | lib1 | [1]boot | |Server |eCycleInvocation | | | +---------------+-------------------------------+-----------------+------------+ | [Server]admin | lifecycle.LifeCycleTester | | [0]boot | |Server | | | | +---------------+-------------------------------+-----------------+------------+ ================================================================================ Use the "lifecycle-invocation-info" command for more information about Lifecycle invocation.
3.6. Resource Reference 설정
서버의 애플리케이션에서 공통으로 사용할 리소스에 대한 매핑 정보를 설정한다.
애플리케이션에서 사용하는 리소스는 해당 애플리케이션이 서비스되는 서버의 JNDI 저장소에 이름이 등록된다. 리소스 매핑을 설정하면 등록되는 이름에 상관없이 애플리케이션에서는 항상 같은 이름의 리소스를 Lookup해서 사용할 수 있다.
서버가 클러스터에 포함되어 있는 경우에는 Resource Reference 설정은 클러스터에 설정된 값이 우선 적용된다. |
WebAdmin 사용
다음은 WebAdmin에서 Resource Reference를 설정하는 과정에 대한 설명이다.
-
WebAdmin 메인 화면에서 Master Server를 선택한 후 JEUS Master 화면 상단 메뉴에서 [서버]를 선택한다.
-
서버 화면 목록에서 서버를 선택해서 서버 기본 설정 화면으로 이동한 후 [Basic] > [Res Ref] 메뉴를 선택한다. Resource Reference를 추가하기 위해 Res Ref 화면의 [추가] 버튼을 클릭한다.
WebAdmin에서 Resource Reference 설정 (1) -
Jndi Info 추가 화면에 소스코드에서 참조할 수 있는 이름인 'Ref Name'으로 jdbc/DB1을 입력하고, 실제 JEUS DD에 바인딩되어 있는 JNDI 이름인 'Export Name'으로 db1를 입력한 후 [추가] 버튼을 클릭한다.
WebAdmin에서 Resource Reference 설정 (2)항목 설명 Ref Name
리소스를 매핑하는 레퍼런스 이름을 설정한다. 여기에 설정한 이름이 애플리케이션에서 Lookup할 때 사용될 이름이다.
Export Name
실제 리소스가 서버에 바인딩되어 있는 이름을 지정한다. 실제 리소스가 서버의 JNDI 저장소에 등록된 JNDI 이름이다.
-
저장이 완료되면 결과 메시지가 나타나고, Res Ref 목록에 신규 리소스 매핑 정보가 추가된 것을 볼 수 있다.
WebAdmin에서 Resource Reference 설정 (3)
4. Server Template 설정
클러스터를 생성할 때에 사용할 서버들의 공통적인 설정들을 서버 템플릿으로 저장해 둘 수 있다. 이를 이용하여 클러스터 생성 시에 공통 설정을 가지는 다수의 서버를 자동으로 생성할 수 있어서 간단하게 서버 클러스터 환경을 구성할 수 있다. 서버 템플릿의 설정은 WebAdmin 혹은 콘솔에서 추가할 수 있다.
WebAdmin 사용
WebAdmin 메인 화면에서 Master Server를 선택한 후 JEUS Master 화면 상단 메뉴에서 [서버템플릿]을 선택한 후 [추가] 버튼을 클릭하면 서버 템플릿을 추가할 수 있다.
서버 템플릿 추가 화면의 항목은 서버 추가의 항목과 동일하다. 서버템플릿은 서버 추가와는 달리 실제 서버가 생성되지 않고, 서버 설정을 담은 서버 템플릿만이 추가된다. 이를 이용하여 차후에 서버 클러스터 환경을 구성할 때에 동일한 설정을 가진 서버들을 일괄 생성할 수 있다. 기본적인 설정은 위에서 설명한 서버를 생성할 때 설정과 동일하다.
콘솔 툴 사용
콘솔 툴을 이용하여 서버 템플릿을 추가할 수 있다. add-server-template 명령어를 통해 서버 템플릿을 추가하고, 각종 옵션을 주어 세부 항목을 설정한다. add-server-template에 대한 자세한 설명은 JEUS Reference 안내서의 add-server-template을 참고한다.
[MASTER]domain1.adminServer>add-server-template template1 -m true Successfully performed the ADD operation for server template (template1). NOTICE : base-addr [0.0.0.0] base-port [9736] http-port [8088] Check the results using "list-servers or show-server-template or add-server-template". [MASTER]domain1.adminServer>show-server-template Shows the current configuration. Server template list ============================================================= +-----------------------------------------------+-----------+ | server templates | template1 | +-----------------------------------------------+-----------+ ============================================================