시스템 설정
본 장에서는 JEUS의 환경설정 및 기동 방법에 대한 기본적인 내용을 설명한다.
2. 기본 환경설정
JEUS Jeusadmin 콘솔 통해 JEUS의 모든 요소를 관리할 수 있는 서비스를 제공한다. 사용자는 쉽게 JEUS에 접근하여 시스템 설정과 모니터링 및 애플리케이션을 관리할 수 있다.
다음 순서에 따라 Jeusadmin을 실행한다.
-
startMasterServer 커맨드 실행하여 JEUS MASTER를 실행한다.
다음은 JEUS MASTER를 실행하는 예제이다.
[was@localhost bin]$ startMasterServer -u administrator -p <password> ************************************************************** - JEUS Home : /home/jeus - Added Java Option : -Djeus.io.buffer.size-per-pool=81920 -Djeus.cdi.enabled=false -Djeus.jms.server.manager.produce-wait-strategy-type=blocking -Djeus.servlet.sortWebinfLibraries=name_asc *************************************************************** =============== JEUS LICENSE INFORMATION ================ == VERSION : JEUS 9 Fix#0 (9.0.0.0-b15) == EDITION: Enterprise (Trial License) == NOTICE: This license restricts the number of allowed clients. == Max. Number of Clients: 5 ========================================================== [2024.09.25 17:54:09][1] [launcher-1] [Config-0153] DomainConfigServiceProvider is jeus.service.descriptor.JEUSDomainDescriptorFile. This license is not appropriate for product runtime mode. Replace the license with an appropriate one. [2024.09.25 17:54:10][1] [launcher-1] [Config-0157] SecurityDomainsConfigServiceProvider is jeus.service.descriptor.SecurityDomainsDescriptorFile. [2024.09.25 17:54:10][2] [launcher-1] [Launcher-0012] Starting the server [server1] with the command /home/jdk-17.0.2/bin/java -Dserver1 -Xms1024m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m -Djeus.io.buffer.size-per-pool=81920 -Djeus.cdi.enabled=false -Djeus.jms.server.manager.produce-wait-strategy-type=blocking -Djeus.servlet.sortWebinfLibraries=name_asc -server -Xbootclasspath/p:/home/jeus/lib/system/extension.jar -classpath /home/jeus/lib/system/bootstrap.jar -Djava.security.policy=/home/jeus/domains/jeus_domain/config/security/policy -Djava.library.path=/home/jeus/lib/system:/home/webtob5004_B231_0_38//lib:/home/webtob5004_B231_0_38//lib:/home/webtob5004_B231_0_38//lib: -Djava.endorsed.dirs=/home/jeus/lib/endorsed -Djeus.properties.replicate=jeus,sun.rmi,java.util,java.net -Djava.util.logging.config.file=/home/jeus/bin/logging.properties -Dsun.rmi.dgc.server.gcInterval=3600000 -Djava.util.logging.manager=jeus.util.logging.JeusLogManager -Djeus.home=/home/jeus -Djava.net.preferIPv4Stack=true -Djeus.tm.checkReg=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Djeus.domain.name=jeus_domain -Djava.naming.factory.initial=jeus.jndi.JNSContextFactory -Djava.naming.factory.url.pkgs=jeus.jndi.jns.url -Djeus.server.protectmode=false -Dis.jeus.master=true -Dsun.net.http.errorstream.enableBuffering=true -XX:+UnlockDiagnosticVMOptions -XX:+LogVMOutput -XX:LogFile=/home/jeus/domains/jeus_domain/servers/server1/logs/jvm.log jeus.server.admin.MasterServerBootstrapper -domain jeus_domain -u administrator -verbose -server server1 . [2024.09.25 17:54:10][2] [launcher-1] [Launcher-0014] The server[server1] is being started ... [2024.09.25 17:54:10][1] [server1-1] [Config-0153] DomainConfigServiceProvider is jeus.service.descriptor.JEUSDomainDescriptorFile. [2024.09.25 17:54:10][1] [server1-1] [Config-0157] SecurityDomainsConfigServiceProvider is jeus.service.descriptor.SecurityDomainsDescriptorFile. [2024.09.25 17:54:12][2] [server1-1] [SERVER-0248] The JEUS server is STARTING. [2024.09.25 17:54:12][0] [server1-1] [SERVER-0000] Version information - JEUS 9 Fix#0 (9.0.0.0-b15). ... 중략 [2024.09.25 17:54:29][2] [launcher-13] [Launcher-0034] The server[server1] initialization completed successfully[pid : 473]. [2024.09.25 17:54:29][0] [launcher-1] [Launcher-0040] Successfully started the server[server1]. The server state is now RUNNING..
startMasterServer 스크립트는 JEUS_HOME/bin/ 디렉터리에 위치하며 시스템 경로(path)에 설정되어 있어야 한다. |
3. Managed Server(MS)의 추가와 설정
MS는 실제 애플리케이션을 서비스하기 위한 엔진들과 여러 서비스들을 관장하는 서버 인스턴스를 의미한다. MS는 도메인에 여러 개 존재할 수 있다. MS의 주요 역할은 사용자가 deploy하는 애플리케이션을 서비스하고, 애플리케이션이 필요로 하는 리소스나 서비스를 제공하는 것이다.
Managed Server 추가
다음은 새로운 MS를 추가하고, 추가된 MS에 리스너를 추가하는 방법이다.
-
jeusadmin 접속하여 add-server 명령어를 통해 MS를 추가한다.
[MASTER]jeus_domain.server1>add-server server2 Successfully performed the ADD operation for server (server2). NOTICE : base-addr [0.0.0.0] base-port [9736] http-port [8088] Check the results using "list-servers or add-server".
MS를 기동하려면 'BASE’라는 리스너를 이용하는데, 기본값이 '9736’으로 설정된다. 이는 MASTER와 값이 동일하여 정상적으로 기동되지 않을 수 있으므로 변경해야 한다.
-
MS 추가가 완료되면 server-info 명령어를 통해 동적 설정으로 MS가 생성된 것을 확인할 수 있다.
Information about Domain (jeus_domain) ================================================================================ +--------+---------+-----+-----+-----+-----------+--------+-----------+--------+ | Server | Status |Node | PID | Clu | Latest | Need | Listen |Running | | | |Name | |ster |Start Time | to | Ports |Engines | | | | | | | / |Restart | | | | | | | | | Shutdown | | | | | | | | | | Time | | | | +--------+---------+-----+-----+-----+-----------+--------+-----------+--------+ | adminS | RUNNING | N/A | 291 | N/A |2024-09-24 | false | base-0.0. | jms, | |erver |(00:38:2 | |34 | |(화) 오후 | |0.0:9736 |web, ejb| |(*) |7) | | | |03:06:43 | | http-serv | | | | | | | |KST | |er-0.0.0.0 | | | | | | | | | |:8808 | | +--------+---------+-----+-----+-----+-----------+--------+-----------+--------+ | server2| SHUTDOWN| N/A | N/A | N/A |2024-09-24 | N/A | N/A | N/A | | | | | | |(화) 오후 | | | | | | | | | |03:06:43 | | | | | | | | | |KST | | | | +--------+---------+-----+-----+-----+-----------+--------+-----------+--------+ ================================================================================
-
list-server-listener 명령어를 통해 설정한 Listener 확인이 가능하다.
[MASTER]jeus_domain.server1>list-server-listeners -server server2 ========================================================= +--------------------------------------+---------+------+ | listener-name | address | port | +--------------------------------------+---------+------+ | base | 0.0.0.0 | 9736 | | http-server | 0.0.0.0 | 8088 | +--------------------------------------+---------+------+ =========================================================
-
modify-listener 명령어를 통해 Listener 관련 수정을 진행할 수 있다.
[MASTER]jeus_domain.server1>modify-listener -server server2 -name base -port 9512 Executed successfully, but some configurations were not applied dynamically. It might be necessary to restart the server. Check the result using 'list-server-listeners -server server2 -name base. [MASTER]jeus_domain.server1>list-server-listeners -server server2 ========================================================= +--------------------------------------+---------+------+ | listener-name | address | port | +--------------------------------------+---------+------+ | base | 0.0.0.0 | 9512 | | http-server | 0.0.0.0 | 8088 | +--------------------------------------+---------+------+ =========================================================
HTTP 리스너 및 커넥터 설정
새로 추가된 MS를 구동하기 위한 설정은 기본 설정으로 충분하며, 추가로 HTTP 리스너 추가하여 웹 엔진을 이용한 서비스하기 위해서는 리스너 및 커넥터 설정을 추가적으로 진행해야 한다.
-
jeusadmin 접속하여 add-listener 명령어를 사용하여 리스너를 추가할 수 있다.
[MASTER]jeus_domain.server1>help add-listener NAMES add-listener Adds a new server listener with the given properties. ALIAS addlistener, createlistener USAGE add-listener -server <server-name> -name <listener-name> [-addr <address>] -port <port> [-selectors <selectors>] [-dual] [-backlog <backlog>] [-timeout <read-timeout>] [-keepaliveTimeout <keepalive-timeout>] [-rt,--reservedthreads <reserved-threads>] [-f,--forceLock] ...(생략) [MASTER]jeus_domain.server1>add-listener -server server2 -name testListener -port 8777 Executed successfully, but some configurations were not applied dynamically. It might be necessary to restart the server. Check the result using 'list-server-listeners -server server2 -name testListener.
다른 리스너에서 사용하는 Port와 중복되지 않도록 설정한다.
-
add-http-listener 명령어를 사용하여 Web Connection을 추가한다.
[MASTER]jeus_domain.server1>help add-http-listener NAMES add-http-listener Add HTTP listener. ALIAS addhttpl USAGE add-http-listener [-cluster <cluster-name> | -server <server-name>] [-f,--forceLock] -name <web-connection-name> -tmin <minimum-thread-num> [-tmax <maximum-thread-num>] [-tidle <max-idle-time>] [-qs <max-queue-size>] -slref <server-listener-ref-name> [-http2] ...(생략) [MASTER]jeus_domain.server1>add-http-listener -server server2 -name testHttpListener -tmin 10 -tmax 20 -slref testListener Successfully changed only the XML. Restart the server to apply the changes. For detailed web connection information, use the 'show-web-engine-configuration -cn' command.
-
show-web-engine-configuration 명령어를 통해 등록된 정보를 확인한다.
4. 데이터소스 추가
데이터소스(Datasource)는 데이터베이스와 Jakarta EE 프로그램을 연결하기 위해 사용된다.
예제에서는 JEUS에 기본적으로 포함되어 있는 Apache Derby 데이터베이스를 사용한다. Apache Derby는 JEUS_HOME\derby에 포함되어 있다. 만약 Derby가 실행되어 있지 않다면 다음과 같이 실행한다.
UNIX/Linux의 명령 프롬프트에서 다음과 같이 실행한다.
JEUS_HOME\bin> startderby
추후에 Derby를 종료하기 위해서는 다음과 같이 실행한다.
JEUS_HOME\bin> stopderby
Derby를 JEUS에서 사용하려면 Derby의 JDBC 드라이버 파일인 derbyclient.jar가 JEUS_HOME\lib\datasource에 위치해야 한다(기본적으로 포함되어 있다). Derby에 대한 자세한 내용은 http://db.apache.org/derby/를 참고한다. |
예제에서는 sample이라는 데이터베이스를 jdbc/sample이라는 데이터소스 이름으로 사용한다.
다음은 콘솔 툴을 사용하여 데이터소스를 추가하는 방법에 대한 설명이다.
-
jeusadmin으로 JEUS에 접속한다.
jeusadmin –u jeus –p <password>
-
데이터소스를 MASTER에 추가한다.
[MASTER]jeus9.server1>add-data-source -id datasource1 -en jdbc/sample -dscn org.apache.derby.jdbc.ClientConnectionPoolDataSource -dst ConnectionPoolDataSource -vendor others -sn localhost -pn 1527 -dn sample -user app -pw app -prop "ConnectionAttributes:java.lang.String=;create=true" Successfully performed the ADD operation for data source [datasource1] to domain. Check the results using "add-data-source".
-
데이터소스를 MS(server2)에 추가한다.
[MASTER]jeus9.server1>add-data-sources-to-server -server server2 -ids datasource1 Successfully performed the ADD operation for data sources to the server [server2]. Check the results using "add-data-sources-to-server -server server2".
5. 서버 기동 및 종료
JEUS에서 MS는 JEUS_HOME/bin에 있는 startManagedServer 스크립트로 기동할 수 있고, stopServer 스크립트로 종료할 수 있다.
-
startManagedServer 스크립트를 사용하여 추가한 MS 기동한다.
[was@localhost bin]$ startManagedServer -u administrator -p <password> -server server2 +++************************************************************** - JEUS Home : /home/jeus - Added Java Option : -Djeus.io.buffer.size-per-pool=81920 -Djeus.cdi.enabled=false -Djeus.jms.server.manager.produce-wait-strategy-type=blocking -Djeus.servlet.sortWebinfLibraries=name_asc ***************************************************************+++ =============== JEUS LICENSE INFORMATION ================ == VERSION : JEUS 9 Fix#0 (9.0.0.0-b15) == EDITION: Enterprise (Trial License) == NOTICE: This license restricts the number of allowed clients. == Max. Number of Clients: 5 ========================================================== [2023.04.25 18:00:05][2] [launcher-1] [SERVER-0201] Successfully connected to the JEUS Master Server(localhost:9736). ... 중략 [2024.09.25 18:00:10][0] [launcher-1] [Launcher-0040] Successfully started the server[server2]. The server state is now RUNNING.
-
stopServer 스크립트를 사용하여 기동한 MS를 종료한다.
[was@localhost bin]$ stopServer -u administrator -p <password> -server server2 Attempting to connect to 127.0.0.1:9736. The connection has been established to JEUS Master Server [server1] in the domain [jeus_domain]. Stop server message to server [server2] was successfully sent.