시스템 설정
본 장에서는 JEUS의 환경설정 및 기동 방법에 대한 기본적인 내용을 설명한다.
2. 기본 환경설정
JEUS의 jeusadmin 콘솔 툴을 통해 JEUS의 모든 요소를 관리할 수 있는 서비스를 제공한다. 사용자는 쉽게 JEUS에 접근하여 시스템 설정과 모니터링 및 애플리케이션을 관리할 수 있다.
다음 순서에 따라 jeusadmin을 실행한다.
-
startMasterServer 커맨드 실행하여 JEUS MASTER를 실행한다.
다음은 JEUS MASTER를 실행하는 예제이다.
C:\TmaxSoft\JEUS9\bin> startMasterServer -u administrator -p <password> *************************************************************** - JEUS Home : C:\TmaxSoft\JEUS9 - 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 -Djeus.servlet.jsp.compile.delay=10000 *************************************************************** ===================== LICENSE INFORMATION ===================== === License Type : TEST === License Edition : ENTERPRISE === Product Name : JEUS === Major Version : 9 === Issued date : 20260423 === Expiration date : 20260622 === Hostname : Windows-Device === Cpu limits : unlimited === Max user limits : 5 ================================================================ [2026.04.23 10:49:41][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. [2026.04.23 10:49:42][1] [launcher-1] [Config-0157] SecurityDomainsConfigServiceProvider is jeus.service.descriptor.SecurityDomainsDescriptorFile. [2026.04.23 10:49:42][2] [launcher-1] [Launcher-0012] Starting the server [MasterServer] with the command C:\Program Files\Java\jdk1.8.0_251\jre\..\bin\java -DMasterServer -Xmx1024m -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 -Djeus.servlet.jsp.compile.delay=10000 -server -Xbootclasspath/p:C:\TmaxSoft\JEUS9\lib\system\extension.jar -classpath C:\TmaxSoft\JEUS9\lib\system\bootstrap.jar -Djava.security.policy=C:\TmaxSoft\JEUS9\domains\jeus_domain\config\security\policy -Djava.library.path=C:\TmaxSoft\JEUS9\lib\system -Djava.endorsed.dirs=C:\TmaxSoft\JEUS9\lib\endorsed -Djeus.properties.replicate=jeus,java.util.logging,sun.rmi.dgc,java.net -Djava.util.logging.config.file=C:\TmaxSoft\JEUS9\bin\logging.properties -Dsun.rmi.dgc.server.gcInterval=3600000 -Djava.util.logging.manager=jeus.util.logging.JeusLogManager -Djeus.home=C:\TmaxSoft\JEUS9 -Djava.net.preferIPv4Stack=true -Djeus.tm.checkReg=true -Djeus.dispatcher.blocking=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Djeus.tool.webadmin.locale.language=ko -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 -XX:+UnlockDiagnosticVMOptions -XX:+LogVMOutput -XX:LogFile=C:\TmaxSoft\JEUS9\domains\jeus_domain\servers\MasterServer\logs\jvm.log jeus.server.admin.MasterServerBootstrapper -domain jeus_domain -u administrator -verbose -server MasterServer . [2026.04.23 10:49:42][2] [launcher-1] [Launcher-0014] The server[MasterServer] is being started ... [2026.04.23 10:49:42][1] [MasterServer-1] [Config-0153] DomainConfigServiceProvider is jeus.service.descriptor.JEUSDomainDescriptorFile. [2026.04.23 10:49:42][1] [MasterServer-1] [Config-0155] NodesConfigServiceProvider is jeus.service.descriptor.NodesDescriptorFile. [2026.04.23 10:49:42][1] [MasterServer-1] [Config-0157] SecurityDomainsConfigServiceProvider is jeus.service.descriptor.SecurityDomainsDescriptorFile. [2026.04.23 10:49:44][2] [MasterServer-1] [SERVER-0248] The JEUS server is STARTING. [2026.04.23 10:49:44][0] [MasterServer-1] [SERVER-0000] Version information - JEUS 9.1.1 (9.1.1.0-b64). ... 중략 [2026.04.23 10:49:47][2] [launcher-21] [Launcher-0034] The server[MasterServer] initialization completed successfully[pid : 777]. [2026.04.23 10:49:47][0] [launcher-1] [Launcher-0040] Successfully started the server[MasterServer]. 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.adminServer>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’라는 Listener를 이용하는데, 기본값이 '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 |2025-06-19 | false | base-0.0. | jms, | |erver |(00:38:2 | |34 | |(목) 오후 | |0.0:9736 |web, ejb| |(*) |7) | | | |15:25:43 | | http-serv | | | | | | | |KST | |er-0.0.0.0 | | | | | | | | | |:8808 | | +--------+---------+-----+-----+-----+-----------+--------+-----------+--------+ | server2| SHUTDOWN| N/A | N/A | N/A |2025-06-19 | N/A | N/A | N/A | | | | | | |(목) 오후 | | | | | | | | | |15:25:43 | | | | | | | | | |KST | | | | +--------+---------+-----+-----+-----+-----------+--------+-----------+--------+ ================================================================================
-
list-server-listener 명령어를 통해 설정한 Listener 확인이 가능하다.
[MASTER]jeus_domain.adminServer>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.adminServer>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.adminServer>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 리스너 추가하여 웹 엔진을 이용한 서비스하기 위해서는 Listener 및 커넥터 설정을 추가적으로 진행해야 한다.
-
jeusadmin에 접속하여 add-listener 명령어를 사용하여 Listener를 추가할 수 있다.
[MASTER]jeus_domain.adminServer>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.adminServer>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.다른 Listener에서 사용하는 Port와 중복되지 않도록 설정한다.
-
add-http-listener 명령어를 사용하여 Web Connection을 추가한다.
[MASTER]jeus_domain.adminServer>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.adminServer>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.adminServer>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.adminServer>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]$ 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 ***************************************************************+++ ===================== LICENSE INFORMATION ===================== === License Type : TEST === License Edition : ENTERPRISE === Product Name : JEUS === Major Version : 9 === Issued date : 20260423 === Expiration date : 20260622 === Hostname : device.hostname === Cpu limits : unlimited === Max user limits : 5 ================================================================ [2026.04.23 10:49:41][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. [2026.04.23 10:49:42][1] [launcher-1] [Config-0157] SecurityDomainsConfigServiceProvider is jeus.service.descriptor.SecurityDomainsDescriptorFile. [2026.04.23 10:49:42][2] [launcher-1] [Launcher-0012] Starting the server [MasterServer] with the command /home/jdk1.8.0_251/bin/java -DMasterServer -Xmx1024m -XX:MaxMetaspaceSize=1024m -Djeus.ejb.enable.configDeleteOption=true -Djeus.cdi.enable-implicit-bean-archive=trurmi.server.disableIncomingHttp=false -Djava.locale.providers=COMPAT -server -Xbootclasspath/p:/home/jeus/lib/system/extension.jar -classpath /data/home/jeustest/jelib/system/bootstrap.jar -Djava.security.policy=/home/jeus/domains/jeus_domain/config/security/policy -Djava.library.path=/home/jeus/lib/system -Djaved.dirs=/home/jeus/lib/endorsed -Djeus.properties.replicate=jeus,sun.rmi,java.util,java.net -Djava.util.logging.config.file=/home/jeus/bin/loggirties -Dsun.rmi.dgc.server.gcInterval=3600000 -Djava.util.logging.manager=jeus.util.logging.JeusLogManager -Djeus.home=/home/jeus -Djava.net.preferIPv4Stack=true -.checkReg=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Djeus.tool.webadmin.locale.language=ko -Djeus.domain.name=jeus_domain -Djava.naming.factory.initial=jeus.jndi.JNSContextFactory -Djng.factory.url.pkgs=jeus.jndi.jns.url -Djeus.server.protectmode=false -XX:+UnlockDiagnosticVMOptions -XX:+LogVMOutput -XX:LogFile=/home/jeus/domains/jeus_domain/servers/logs/jvm.log jeus.server.admin.MasterServerBootstrapper -domain jeus_domain -u administrator -verbose -server MasterServer . [2026.04.23 10:49:42][2] [launcher-1] [Launcher-0014] The server[MasterServer] is being started ... [2026.04.23 10:49:42][1] [MasterServer-1] [Config-0153] DomainConfigServiceProvider is jeus.service.descriptor.JEUSDomainDescriptorFile. [2026.04.23 10:49:42][1] [MasterServer-1] [Config-0155] NodesConfigServiceProvider is jeus.service.descriptor.NodesDescriptorFile. [2026.04.23 10:49:42][1] [MasterServer-1] [Config-0157] SecurityDomainsConfigServiceProvider is jeus.service.descriptor.SecurityDomainsDescriptorFile. [2026.04.23 10:49:44][2] [MasterServer-1] [SERVER-0248] The JEUS server is STARTING. [2026.04.23 10:49:44][0] [MasterServer-1] [SERVER-0000] Version information - JEUS 9.1.1 (9.1.1.0-b64). ... 중략 [2026.04.23 11:10:24][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 [adminServer] in the domain [jeus_domain]. Stop server message to server [server2] was successfully sent.