내용 목차
본 장에서는 JEUS에서 사용하는 콘솔 툴의 종류와 사용법에 대해 설명한다.
다음은 JEUS에서 사용하는 콘솔 툴의 목록이다.
Admin 툴
콘솔 툴 | 설명 |
---|---|
jeusadmin | JEUS를 직접 관리하기 위해 사용하는 콘솔 툴이다. |
기타 툴
콘솔 툴 | 설명 |
---|---|
appcompiler | 애플리케이션의 EJB 인터페이스 Impl, Skeleton, Stub 클래스, JSP를 컴파일하여 서블릿 클래스, 웹 서비스의 Endpoint 클래스 등을 생성한다. |
ejbddinit | EJB 모듈의 DD 파일(jeus-ejb-dd.xml)을 ejb-jar.xml 정보와 사전에 생성된 프로퍼티 파일을 이용하여 생성할 수 있다. |
webddgen | WEB 모듈의 DD 파일(jeus-web-dd.xml)을 생성하거나 업데이트할 수 있다. |
encryption | 암호화할 문자열을 암호화하거나 그 반대로 복호화하는 기능을 제공한다. |
wsgen | JAX-WS 웹 서비스를 위한 툴로 Java 클래스로부터 WSDL파일과 JAX-RPC 매핑 파일을 생성한다. 또한 웹 서비스 정책 설정 파일을 생성할 수 있다. |
wsimport | WSDL 파일로부터 클라이언트 측 Java Stub 소스 파일들과 서버 측 웹 서비스 인터페이스 Java 소스 파일을 생성한다. 또한 웹 서비스 정책 설정 파일을 생성할 수 있다. |
java2wsdl | Java 클래스로부터 WSDL파일과 JAX-RPC 매핑 파일을 생성한다. |
wsdl2java | WSDL 파일로부터 클라이언트 측 Java Stub 소스 파일과 서버 측 웹 서비스 인터페이스 Java 소스 파일을 생성한다. |
wsdl2uddi | 웹 서비스의 WSDL 파일로 부터 UDDI에 Publish할 수 있다. |
xjc | XML 스키마 파일을 Java 프로그래밍 언어로 된 JAXB Content 클래스들로 변환한다. |
schemagen | Java 클래스들에 나타나는 각각의 Namespace에 대해 하나의 스키마 파일을 생성한다. |
tcpmon | 송수신하는 TCP 패킷을 조회한다. tcpmon은 HTTP의 SOAP 메시지를 조회할 수 있다. |
본 절에서는 JEUS의 관리 툴인 jeusadmin의 명령어와 그 사용법에 대해서 설명한다.
jeusadmin은 JEUS를 직접 관리하기 위해 사용하는 콘솔 툴이다. 이 툴을 사용하면 JEUS 서버의 기동과 종료와 같은 기본적인 관리 작업을 할 수 있으며 애플리케이션의 deploy/undeploy와 logger 레벨 변경 작업, JMX MBean의 목록 조회 등 여러 가지 주요 작업을 할 수 있다.
jeusadmin에서 사용하는 명령어에 대한 기본 문법은 다음과 같다.
COMMAND [COMMAND_OPTIONS] [GLOBAL_OPTIONS] (>|>>) FILENAME
COMMAND
명령어 이름 또는 alias를 설정한다.
COMMAND_OPTIONS
해당 명령어에 대한 옵션을 설정한다.
GLOBAL_OPTIONS
모든 명령어에 대해 적용할 수 있는 공용 옵션을 설정한다.
옵션 | 설명 |
---|---|
-verbose | 오류가 발생하는 경우 Stack Trace를 출력한다. |
-repeat <count> | 명령어를 repeat count 횟수만큼 반복 실행한다. |
-interval <seconds> | 반복해서 실행하는 경우 실행 간격을 초 단위로 지정한다. -repeat 옵션을 주지 않고 사용할 경우 오류가 발생한다. |
(>|>>) FILENAME
명령어 실행 결과를 파일에 저장할 때 사용한다. 저장할 파일 이름은 FILENAME으로 지정한다.
다음과 같이 사용할 수 있다.
offline>help > result.txt 또는 offline>help >> result.txt
jeusadmin을 실행하고 종료하는 명령어는 다음과 같다.
jeusadmin을 실행한다. 이 파일은 JEUS_HOME/bin에 위치한다.
사용법
jeusadmin [-u,--username <username>] [-p,--password <password>] [-f <filename>] [-cachelogin] [-d,--domain <domain>] [-host <server address>] [-port <server port>] [-verbose] [-help] [<target command>] [-version] [-fullversion] [-buildversion] [-licensedue] [-licenseinfo] [-debug] [-script (<script file>|"<script file> <args> ...")]
파라미터
파라미터 | 설명 |
---|---|
[-u, --username <username>] | 접속할 때 사용할 사용자 이름을 지정한다. 옵션을 준 경우 실행하면서 서버에 접속을 시도한다. |
[-p, ---password <password>] | 접속할 때 사용할 비밀번호를 지정한다. 옵션을 준 경우 실행하면서 서버에 접속을 시도한다. |
[-f <filename>] | 접속할 때 사용할 사용자 이름과 비밀번호를 담은 파일을 지정한다. |
[-cachelogin] | 특정 도메인(또는 기본 도메인)에 접속할 때 사용했던 사용자 이름과 비밀번호를 기록한다. |
[-d, --domain <domain>] | 접속하고자하는 도메인의 이름 지정한다. |
[-host <server address> | 접속할 때 사용할 주소를 지정한다. [-u] 옵션과 [-p] 옵션을 준 상태에서 이 옵션을 별도로 주지 않으면 localhost로 접속을 시도한다. |
[-port <server port>] | 접속할 때 사용할 포트 번호를 지정한다. [-u] 옵션과 [-p] 옵션을 준 상태에서 이 옵션을 별도로 주지 않으면 9736 포트로 접속을 시도한다. |
[-verbose] | 실행 중 오류가 발생할 경우 세부 사항까지 출력한다. |
[-help] | jeusadmin에 대한 도움말을 출력한다. |
[<target command>] | <target command>를 한 번 실행한다. 스크립트에서 사용할 때 유용하다. 만약 서버에 접속이 필요한 명령어라면 [-u], [-p], [-host], [-port] 등 필요한 옵션을 같이 주어야 한다. |
[-version] | JEUS의 메이저 버전을 출력한다. |
[-fullversion] | JEUS의 메이저 버전과 마이너 버전을 출력한다. |
[-buildversion] | JEUS의 메이저 버전과 빌드 버전을 출력한다. |
[-licensedue] | 라이선스의 남은 기간을 출력한다. 남은 기간이 0이 되면 JEUS는 더 이상 동작하지 않으므로, TmaxSoft로부터 새로운 라이선스를 발급받아야 한다. |
[-licenseinfo] | 현재 설치된 라이선스에 대한 정보를 출력한다. |
[-debug] | jeusadmin에서 Jeus Logger를 통해 출력되는 로그 메시지들을 표시하도록 한다. |
[-script (<script file>|"<script file> <args> ...")] | Script 모드로 jeusadmin을 실행한다. 이때 파일의 확장자는 .py(Python), .rb(Ruby)이어야 한다. |
예제
다음은 JEUS 사용자 이름은 'administrator', 비밀번호는 'jeus'로 가정한 jeusadmin 예제이다.
jeusadmin 실행
다음은 jeusadmin을 실행하는 예제이다.
JEUS_HOME/bin$jeusadmin
JEUS8 Administration Tool
To view help, use the 'help' command.
offline>
실행하면서 바로 서버에 접속 #1
다음은 localhost:9736에 있는 서버에 접속하는 경우에 대한 예제이다.
JEUS_HOME/bin$jeusadmin -u administrator -p jeus
Attempting to connect to 127.0.0.1:9736.
The connection has been established to Domain Administration Server adminServer in the domain domain1.
JEUS8 Administration Tool
To view help, use the 'help' command.
[DAS]domain1.adminServer>
실행하면서 바로 서버에 접속 #2
다음은 IP 주소와 포트 번호를 지정해서 접속하는 경우에 대한 예제이다.
JEUS_HOME/bin$jeusadmin -u administrator -p jeus -host 192.168.0.1 -port 9746
Attempting to connect to 192.168.0.1:9746.
The connection has been established to Domain Administration Server adminServer in the domain domain1.
JEUS8 Administration Tool
To view help, use the 'help' command.
[DAS]domain1.adminServer>
라이선스 정보 보기
다음은 JEUS 라이선스를 조회하는 예제이다.
JEUS_HOME/bin$jeusadmin -licensedue Unlimited JEUS_HOME/bin$jeusadmin -licenseinfo ===================== LICENSE INFORMATION ===================== === EDITION : Enterprise (Trial License) === ISSUE-DAY : 2016/1/16 === LICENSE SEQNO : xxx-xxxx-xxx-xxxx ================================================================
SSL을 사용하여 jeusadmin에 접속
SSL을 사용하여 jeusadmin에 접속할 경우 jeusadmin 실행 스크립트 파일을 열어 아래 시스템 프로퍼티를 설정한다(시스템 프로퍼티의 값은 서버의 SSL 설정에 따라 다를 수 있다).
. . . # execute jeusadmin "${JAVA_HOME}/bin/java" -classpath "${BOOTSTRAP_CLASSPATH}" ${TOOL_OPTION} -Djmx.remote.x.request.timeout=600000 -Djava.library.path="${JEUS_LIBPATH}" -Djeus.home="${JEUS_HOME}" -Djeus.baseport=${JEUS_BASEPORT} -Djeus.tool.console.useJLine="false" -Djava.endorsed.dirs="${JEUS_HOME}/lib/endorsed" -Djava.naming.factory.initial=jeus.jndi.JEUSContextFactory -Djava.naming.factory.url.pkgs=jeus.jndi.jns.url -Djava.util.logging.config.file="${JEUS_HOME}/bin/logging.properties" -Djeus.net.client.use-ssl=true -Djavax.net.ssl.trustStore=${JEUS_HOME}/domains/domain1/config/truststore -Djavax.net.ssl.trustStorePassword=changeit -Djavax.net.ssl.trustStoreType=JKS -Dssl.TrustManagerFactory.algorithm=SunX509 ${JAVA_ARGS} jeus.tool.console.ConsoleBootstrapper ${BOOT_PARAMETER}
다음은 서버 접속, 도움말, 히스토리 기능 등을 제공하는 기본 명령어들이다.
명령어 | 설명 |
---|---|
help | 명령어에 대한 도움말을 출력한다. |
history | 입력했던 명령어들에 대한 기록을 출력한다. |
p | 입력했던 명령어들 중 하나를 골라 실행한다. 옵션을 주지 않고 실행하는 경우 직전에 실행했던 명령어를 다시 실행한다. |
connect | DAS나 MS에 접속을 시도한다. |
disconnect | 접속을 끊고 Off-line 상태로 돌아간다. |
verbose | 명령어를 수행할 때 상세 출력 모드를 켜거나 끈다. |
remove-login-cache | cachelogin 기능을 통해 저장된 특정 사용자 로그인 정보를 캐시 파일에서 제거한다. |
set-server-option | server 옵션에 대한 기본값을 설정한다. |
unset-server-option | set-server-option으로 설정한 기본값을 삭제한다. |
start-record | 입력하는 명령어들을 스크립트 형태로 저장하는 레코딩 기능을 시작한다. |
stop-record | 레코딩 기능을 중지한다. |
set-servers-option | servers 옵션에 대한 기본값을 설정한다. |
unset-servers-option | set-servers-option으로 설정한 기본값을 삭제한다. |
명령어들에 대한 도움말을 출력한다. 별도의 옵션을 주지 않고 실행할 경우 도움말과 함께 현재 사용할 수 있는 명령어 목록, 명령어 기본 문법에 대한 설명을 조회한다.
사용법
help [-g,--group <group name> | <command name> | -l,--list]
파라미터
파라미터 | 설명 |
---|---|
[-g,--group <group name>] | 주어진 그룹(group name)에 속한 명령어에 대한 목록과 간단한 설명을 출력한다. |
[<command name>] | 특정 명령어(command name)에 대한 도움말을 출력한다. 명령어 이름, 별칭(alias), 사용법, 옵션에 대한 정보를 조회한다. 옵션을 생략하고 사용할 수도 있다. |
[-l,--list] | 모든 명령어에 대한 간단한 설명을 출력한다. |
예제
help 명령어만 사용할 경우
offline>help
LIST OF AVAILABLE COMMANDS
[ Local]____________________________________________________________________
connect disconnect
exit help
history p
remove-login-cache set-server-option
set-servers-option start-record
stop-record unset-server-option
unset-servers-option verbose
[ Server Management]________________________________________________________
local-shutdown local-start-server
[ Domain Configuration]_____________________________________________________
apply-configuration-plan create-domain
delete-domain list-domains
pack-domain unpack-domain
[ Application]______________________________________________________________
install-application install-deployment-plan
redeploy-application
[ Web]______________________________________________________________________
precompile-jsp
[ NodeManager]______________________________________________________________
connect-nodemanager disconnect-nodemanager
nm-start-server nm-state-server
nm-stop-server stop-nodemanager
COMMAND GRAMMAR
Command Usage
COMMAND [COMMAND_OPTIONS] [GLOBAL_OPTIONS] [(>|>>) FILENAME]
Details
COMMAND: target command to execute.
[COMMAND_OPTIONS]: Options for target command.
[GLOBAL_OPTIONS]: Common options for all commands.
-verbose
Prints the stack trace for errors.
-repeat <count>
Repeats the target command X times.
-interval <seconds>
Specifies the interval at which to repeat execution, in
seconds.
[(>|>>) FILENAME]
Prints the result of the target command to the specified file.
Examples
help -l -repeat 3 -interval 10 > result.txt
To show detailed information for a command, use 'help [COMMAND_NAME]'.
ex) help connect
offline>
help 명령어에 [-l] 옵션과 같이 사용하는 경우
offline>help -l
[ Local]____________________________________________________________________
connect Attempting to authenticate with the target
server.
disconnect Disconnects from the currently connected server.
......
[ Server Management]________________________________________________________
local-shutdown Shuts down the currently connected server.
local-start-server On off-line mode, start managed server via SSH.
You should specify -node, -domain, -server, -u,
-p, -dasurl.
On on-line mode, start standby server.
......
[ NodeManager]______________________________________________________________
connect-nodemanager Connects to the node manager.
disconnect-nodemanager Closes the connection to the node manager.
nm-start-server Starts a server using the node manager.
nm-state-server Shows the state of a server using node manager.
nm-stop-server Stops a server using the node manager.
stop-nodemanager Stops the node manager.
To show detailed information for a command, use 'help [COMMAND_NAME]'.
ex) help connect
offline>
help 명령어에 [-g] 옵션과 같이 사용하는 경우
다음은 'Server Management' 그룹 명령어 목록을 출력하는 예제이다.
offline>help -g "Server Management"
[ Server Management]________________________________________________________
local-shutdown Shuts down the currently connected server.
local-start-server On off-line mode, start managed server via SSH.
You should specify -node, -domain, -server, -u,
-p, -dasurl.
On on-line mode, start standby server.
To show detailed information for a command, use 'help [COMMAND_NAME]'.
ex) help connect
offline>
[<command name>] 옵션을 사용해 특정 명령어에 대한 도움말을 조회하는 경우
다음은 add-server 명령어 설명을 출력하는 예제이다.
[DAS]domain1.adminServer>help add-server
NAMES
add-server
Adds a new server to the domain configuration. If a server name is
not provided, the current server list in this domain will be shown.
ALIAS
addserver
USAGE
add-server <server-name>
[-target,--duptargetserver <target-server>]
[-port,--baseport <base-port>]
[-addr,--baseaddr <base-addr>]
[-node,--nodeName <node-name>]
[-jvm,--jvmOptions <jvm-options>]
[-logdir,--logHomeDirectory <server-log-home-directory>]
[-a,--actionOnResourceLeak <action-on-resource-leak>]
[-l,--logStdoutToRawFormat <print-stdout-to-raw-format>]
[-m,--mejb <enable-MEJB>]
[-c,--classFtp <enable-class-ftp-service>]
[-f,--forceLock]
[-detail]
OPTIONS
<server-name>
the name of server you want to modify configuration of
[-target,--duptargetserver <target-server>]
duplicate the configuration of the target server
[-port,--baseport <base-port>]
base service listen port of the server
[-addr,--baseaddr <base-addr>]
base service listen address of the server
[-node,--nodeName <node-name>]
name of the node this server is located
[-jvm,--jvmOptions <jvm-options>]
jvm configurations applied to this server jvm
[-logdir,--logHomeDirectory <server-log-home-directory>]
the log directory which has all the log files created by this server
[-a,--actionOnResourceLeak <action-on-resource-leak>]
strategy when resource leak is detected. it must be one of
AutoClose, NoAction, Warning
[-l,--logStdoutToRawFormat <print-stdout-to-raw-format>]
[Dynamic] whether stdout is printed in row format or in JEUS Logger
format.
[-m,--mejb <enable-MEJB>]
[Dynamic] whether using MEJB or not .true, false
[-c,--classFtp <enable-class-ftp-service>]
[Dynamic] whether using class ftp service or not .true, false
[-f,--forceLock]
Acquires the configuration lock forcibly.
[-detail]
Show detail results
참고
본 명령어는 서버에 접속하지 않은 상태에서도 사용할 수 있다.
이전에 실행했던 명령어 목록을 조회한다.
명령어 목록은 ${user.home}/.jeusadmin/commandHistory에 저장된다. 기록한 명령어를 다시 실행할 경우에는 p 명령어를 사용한다. 실행했던 명령어 기록은 최대 100개까지 가능하다.
사용법
history [-clear | <size>]
파라미터
파라미터 | 설명 |
---|---|
[-clear] | 실행했던 명령어 목록을 지우고 초기화한다. |
[<size>] | 출력할 명령어 개수를 설정한다. 최근에 실행한 순으로 size만큼 출력한다. |
예제
offline>history 1 : help history 2 : connect 3 : disconnect To execute a command in the history, please use '!' command (e.g. ! 7) offline>history 3 3 : disconnect To execute a command in the history, please use '!' command (e.g. ! 7) offline>history -clear The command history has been cleared. offline>
참고
본 명령어는 서버에 접속하지 않은 상태에서도 사용할 수 있다.
실행했던 명령어를 다시 실행하려고 할 때 사용한다. 실행했던 명령어 목록은 history 명령어를 통해 확인할 수 있다.
alias
!
사용법
p [<history number>]
파라미터
파라미터 | 설명 |
---|---|
[<history number>] | 명령어 기록에서 실행할 명령어의 번호를 지정한다. |
예제
offline>history 1 : connect -u jeus -p jeus 2 : disconnect To execute a command in the history, please use '!' command (e.g. ! 7) offline>p 1 connect -u jeus -p jeus Enter the server address: Attempting to connect to 127.0.0.1:9736. The connection has been established to Domain Administration Server adminServer in the domain domain1. [DAS]domain1.adminServer>! 2 disconnect The connection has been closed. offline>
참고
본 명령어는 서버에 접속하지 않은 상태에서도 사용할 수 있다.
서버에 접속을 시도한다. 옵션을 생략하고 실행하는 경우 누락한 정보를 다시 물어본다.
alias
login
사용법
connect [-u,--username <username>] [-p,--password <password>] [-f <filename>] [-cachelogin] [-h,--host <server address>] [-port <server port>]
파라미터
파라미터 | 설명 |
---|---|
[-u, --username <username>] | 접속할 때 사용할 사용자 이름을 지정한다. |
[-p, --password <password>] | 접속할 때 사용할 비밀번호를 지정한다. |
[-f <filename>] | 접속할 때 사용할 사용자 이름과 비밀번호를 저장한 파일을 지정한다. |
[-cachelogin] | 접속할 때 사용한 사용자 이름과 비밀번호를 파일에 기록한다. |
[-h, --host <server address>] | 접속할 서버의 주소를 지정한다. 이 옵션을 주지 않고 접속을 시도하면 주소를 다시 한 번 물어보는데, 이때 아무 것도 입력하지 않으면 localhost로 접속을 시도한다. |
[-port <server port> | 접속할 서버의 포트를 지정한다. 별도로 지정하지 않는 경우 물어보지 않고 기본값을 사용한다. (기본값: 9736) |
예제
옵션을 주지 않고 실행한 경우에는 필요한 정보를 물어본다.
offline>connect
Enter the server address:
User name: administrator
Password:
Attempting to connect to 127.0.0.1:9736.
The connection has been established to Domain Administration Server adminServer in the domain domain1.
[DAS]domain1.adminServer>
[-u] 옵션만 주고 실행한 경우에는 누락한 정보를 다시 물어본다.
offline>connect -u administrator
Enter the server address:
Password:
Attempting to connect to 127.0.0.1:9736.
The connection has been established to Domain Administration Server adminServer in the domain domain1.
[DAS]domain1.adminServer>
[-port] 옵션을 사용하여 지정한 포트로 접속하는 경우의 예이다.
offline>connect -u administrator -p jeus -h 127.0.0.1 -port 9736
Attempting to connect to 127.0.0.1:9736.
The connection has been established to Domain Administration Server adminServer in the domain domain1.
[DAS]domain1.adminServer>
참고
본 명령어는 서버에 접속하지 않은 상태에서도 사용할 수 있다.
접속을 끊고 Off-line 상태로 돌아가는 명령어이다.
alias
logout
사용법
disconnect
예제
offline>connect Enter the server address: User name: administrator Password: Attempting to connect to 127.0.0.1:9736. The connection has been established to Domain Administration Server adminServer in the domain domain1. [DAS]domain1.adminServer>disconnect The connection has been closed. offline>
참고
본 명령어는 서버에 접속하지 않은 상태에서도 사용할 수 있다.
명령어 수행 과정을 상세히 출력할지 여부를 설정한다. 옵션을 주지 않은 경우 현재 상세 출력이 켜져 있는지 꺼져 있는지 알려준다. 상세 출력이 켜져 있는 경우 명령어 수행 중 예외가 발생하면 Stack Trace를 출력하게 된다.
사용법
verbose [-off | -on]
파라미터
파라미터 | 설명 |
---|---|
[-on] | 상세 출력을 켠다. |
[-off] | 상세 출력을 끈다. |
예제
현재 상세 출력이 켜져 있는지 여부를 확인하는 예제
offline>verbose
Verbose output disabled.
offline>
실제 사용 예제
offline>verbose Verbose output disabled. offline>help notexistcommand Command notexistcommand not found offline>verbose -on Verbose output is enabled. offline>help notexistcommand Command notexistcommand not found jeus.tool.console.executor.CommandException: Command notexistcommand not found ...... offline>verbose -off Verbose output disabled. offline>help notexistcommand Command notexistcommand not found offline>
참고
본 명령어는 서버에 접속하지 않은 상태에서도 사용할 수 있다.
cachelogin 기능을 통해 저장된 특정 사용자 로그인 정보를 캐시 파일에서 제거한다.
jeusadmin에 의해 저장된 로그인 정보는 <host-name>과 <port-number>에 의해 구분되며, 스크립트를 이용한 서버를 실행할 때 저장된 로그인 정보는 <domain-name>과 <server-name>에 의해 구분된다.
사용법
remove-login-cache [-host <host-name>] [-port <port-number>] [-domain <domain-name>] [-server <server-name>] [-f <filename>]
파라미터
파라미터 | 설명 |
---|---|
[-host <host-name>] | jeusadmin으로 로그인 정보를 저장할 때 사용했던 호스트 이름을 지정한다. |
[-port <port-number>] | jeusadmin으로 로그인 정보를 저장할 때 사용했던 포트 번호를 지정한다. |
[-domain <domain-name>] | 스크립트로 로그인 정보를 저장할 때 사용했던 도메인 이름을 지정한다. |
[-server <server-name>] | 스크립트로 로그인 정보를 저장할 때 사용했던 서버 이름을 지정한다. |
[-f <filename>] | 사용자 이름과 비밀번호가 저장된 비밀번호 파일 이름을 지정한다. |
예제
offline>remove-login-cache -host localhost -port 9736 The cached login information [localhost:9736] has been successfully removed from /home/OSUser/.jeusadmin/.jeuspasswd. offline>remove-login-cache -domain domain1 -server adminServer The cached login information [domain1:adminServer] has been successfully removed from /home/OSUser/.jeusadmin/.jeuspasswd.
참고
본 명령어는 서버에 접속하지 않은 상태에서도 사용할 수 있다.
-server 옵션에 대한 기본값을 설정할 수 있는 기능을 제공한다. 옵션을 주지 않고 사용할 경우 현재 설정한 기본값을 출력한다.
alias
setserver
사용법
set-server-option <server-name>
파라미터
파라미터 | 설명 |
---|---|
<server-name> | server 옵션에 대해 기본값으로 사용할 서버 이름을 설정한다. |
예제
adminServer를 기본값으로 설정하여 jndi-info 명령어를 실행한다. set-server-option 명령어를 사용해 <server-name>를 지정해주기 전에는 jndi-info 명령어를 실행하면 -server 옵션이 주어지지 않았다는 오류가 발생하지만, 지정해 준 후에는 별도로 -server 옵션을 주지 않아도 adminServer에 대해 jndi-info 명령어가 동작함을 확인할 수 있다.
[DAS]domain1.adminServer>jndi-info The following options are missing: server [DAS]domain1.adminServer>set-server-option The default server name is not set. [DAS]domain1.adminServer>set-server-option adminServer The default server name has been set: adminServer. [DAS]domain1.adminServer>set-server-option The current default server name: adminServer. [DAS]domain1.adminServer>jndi-info The JNDI list on the adminServer List of the context / ================================================================================ +---------------------+----------------------------------------+---------------+ | Name | Value | Local Binding | +---------------------+----------------------------------------+---------------+ | ConnectionFactory | jeus.jms.client.facility.factory.JeusC | false | | |onnectionFactory | | ...... [DAS]domain1.adminServer>
참고
본 명령어는 서버에 접속하지 않은 상태에서도 사용할 수 있다.
set-server-option 명령어로 설정한 기본값을 삭제한다.
alias
unset-server-option
사용법
unset-server-option
예제
unset-server-option을 사용하여 set-server-option으로 설정한 기본값을 해제하였다. 해제한 후 jndi-info 명령어를 실행하면 server 옵션이 필요하다는 오류가 발생하는 것을 확인할 수 있다.
[DAS]domain1.adminServer>set-server-option The current default server name: adminServer. [DAS]domain1.adminServer>unset-server-option The default server name has been unset. [DAS]domain1.adminServer>set-server-option The default server name is not set. [DAS]domain1.adminServer>jndi-info The following options are missing: server
참고
본 명령어는 서버에 접속하지 않은 상태에서도 사용할 수 있다.
입력한 명령어들을 스크립트 파일에 기록하는 레코딩 기능을 시작한다.
지정한 레코딩 파일의 확장자에 따라 해당 스크립트로 명령어들이 저장된다. 레코딩이 시작되면 프롬프트에 "-Rec*"이 추가된다.
alias
startrecord
사용법
start-record [<recfile>]
파라미터
파라미터 | 설명 |
---|---|
[<recfile>] | 명령어 기록할 파일을 지정한다. 스크립트 파일로 저장이 되므로 현재 지원하는 스크립트의 확장자인 .py, .rb만 확장자로 사용이 가능하다. |
예제
옵션을 주지 않고 실행한 경우는 record_script_[timestamp].py 파일에 저장한다.
offline>start-record Starting recording to file : record_script_20150101123456.py offline-Rec*>
[<recfile>]을 지정한 경우 해당 파일에 저장한다.
offline>start-record record.py Starting recording to file : record.py offline-Rec*>
참고
본 명령어는 서버에 접속하지 않은 상태에서도 사용할 수 있다.
레코딩 기능을 중지한다.
alias
stoprecord
사용법
stop-record
예제
offline-Rec*>stop-record
Stopping recording to file : recrod.py
offline>
참고
본 명령어는 서버에 접속하지 않은 상태에서도 사용할 수 있다.
-servers 옵션에 대한 기본값을 설정한다. 옵션을 주지 않고 실행한 경우 현재 설정되어 있는 기본값을 출력한다.
alias
setservers
사용법
set-servers-option [<server-list>]
파라미터
파라미터 | 설명 |
---|---|
[<server-list>] | servers 옵션에 대해 기본값으로 사용할 서버 이름들을 지정한다. 각 서버 이름은 콤마(,)로 구분한다. |
예제
set-servers-option 명령어를 사용하여 deploy할 서버 목록을 지정한 후 deploy 명령어를 통해 지정한 서버 애플리케이션을 배포하는 예제이다.
[DAS]domain1.adminServer>set-servers-option The default server list is not set. [DAS]domain1.adminServer>set-servers-option adminServer,server1 The default server list has been set: adminServer,server1. [DAS]domain1.adminServer>set-servers-option The current default server list: adminServer,server1. [DAS]domain1.adminServer>deploy sample deploy the application for the application [sample] succeeded. [DAS]domain1.adminServer>appinfo Application information for the domain [domain1]. ================================================================================ +----------+-----------+---------+-------------+----------+--------------------+ | Applicati|Application| State | Target | Target | Application Path | | on ID | Type | | Servers | Clusters | | +----------+-----------+---------+-------------+----------+--------------------+ | sample | WAR | RUNNING | server1,admi| | ${INSTALL_HOME}/sam| | | | |nServer | |ple/sample.war | +----------+-----------+---------+-------------+----------+--------------------+ ================================================================================
참고
본 명령어는 서버에 접속하지 않은 상태에서도 사용할 수 있다.
set-servers-option 명령어로 지정한 -servers 옵션에 대한 기본값 설정을 삭제한다.
alias
unsetservers
사용법
unset-servers-option
예제
[DAS]domain1.adminServer>set-servers-option
The current default server list: adminServer,server1.
[DAS]domain1.adminServer>unset-servers-option
The default server list has been unset.
[DAS]domain1.adminServer>set-servers-option
The default server list is not set.
[DAS]domain1.adminServer>
참고
본 명령어는 서버에 접속하지 않은 상태에서도 사용할 수 있다.
다음은 Server Management 관련 명령어의 목록이다.
명령어 | 설명 |
---|---|
add-custom-resource-to-servers | 동적으로 서버에 custom resource를 추가한다. |
add-data-sources-to-server | 동적으로 서버에 데이터소스들을 등록한다. |
add-external-resource-to-servers | 동적으로 서버에 external resource를 추가한다. |
add-jvm-option | 특정 서버에 JVM 설정을 추가한다. |
add-listener | 특정 서버에 리스너를 추가한다. |
add-log-handler | 동적으로 특정 서버의 특정 로거에 핸들러를 추가한다. |
add-logger | 동적으로 특정 서버에 로거를 추가한다. |
disable-engine-init-on-boot | Server의 내부 엔진(Servlet, EJB, JMS)의 초기화 시점을 애플리케이션 deploy할 때로 설정한다. |
disable-engines | Server의 내부 엔진(Servlet, EJB, JMS)을 선택적으로 사용하지 않도록 설정한다. |
disable-json-command | JsonCommand를 비활성화한다. |
disable-to-resynchronize-applications | MS가 INDEPENDENT 상태에서 DEPENDENT 상태로 변경되었을 때 애플리케이션을 동기화하지 않는다. |
disable-webadmin | WebAdmin 서비스를 비활성화한다. |
dump | 특정 서버 또는 특정 클러스터에 속한 서버들의 Thread Dump를 찍는다. |
enable-engine-init-on-boot | Server의 내부 엔진(Servlet, EJB, JMS)의 초기화 시점을 서버 부팅시로 설정한다. |
enable-engines | Server의 내부 엔진(Servlet, EJB, JMS)을 선택적으로 사용하도록 설정한다. |
enable-json-command | JsonCommand를 활성화한다. |
enable-to-resynchronize-applications | MS가 INDEPENDENT 상태에서 DEPENDENT 상태로 변경되었을 때 애플리케이션을 동기화한다. |
enable-webadmin | WebAdmin 서비스를 활성화한다. |
jndi-info | 특정 서버의 JNDI 컨텍스트에 바인드되어 있는 객체의 바인딩(이름) 목록을 확인한다. |
list-jvm-options | 특정 서버의 JVM 설정을 조회한다. |
list-log-handlers | 특정 서버의 특정 로거에 등록된 핸들러들의 정보를 조회한다. |
list-loggers | 특정 서버에 등록된 로거들의 정보를 조회한다. |
list-server-listeners | 특정 서버에 있는 리스너들의 설정을 조회한다. |
local-shutdown | 현재 접속해 있는 서버를 종료한다. |
local-start-server | On-line 모드에서는 현재 접속해 있는 서버가 STANDBY 상태일 경우 서버를 시작한다. |
log-level | 특정 서버의 특정 로거와 해당 로거에 등록된 핸들러들의 레벨을 확인한다. |
mbean-info | 특정 서버에 등록된 MBean들의 리스트를 조회한다. |
memory-info | 특정 서버 또는 특정 클러스터에 속한 서버들의 메모리 정보를 확인한다. |
modify-jvm-option | 특정 서버의 JVM 설정을 수정한다. |
modify-listener | 특정 서버에 있는 리스너의 설정을 수정한다. |
modify-log-handler | 특정 서버의 특정 로거에 등록된 특정 핸들러를 수정한다. |
modify-logger | 동적으로 특정 서버에 등록된 특정 로거를 수정한다. |
remove-custom-resource-from-servers | 서버에 등록된 custom resource를 동적으로 삭제한다. |
remove-data-sources-from-server | 서버에 등록된 데이터소스들을 동적으로 제거한다. |
remove-external-resource-from-servers | 서버에 등록된 external resource를 동적으로 삭제한다. |
remove-jvm-option | 특정 서버의 JVM 설정을 제거한다. |
remove-listener | 특정 서버에 있는 리스너를 삭제한다. |
remove-log-handler | 동적으로 특정 서버의 특정 로거에 등록된 특정 핸들러를 삭제한다. |
remove-logger | 동적으로 특정 서버에 등록된 특정 로거를 삭제한다. |
resume-server | 일시 정지된 특정 서버를 다시 서비스되도록 한다. |
rollback-config | 백업되어 있는 특정 설정 파일로 rollback한다. |
run-garbage-collection | 특정 서버 또는 특정 클러스터에 속한 서버들에 full gc를 수행한다. |
server-info | 서버들의 현재 상태를 확인한다. |
show-config | 현재 설정 파일과 백업된 설정 파일 목록을 조회한다. |
start-cluster | 특정 클러스터에 속한 MS들을 시작한다. |
start-domain | 현재 도메인에 속한 모든 MS들을 시작한다. |
start-server | 특정 MS를 시작한다. |
stop-cluster | 특정 클러스터에 속한 MS들을 종료한다. |
stop-domain | 현재 도메인에 속한 MS들을 종료한다. |
stop-server | 특정 MS를 종료한다. |
suspend-server | 서비스 중인 특정 서버를 일시 정지시킨다. |
system-info | 특정 서버의 시스템 정보를 확인한다. |
server-log | 특정 서버의 로그를 command에서 확인한다. |
동적으로 서버에 custom resource를 추가한다.
alias
add-cr-to-servers
사용법
add-custom-resource-to-servers <export-name> -servers <server-list> [-f,--forceLock] [-detail]
파라미터
파라미터 | 설명 |
---|---|
<export-name> | 서버에 추가할 custom resource의 JNDI 바인드 이름이다. |
-servers <server-list> | custom resource를 주어진 server list에 등록한다. |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-detail] | 동적 변경 결과에 대한 상세한 정보가 출력된다. |
예제
[DAS]domain1.adminServer>add-custom-resource-to-servers custom/dog -servers server1
Successfully performed the ADD operation for A custom resource.
Check the results using "list-custom-resources"
동적으로 서버에 데이터소스들을 등록한다.
alias
adddstosvr
사용법
add-data-sources-to-server -server <server-name> [-ids <data-source-id-list> | -all] [-f,--forceLock] [-detail]
파라미터
파라미터 | 설명 |
---|---|
-server <server-name> | 데이터소스를 등록할 서버의 이름이다. |
[-ids <data-source-id-list>] | 서버에 등록할 데이터소스들의 ID 목록이다. 한 개 이상인 경우 콤마(,)로 구분한다. |
[-all] | 도메인에 정의된 모든 데이터소스를 서버에 등록한다. |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-detail] | 동적 변경 결과에 대한 상세한 정보가 출력된다. |
예제
[DAS]domain1.adminServer>add-data-sources-to-server -server server1 -all
Successfully performed the ADD operation for data sources to the server [server1].
Check the results using "add-data-sources-to-server -server server1"
동적으로 서버에 external resource를 추가한다.
alias
add-er-to-servers
사용법
add-external-resource-to-servers <export-name> -servers <server-list> [-f,--forceLock] [-detail]
파라미터
파라미터 | 설명 |
---|---|
<export-name> | 서버에 추가할 external resource의 이름이다. |
-servers <server-list> | external resource를 주어진 server list에 등록한다. |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-detail] | 동적 변경 결과에 대한 상세한 정보가 출력된다. |
예제
[DAS]domain1.adminServer>add-external-resource-to-servers test/ext -servers server1
Successfully performed the ADD operation for A external resource.
Check the results using "list-external-resources"
특정 서버에 JVM 설정을 추가한다.
alias
add-jvmopt, addjvmopt, add-jvm-config, add-jvmcfg, addjvmcfg
사용법
add-jvm-option -server <server-name> [-opt,--jvmOption <jvm-option>] [-f,--forceLock] [-detail]
파라미터
파라미터 | 설명 |
---|---|
-server <server-name> | 서버의 이름이다. |
[-opt,--jvmOption <jvm-option>] | 추가할 JVM 설정이다. |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-detail] | 설정 변경 결과에 대한 상세한 정보가 출력된다. |
예제
[DAS]domain1.adminServer>add-jvm-option -server server1 -opt "-Xmx256m -XX:MaxPermSize=128m"
Successfully performed the ADD operation for JVM configuration for the server
(sever1)., but all changes were non-dynamic. They will be applied after restarting.
Check the results using "list-jvm-options or add-jvm-option"
동적으로 특정 서버에 리스너를 추가한다.
alias
addlistener, createlistener
사용법
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]
파라미터
파라미터 | 설명 |
---|---|
-server <server-name> | 서버의 이름이다. |
-name <listener-name> | 추가할 리스너의 이름이다. |
[-addr <address>] | 추가할 리스너의 주소이다. |
-port <port> | 추가할 리스너의 포트 번호이다. 1 ~ 65535 사이의 값을 설정해야 하며, 다른 리스너의 포트 번호와 겹치지 않아야 한다. |
[-selectors <selectors>] | 사용할 Selector의 개수이다. |
[-dual] | read/write 작업에 각각 별개의 Selector를 사용한다. |
[-backlog <backlog>] | 추가할 리스너의 backlog이다. |
[-timeout <read-timeout>] | [동적 변경] 추가할 리스너의 read 타임아웃이다. |
[-keepaliveTimeout <keepalive-timeout>] | 사용하지 않는 소켓을 닫을 때까지의 시간을 설정한다. |
[-rt,--reservedthreads <reserved-threads>] | 추가할 리스너가 사용할 Reserved Thread의 개수이다. |
[-f,--forceLock] | 추가를 위한 lock을 강제로 취한다. |
예제
[DAS]domain1.adminServer>add-listener -server server1 -name Test -port 10000
Executed Successfully
Check the result using 'list-server-listeners -server server1 -name Test.
[DAS]domain1.adminServer>list-server-listeners -server server1 -name Test
===============================================================
Test
+---------------------------------------------------+---------+
| Attribute name | Value |
+---------------------------------------------------+---------+
| address | not-set |
| port | 10000 |
| selectors | 1 |
| dual-selector | false |
| backlog | 128 |
| read-timeout | 30000 |
| keepalive-timeout | not-set |
| reserved-threads | 0 |
+---------------------------------------------------+---------+
===============================================================
동적으로 특정 서버의 특정 로거에 핸들러를 추가한다.
alias
addloghandler, add-handler, addhandler
사용법
add-log-handler -server <server-name> -logger <logger-name> [<handler-name>] [-level <handler-level>] [-filter <filter-class>] [-encoding <encoding>] [-filename <file-name>] [-enable <enable-rotation>] [-count <rotation-count>] [-dir <rotation-dir>] [-buffer <buffer-size>] [-append <append>] [-hour <hour> | -day <day> | -size <size>] [-f,--forceLock] [-detail]
파라미터
파라미터 | 설명 |
---|---|
-server <server-name> | 서버의 이름이다. |
-logger <logger-name> | 핸들러를 추가할 로거의 이름이다. |
[<handler-name>] | 추가할 핸들러의 이름이다. |
[-level <handler-level>] | [동적 변경] 핸들러의 로그 레벨이다. (기본값: FINEST) |
[-filter <filter-class>] | 로그 메시지의 필터 클래스 이름이다. |
[-encoding <encoding>] | 로그 메시지의 인코딩 값이다. |
[-filename <file-name>] | 로그를 기록할 파일 이름이다. (기본값: loggerName.log. jeus logger의 경우는 JeusServer.log) |
[-enable <enable-rotation>] | 파일 로테이션을 가능하게 할지 여부이다. (기본값: true) |
[-count <rotation-count>] | 백업하는 로그 파일의 최대 개수이다. |
[-dir <rotation-dir>] | 백업하는 로그 파일이 위치하는 디렉터리 경로이다. |
[-buffer <buffer-size>] | 로그 메시지를 파일에 기록할 때의 버퍼 사이즈이다. |
[-append <append>] | 재부팅할 때 이전 파일에 계속 로그를 남길지 여부이다. (true | false, 기본값: true) |
[-hour <hour>] | 입력된 시간마다 새로운 로그 파일을 작성한다. |
[-day <day>] | 입력된 날마다 새로운 로그 파일을 작성한다. |
[-size <size>] | 입력된 사이즈에 따라 새로운 로그 파일을 작성한다. |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-detail] | 동적 변경 결과에 대한 상세한 정보가 출력된다. |
예제
[DAS]domain1.adminServer>add-log-handler -server server1 -logger jeus.jndi fileHandler -day 10 -detail
Successfully performed the ADD operation for The handler for the logger(jeus.jndi)
on the server(server1)., but all changes were non-dynamic. They will be applied
after restarting.
Check the results using "list-log-handlers or add-log-handler"
동적으로 특정 서버에 로거를 추가한다.
alias
addlogger
사용법
add-logger -server <server-name> [<logger-name>] [-level <log-level>] [-useParentHandlers <use-parent-handlers>] [-filter <filter-class>] [-formatter <formatter-class>] [-f,--forceLock] [-detail]
파라미터
파라미터 | 설명 |
---|---|
-server <server-name> | 서버의 이름이다. |
[<logger-name>] | 서버에 추가할 로거의 이름이다. |
[-level <log-level>] | [동적 변경] 로거의 로그 레벨이다. |
[-useParentHandlers <use-parent-handlers>] | [동적 변경] 상위 로거의 핸들러를 사용할지 여부이다. (true | false) |
[-filter <filter-class>] | 출력되는 로그 메시지의 필터 클래스 이름이다. |
[-formatter <formatter-class>] | 로거에 적용할 Formatter의 클래스 이름이다. |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-detail] | 동적 변경 결과에 대한 상세한 정보가 출력된다. |
예제
[DAS]domain1.adminServer>add-logger -server server1 jeus.security -level FINE
Successfully performed the ADD operation for The logger for the server(server1).
, but all changes were non-dynamic. They will be applied after restsarting.
Check the results using "list-loggers or add-logger"
Server의 내부 엔진(Servlet, EJB, JMS)의 초기화 시점을 애플리케이션 deploy할 때로 설정한다. 서버를 다시 시작해야 적용된다.
관련 스키마
jeus-domain.xsd
alias
lazyengine
사용법
disable-engine-init-on-boot <server-list> [-f,--forceLock]
파라미터
파라미터 | 설명 |
---|---|
<server-list> | 서버의 이름이다. 서버가 한 개 이상인 경우는 콤마(,)로 구분한다 |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
예제
[DAS]domain1.adminServer>disable-engine-init-on-boot adminServer,server1
EngineInitOnBoot was successfully enabled.
The configuration was changed.
================================================================================
+------------------------------------------------------------------------------+
| Result |
+------------------------------------------------------------------------------+
| Successfully changed only the XML. |
| Restart the server to apply the changes. |
+------------------------------------------------------------------------------+
================================================================================
Server의 내부 엔진(Servlet, EJB, JMS)을 사용하지 않도록 설정한다. 서버를 다시 시작해야 적용된다.
관련 스키마
jeus-domain.xsd
alias
engineoff
사용법
disable-engines <server-list> [-all] [-web] [-ejb] [-jms] [-f,--forceLock]
파라미터
파라미터 | 설명 |
---|---|
<server-list> | 서버의 이름이다. 서버가 한 개 이상인 경우는 콤마(,)로 구분한다 |
[-all] | Web, EJB, JMS 엔진에 대하여 모두 설정한다 |
[-web] | Web 엔진에 대하여 설정한다 |
[-ejb] | EJB 엔진에 대하여 설정한다 |
[-jms] | JMS 엔진에 대하여 설정한다 |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
예제
[DAS]domain1.adminServer>disable-engines adminServer -all All engine(s) was(were) successfully disabled. The configuration was changed. ================================================================================ +------------------------------------------------------------------------------+ | Result | +------------------------------------------------------------------------------+ | Successfully changed only the XML. | | Restart the server to apply the changes. | +------------------------------------------------------------------------------+ ================================================================================ ... [DAS]domain1.adminServer>disable-engines adminServer -web -ejb Web EJB engine(s) was(were) successfully disabled. The configuration was changed. ================================================================================ +------------------------------------------------------------------------------+ | Result | +------------------------------------------------------------------------------+ | Successfully changed only the XML. | | Restart the server to apply the changes. | +------------------------------------------------------------------------------+ ================================================================================ ...
JsonCommand를 비활성화한다.
alias
suspend-json-command, jsonoff
사용법
disable-json-command [-f,--forceLock]
파라미터
파라미터 | 설명 |
---|---|
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
예제
[DAS]domain1.adminServer>disable-json-command
JsonCommand was successfully disabled.
The configuration was changed.
================================================================================
+------------------------------------------------------------------------------+
| Result |
+------------------------------------------------------------------------------+
| Successfully applied the configuration changes. |
+------------------------------------------------------------------------------+
================================================================================
INDEPENDENT 상태인 MS가 DEPENDENT 상태가 되었을 때 애플리케이션을 동기화하지 않는다.
alias
disalbe-resync-apps, disable-resyncapps
사용법
disable-to-resynchronize-applications [-f,--forceLock]
파라미터
파라미터 | 설명 |
---|---|
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
예제
[DAS]domain1.adminServer>disable-to-resynchronize-applications
ResyncAppsCommand was successfully disabled.
The configuration was changed.
================================================================================
+------------------------------------------------------------------------------+
| Result |
+------------------------------------------------------------------------------+
| Successfully applied the configuration changes. |
+------------------------------------------------------------------------------+
================================================================================
WebAdmin 서비스를 비활성화한다.
alias
suspend-webadmin, webadminoff
사용법
disable-webadmin [-f,--forceLock]
파라미터
파라미터 | 설명 |
---|---|
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
예제
[DAS]domain1.adminServer>disable-webadmin
WebAdmin was successfully disabled.
The configuration was changed.
===============================================================
+-------------------------------------------------------------+
| Result |
+-------------------------------------------------------------+
| Succeeded to apply configuration changes. |
+-------------------------------------------------------------+
===============================================================
특정 서버 또는 특정 클러스터에 속한 서버들의 Thread Dump를 찍는다. 해당 서버의 서버 로그에 기록된다.
사용법
dump [-clusters <cluster-list> | -servers <server-list>]
파라미터
파라미터 | 설명 |
---|---|
[-clusters <cluster-list>] | 클러스터의 이름이다. 클러스터가 한 개 이상인 경우는 콤마(,)로 구분한다. |
[-servers <server-list>] | 서버의 이름이다. 서버가 한 개 이상인 경우는 콤마(,)로 구분한다. |
예제
[DAS]domain1.adminServer>dump -servers server1
Dumping to the servers.
The result of executing a dump of server processes.
===============================================================
+--------+----------------------------------------------------+
| Server | Result |
+--------+----------------------------------------------------+
| server1| Successfully dumped. |
+--------+----------------------------------------------------+
===============================================================
Server의 내부 엔진(Servlet, EJB, JMS)의 초기화 시점을 서버 시작시로 설정한다. 서버를 다시 시작해야 적용된다.
관련 스키마
jeus-domain.xsd
alias
eagerengine
사용법
enable-engine-init-on-boot <server-list> [-f,--forceLock]
파라미터
파라미터 | 설명 |
---|---|
<server-list> | 서버의 이름이다. 서버가 한 개 이상인 경우는 콤마(,)로 구분한다 |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
예제
[DAS]domain1.adminServer>enable-engine-init-on-boot adminServer
EngineInitOnBoot was successfully enabled.
The configuration was changed.
================================================================================
+------------------------------------------------------------------------------+
| Result |
+------------------------------------------------------------------------------+
| Successfully applied part of the changes. |
| Restart the server to apply the remaining changes. |
+------------------------------------------------------------------------------+
================================================================================
Server의 내부 엔진(Servlet, EJB, JMS)을 사용하지 않도록 설정한다. 서버를 다시 시작해야 적용된다.
관련 스키마
jeus-domain.xsd
alias
engineon
사용법
enable-engines <server-list> [-all] [-web] [-ejb] [-jms] [-f,--forceLock]
파라미터
파라미터 | 설명 |
---|---|
<server-list> | 서버의 이름이다. 서버가 한 개 이상인 경우는 콤마(,)로 구분한다 |
[-all] | Web, EJB, JMS 엔진에 대하여 모두 설정한다 |
[-web] | Web 엔진에 대하여 설정한다 |
[-ejb] | EJB 엔진에 대하여 설정한다 |
[-jms] | JMS 엔진에 대하여 설정한다 |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
예제
[DAS]domain1.adminServer>diable-engines adminServer -all All engine(s) was(were) successfully enabled. The configuration was changed. ================================================================================ +------------------------------------------------------------------------------+ | Result | +------------------------------------------------------------------------------+ | Successfully applied part of the changes. | | Restart the server to apply the remaining changes. | +------------------------------------------------------------------------------+ ================================================================================ ... [DAS]domain1.adminServer>diable-engines adminServer -web -ejb Web EJB engine(s) was(were) successfully enabled. The configuration was changed. ================================================================================ +------------------------------------------------------------------------------+ | Result | +------------------------------------------------------------------------------+ | Successfully applied part of the changes. | | Restart the server to apply the remaining changes. | +------------------------------------------------------------------------------+ ================================================================================ ...
JsonCommand를 활성화한다.
alias
resume-json-command, jsonon
사용법
enable-json-command [-f,--forceLock]
파라미터
파라미터 | 설명 |
---|---|
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
예제
[DAS]domain1.adminServer>enable-json-command
JsonCommand was successfully enabled.
The configuration was changed.
================================================================================
+------------------------------------------------------------------------------+
| Result |
+------------------------------------------------------------------------------+
| Successfully applied the configuration changes. |
+------------------------------------------------------------------------------+
================================================================================
INDEPENDENT 상태인 MS가 DEPENDENT 상태가 되었을 때 애플리케이션을 동기화한다.
alias
enable-resynch-apps, enable-resyncapps, enableresyncapps
사용법
enable-to-resynchronize-applications [-f,--forceLock]
파라미터
파라미터 | 설명 |
---|---|
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
예제
[DAS]domain1.adminServer>enable-to-resynchronize-applications
ResyncAppsCommand was successfully enabled.
The configuration was changed.
================================================================================
+------------------------------------------------------------------------------+
| Result |
+------------------------------------------------------------------------------+
| Successfully applied the configuration changes. |
+------------------------------------------------------------------------------+
================================================================================
WebAdmin 서비스를 활성화한다.
alias
resume-webadmin, webadminon
사용법
enable-webadmin [-f,--forceLock]
파라미터
파라미터 | 설명 |
---|---|
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
예제
[DAS]domain1.adminServer>enable-webadmin
WebAdmin was successfully enabled.
The configuration was changed.
===============================================================
+-------------------------------------------------------------+
| Result |
+-------------------------------------------------------------+
| Succeeded to apply configuration changes. |
+-------------------------------------------------------------+
===============================================================
특정 서버의 JNDI 컨텍스트에 바인드되어 있는 객체의 바인딩(이름) 목록을 확인한다.
alias
jndiinfo, jndilist
사용법
jndi-info -server <server-name> [<context-name>]
파라미터
파라미터 | 설명 |
---|---|
-server <server-name> | 서버의 이름이다. |
[<context-name>] | JNDI 컨텍스트의 이름이다. <context-name>이 컨텍스트이면 해당 컨텍스트에 바인딩되어 있는 모든 객체를 출력하고, 컨텍스트가 아니라 leaf node라면 해당 객체의 상세 정보를 출력한다. |
예제
context
[DAS]domain1.adminServer>jndi-info -server server1 The JNDI list on the server1 List of the context / ================================================================================ +------------+-------------------------------------------------+---------------+ | Name | Value | Local Binding | +------------+-------------------------------------------------+---------------+ | JEUSMQ_DLQ | jeus.jms.common.destination.JeusQueue | false | | mgmt | jeus.jndi.JNSContext | false | +------------+-------------------------------------------------+---------------+ ================================================================================ [DAS]domain1.adminServer>jndi-info -server server1 mgmt The JNDI list on the server1 List of the context /mgmt =============================================================== +------+--------------------------------------+---------------+ | Name | Value | Local Binding | +------+--------------------------------------+---------------+ | rmbs | jeus.jndi.JNSContext | false | +------+--------------------------------------+---------------+ ===============================================================
leaf node
[DAS]domain1.adminServer>jndi-info -server server1 mgmt/rmbs/adminServer
The JNDI list on the server1
List of the context /mgmt/rmbs/server1
================================================================================
+-------------------+------------------------------------------+---------------+
| Name | Value | Local Binding |
+-------------------+------------------------------------------+---------------+
| mgmt/rmbs/server1 | javax.management.remote.JMXConnector | false |
+-------------------+------------------------------------------+---------------+
Reference class name : javax.management.remote.JMXConnector
Reference Factory class name : jeus.management.remote.jeusmp.JeusmpConnectorFactory
[0] StringRefAddr : jmxmp, RefAddr type : protocol
[1] StringRefAddr : Administrator, RefAddr type : host
[2] StringRefAddr : 19736, RefAddr type : port
[3] StringRefAddr : /JEUSMP_server1, RefAddr type : urlPath
[4] StringRefAddr : 60000, RefAddr type : checktmout
[5] StringRefAddr : 61.77.153.160, RefAddr type : ipaddr
end of RefAddr
================================================================================
특정 서버의 JVM 설정을 조회한다.
alias
list-jvmopt, listjvmopt, list-jvm-config, list-jvmcfg, listjvmcfg
사용법
list-jvm-options <server-name>
파라미터
파라미터 | 설명 |
---|---|
-server <server-name> | 서버의 이름이다. |
예제
[DAS]domain1.adminServer>list-jvm-config adminServer List of JVM Configurations ================================================================================ +------------------------------------------------------------------------------+ | JVM Configs | +------------------------------------------------------------------------------+ | -Xmx256m -XX:MaxPermSize=128m | +------------------------------------------------------------------------------+ ================================================================================
특정 서버의 특정 로거에 등록된 핸들러들의 정보를 조회한다.
alias
listloghandlers, listhandlers, list-handlers
사용법
list-log-hanlders -server <server-name> <logger-name>
파라미터
파라미터 | 설명 |
---|---|
-server <server-name> | 서버의 이름이다. |
<logger-name> | 로거의 이름이다. |
예제
[DAS]domain1.adminServer>list-log-handlers -server adminServer jeus.deploy
List of Loggers
================================================================================
+-------------------+----------------------------------------------------------+
| Name | Value |
+-------------------+----------------------------------------------------------+
| Handler Name | fileHandler |
| Handler Type | FileHandlerType |
| Handler Level | FINEST |
| Filename | jeus.deploy.log |
| Enable Rotation | true |
| Rotation Directory| ${SERVER_HOME}/logs |
| Valid Day | 1 |
| Buffer Size | 1024 |
| Logging to Append | true |
+-------------------+----------------------------------------------------------+
================================================================================
특정 서버에 등록된 로거들의 정보를 조회한다.
alias
listloggers
사용법
list-loggers <server-name> [-logger<logger-name>]
파라미터
파라미터 | 설명 |
---|---|
<server-name> | 서버의 이름이다. |
[-logger<logger-name>] | 로거의 이름이다. |
예제
[DAS]domain1.adminServer>list-loggers server1
List of Loggers
===========================================================================
+------------------+------+----------------------------+-------+----------+
| Logger Name | Level| Use Parent Handlers | Filter| Formatter|
+------------------+------+----------------------------+-------+----------+
| jeus | INFO | false | | |
| jeus.security | FINE | true | | |
+------------------+------+----------------------------+-------+----------+
===========================================================================
동적으로 특정 서버에 있는 리스너들의 설정을 조회한다.
alias
listener, serverlistener
사용법
list-server-listeners -server <server-name> [-name <listener-name>]
파라미터
파라미터 | 설명 |
---|---|
-server <server-name> | 서버의 이름이다. |
[-name <listener-name>] | 조회할 리스너의 이름이다. |
예제
[DAS]domain1.adminServer>list-server-listeners -server adminServer ========================================================= +--------------------------------------+---------+------+ | listener-name | address | port | +--------------------------------------+---------+------+ | base | 0.0.0.0 | 9736 | | jms | 0.0.0.0 | 9741 | | http-lisetner | not-set | 8088 | +--------------------------------------+---------+------+ ========================================================= [DAS]domain1.adminServer>list-server-listeners -server adminServer -name base =============================================================== base +---------------------------------------------------+---------+ | address | 0.0.0.0 | | port | 9736 | | selectors | | | dual-selector | false | | backlog | 128 | | read-timeout | 30000 | | reserved-threads | 0 | +---------------------------------------------------+---------+ ===============================================================
현재 접속해 있는 서버를 종료한다.
alias
localdown, localjeusexit
사용법
local-shutdown [-to,--shutdowntimeout <timeout> | -f,--force | -g,--graceful]
파라미터
파라미터 | 설명 |
---|---|
[-to, --shutdowntimeout <timeout>] | Graceful하게 종료할 때 사용할 타임아웃을 설정한다. 처리 중인 요청을 입력한 시간만큼 완료되길 기다린다. (단위: second) |
[-f, --force] | Graceful shutdown을 시도하지 않고 바로 서버를 종료한다. (기본값) |
[-g, --graceful] | Graceful하게 종료할지 여부를 설정한다. 처리 중인 요청이 끝나길 무한히 기다린다. |
예제
local-shutdown 명령어를 사용해 현재 접속한 서버를 종료한다..
[DAS]domain1.adminServer>local-shutdown
The server [adminServer] has been shut down successfully.
offline>
참고
본 명령어는 서버에 접속하지 않은 상태에서도 사용할 수 있다.
On-line 모드에서는 현재 접속해 있는 서버가 STANDBY 상태일 경우 서버를 시작한다. Off-line 모드에서는 SSH를 통하여 특정 MS를 시작한다. 이때 -node, -domain, -server, -u, -p, -dasurl은 필수 항목이다.
alias
localstartserver, local-boot
사용법
아래의 사용법은 On-line 모드일 때 기준이다.
local-start-server [-node <node-name>] [-domain <domain-name>] [-server <server-name>] [-u <user-name>] [-p <password>] [-dasurl <dasurl>] [-f, --force] [-s, --standby]
파라미터
파라미터 | 설명 |
---|---|
[-node <node-name>] | 노드의 이름이다. |
[-domain <domain-name>] | 도메인의 이름이다. |
[-server <server-name>] | 서버의 이름이다. |
[-u <user-name>] | 사용자의 이름이다. |
[-p <password>] | 사용자의 암호이다. |
[-dasurl <dasurl>] | 도메인 운영 서버의 주소이다. |
[-f, --force] | 등록된 애플리케이션이 RUNNING 상태가 아니더라도 강제로 시작한다. |
[-s, --standby] | 서버를 준비 상태인 STANDBY 상태로 기동한다. |
예제
offline>local-start-server -node node1 -domain domain1 -server server1 -u administrator -p password -dasurl 192.168.34.55:9736
The Server [server1] was successfully started.
참고
본 명령어는 서버에 접속하지 않은 상태에서도 사용할 수 있다.
특정 서버의 특정 로거와 해당 로거에 등록된 핸들러들의 레벨을 확인한다.
alias
loglevel
사용법
log-level -server <server-name> <logger-name>
파라미터
파라미터 | 설명 |
---|---|
-server <server-name> | 서버의 이름이다. |
<logger-name> | 확인할 로거의 이름이다. |
예제
[DAS]domain1.adminServer>log-level -server server1 jeus
The logger[jeus] information for the server [server1]
Information about the logger[jeus].
==========================================================
Logger Name : jeus
Level : INFO
Use Parent Handlers : false
+-------------+-------------+----------------------------+
| Handler Name| Handler Type| Handler Level |
+-------------+-------------+----------------------------+
| FileHandler | FileHandler | FINEST |
+-------------+-------------+----------------------------+
==========================================================
특정 서버에 등록된 MBean들의 리스트를 조회한다.
alias
mbeaninfo
사용법
mbean-info -server <server-name> [<object-name>]
파라미터
파라미터 | 설명 |
---|---|
-server <server-name> | 서버의 이름이다. |
[<object-name>] | Object 이름에 대한 특정 쿼리이다. 특정 Object 이름을 갖는 MBean의 목록을 조회하는 경우 사용한다. 쿼리하는 Object 이름에 대해서는 "JEUS JMX 안내서"를 참고한다. |
예제
[DAS]domain1.adminServer>mbean-info -server server1
The object names of MBeans on the server [server1].
================================================================================
+------------------------------------------------------------------------------+
| JEUS:j2eeType=JeusService,jeusType=ServerNodeManagerService,JMXManager=server|
|1,J2EEServer=server1,name=server1 |
| JEUS:j2eeType=J2EEServer,JMXManager=server1,isTargetable=true,J2EEDomain=doma|
|in1,name=server1 |
| JEUS:j2eeType=JMSResource,JMXManager=server1,J2EEServer=server1,name=server1_|
|jms |
| JEUS:j2eeType=JeusService,jeusType=SecurityDomain,JMXManager=server1,J2EEDoma|
|in=domain1,SecurityService=SecurityService,name=SYSTEM_DOMAIN |
| JEUS:j2eeType=JeusService,jeusType=JEUSMPConnector,JMXManager=server1,J2EESer|
|ver=server1,name=server1 |
| JEUS:j2eeType=JeusService,jeusType=ThreadPool,JMXManager=server1,J2EEServer=s|
|erver1,name=threadpool.System |
| JEUS:j2eeType=JeusService,jeusType=WebListener,JMXManager=server1,WebEngine=s|
|erver1_servlet,J2EEServer=server1,name=ADMIN-HTTP |
| JEUS:j2eeType=JeusService,jeusType=ThreadPool,JMXManager=server1,J2EEServer=s|
|erver1,name=EJBTimerService |
| JEUS:j2eeType=JDBCResource,JMXManager=server1,J2EEServer=server1,name=server1|
| JEUS:j2eeType=JeusService,jeusType=ThreadPool_WEBC,JMXManager=server1,WebEngi|
|ne=server1_servlet,J2EEServer=server1,WebListener=ADMIN-HTTP,name=ADMIN-HTTP |
| JEUS:j2eeType=JeusService,jeusType=EJBEngine,JMXManager=server1,J2EEServer=se|
|rver1,name=server1_ejb |
| JEUS:j2eeType=JeusService,jeusType=JNDIResourceService,JMXManager=server1,J2E|
|EServer=server1,name=server1 |
| JEUS:j2eeType=JeusService,jeusType=SecurityService,JMXManager=server1,J2EEDom|
|ain=domain1,J2EEServer=server1,name=SecurityService |
| JEUS:j2eeType=JeusService,jeusType=WebEngine,JMXManager=server1,J2EEServer=se|
|rver1,name=server1_servlet |
| JEUS:j2eeType=JeusService,jeusType=SecuritySubject,JMXManager=server1,J2EEDom|
|ain=domain1,SecurityDomain=SYSTEM_DOMAIN,name=Subject |
| JEUS:j2eeType=JeusService,jeusType=ThreadPool,JMXManager=server1,J2EEServer=s|
|erver1,name=server1 |
| JEUS:j2eeType=JeusService,jeusType=JMSServiceChannel,JMXManager=server1,J2EES|
|erver=server1,JMSResource=server1_jms,name=JMSServiceChannel-default |
| JEUS:j2eeType=Console,JMXManager=server1,J2EEServer=server1,name=server1 |
| JEUS:j2eeType=JeusService,jeusType=JDBCResourceService,JMXManager=server1,J2E|
|EServer=server1,name=server1 |
| JEUS:j2eeType=JVM,JMXManager=server1,J2EEServer=server1,name=server1 |
| JEUS:j2eeType=JTAResource,JMXManager=server1,J2EEServer=server1,name=server1 |
| JEUS:j2eeType=JeusService,jeusType=JMSEngine,JMXManager=server1,J2EEServer=se|
|rver1,name=server1_jms |
| JEUS:j2eeType=JeusService,jeusType=JMSDestinationResource,JMXManager=server1,|
|J2EEServer=server1,JMSResource=server1_jms,name=JEUSMQ_DLQ |
| JEUS:j2eeType=JeusService,jeusType=SecurityPolicy,JMXManager=server1,J2EEDoma|
|in=domain1,SecurityDomain=SYSTEM_DOMAIN,name=Policy |
+------------------------------------------------------------------------------+
================================================================================
특정 서버 또는 특정 클러스터에 속한 서버들의 메모리 정보를 확인한다.
alias
memorystatus, memstatus, memoryinfo, meminfo
사용법
memory-info [-clusters <cluster-list> | -servers <server-list>]
파라미터
파라미터 | 설명 |
---|---|
[-clusters <cluster-list>] | 클러스터의 이름이다. 클러스터가 한 개 이상인 경우는 콤마(,)로 구분한다. |
[-servers <server-list>] | 서버의 이름이다. 서버가 한 개 이상인 경우는 콤마(,)로 구분한다. |
예제
[DAS]domain1.adminServer>memory-info -servers server1
Domain [domain1] Memory Information
Memory Information
=============================================================================
+--------+------------------------+-----------------------------------------+
| Server | Total Amount of Memory | The Current Amount of Memory |
+--------+------------------------+-----------------------------------------+
| server1| 110362624 | 55153456 |
+--------+------------------------+-----------------------------------------+
============================================================================
특정 서버의 JVM 설정을 수정한다.
alias
modify-jvmopt, modifyjvmopt, modify-jvm-config, modify-jvmcfg
사용법
modify-jvm-option -server <server-name> [-old,--oldOption <jvm-option>] [-new,--newOption <jvm-option>] [-f,--forceLock] [-detail]
파라미터
파라미터 | 설명 |
---|---|
-server <server-name> | 서버의 이름이다. |
[-old,--oldOption <jvm-option>] | 수정하기 전 JVM 설정이다. 현재 JVM 설정과 같다. |
[-new,--newOption <jvm-option>] | 수정 후 바뀔 JVM 설정이다. |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-detail] | 설정 변경 결과에 대한 상세한 정보가 출력된다. |
예제
[DAS]domain1.adminServer>modify-jvm-option -server server1 -old "-Xmx256m -XX:Ma xPermSize=128m" -new "-Xmx512m -XX:MaxPermSize=128m"
Successfully performed the MODIFY operation for JVM configuration for the server
(server1)., but all changes were non-dynamic. They will be applied after restarting.
Check the results using "list-jvm-options or modify-jvm-option"
특정 서버에 있는 리스너의 설정을 수정한다.
alias
modifylistener, editlistener
사용법
modify-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]
파라미터
파라미터 | 설명 |
---|---|
-server <server-name> | 서버의 이름이다. |
-name <listener-name> | 수정할 리스너의 이름이다. |
[-addr <address>] | 수정할 리스너의 바뀔 주소이다. |
[-port <port>] | 수정할 리스너의 바뀔 포트 번호이다. 1 ~ 65535 사이의 값을 설정해야 하며, 다른 리스너의 포트 번호와 겹치지 않아야 한다. |
[-selectors <selectors>] | 사용할 Selector의 개수이다. |
[-dual] | read/write 작업에 각각 별개의 Selector를 사용한다. |
[-backlog <backlog>] | 수정할 리스너의 바뀔 backlog이다. |
[-timeout <read-timeout>] | [동적 변경] 수정할 리스너의 바뀔 read 타임아웃이다. |
[-keepaliveTimeout <keepalive-timeout>] | 사용하지 않는 소켓을 닫을 때까지의 시간을 설정한다. |
[-rt,--reservedthreads <reserved-threads>] | 수정할 리스너가 사용할 Reserved Thread의 바뀔 개수이다. |
[-f,--forceLock] | 수정을 위한 lock을 강제로 취한다. |
예제
[DAS]domain1.adminServer>modify-listener -server adminServer -name base -dual -b acklog 250
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 adminServer -name base.
[DAS]domain1.adminServer>list-server-listeners -server adminServer -name base
===============================================================
base
+---------------------------------------------------+---------+
| address | 0.0.0.0 |
| port | 9736 |
| selectors | 1 |
| dual-selector | true |
| backlog | 250 |
| read-timeout | 30000 |
| keepalive-timeout | not-set |
| reserved-threads | 0 |
+---------------------------------------------------+---------+
===============================================================
특정 서버의 특정 로거에 등록된 특정 핸들러를 수정한다.
alias
modifyloghandler, modify-handler, modifyhandler
사용법
modify-log-handler -server <server-name> -logger <logger-name> <handler-name> [-level <handler-level>] [-filter <filter-class>] [-encoding <encoding>] [-filename <file-name>] [-enable <enable-rotation>] [-count <rotation-count>] [-dir <rotation-dir>] [-buffer <buffer-size>] [-append <append>] [-hour <hour> | -day <day> | -size <size>] [-f,--forceLock] [-detail]
파라미터
파라미터 | 설명 |
---|---|
-server <server-name> | 서버의 이름이다. |
-logger <logger-name> | 로거의 이름이다. |
<handler-name> | 변경할 핸들러의 이름이다. |
[-level <handler-level>] | [동적 변경] 핸들러의 로그 레벨이다. (기본값: FINEST) |
[-filter <filter-class>] | 로그 메시지의 필터 클래스 이름이다. |
[-encoding <encoding>] | 로그 메시지의 인코딩 값이다. |
[-filename <file-name>] | 로그 메시를 기록할 파일 이름이다. (기본값: loggerName.log. jeus logger의 경우는 JeusServer.log) |
[-enable <enable-rotation>] | 파일 로테이션을 가능하게 할지 여부를 설정한다. (기본값: true) |
[-count <rotation-count>] | 백업하는 로그 파일의 최대 개수이다. |
[-dir <rotation-dir>] | 백업하는 로그 파일이 위치하는 디렉터리 경로이다. |
[-buffer <buffer-size>] | 로그 메시지를 파일에 기록할 때의 버퍼 사이즈이다. |
[-append <append>] | 재부팅할 때 이전 파일에 계속 로그를 남길지 여부를 설정한다. (true | false, 기본값: true) |
[-hour <hour>] | 입력된 시간마다 새로운 로그 파일을 작성한다. |
[-day <day>] | 입력된 날마다 새로운 로그 파일을 작성한다. |
[-size <size>] | 입력된 사이즈에 따라 새로운 로그 파일을 작성한다. |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-detail] | 동적 변경 결과에 대한 상세한 정보가 출력된다. |
예제
[DAS]domain1.adminServer>modify-log-handler -server server1 -logger jeus newHandler -level CONFIG
Successfully performed the MODIFY operation for The handler(FileHandler) for the
logger(jeus) in server (server1).
Check the results using "modify-log-handler"
특정 서버에 등록된 특정 로거를 수정한다.
alias
modifylogger
사용법
modify-logger -server <server-name> <logger-name> [-level <log-level>] [-useParentHandlers <use-parent-handlers>] [-filter <filter-class>] [-formatter <formatter-class>] [-f,--forceLock] [-detail]
파라미터
파라미터 | 설명 |
---|---|
-server <server-name> | 서버의 이름이다. |
<logger-name> | 로거의 이름이다. |
[-level <log-level>] | [동적 변경] 로거의 로그 레벨이다. |
[-useParentHandlers <use-parent-handlers>] | [동적 변경] 상위 로거의 핸들러를 사용할지 여부이다. (true | false) |
[-filter <filter-class>] | 로거에 적용할 필터의 클래스 이름이다. |
[-formatter <formatter-class>] | 로거에 적용할 Formatter의 클래스 이름이다. |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-detail] | 동적 변경 결과에 대한 상세한 정보가 출력된다. |
예제
[DAS]domain1.adminServer>modify-logger -server server1 jeus.security -level FINEST -useParentHandlers false
Successfully performed the MODIFY operation for The logger[jeus.security] inform
ation for the server [server1].
Check the results using "modify-logger"
동적으로 서버에 등록된 custom resource를 삭제한다.
alias
remove-cr-from-servers
사용법
remove-custom-resource-from-servers <export-name> -servers <server-list> [-f,--forceLock] [-detail]
파라미터
파라미터 | 설명 |
---|---|
<export-name> | 서버에서 제거할 custom resource의 JNDI 바인드 이름이다. |
-servers <server-list> | custom resource를 제거할 server list를 설정한다. |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-detail] | 동적 변경 결과에 대한 상세한 정보가 출력된다. |
예제
[DAS]domain1.adminServer>remove-custom-resource-from-servers custom/dog -servers server1
Successfully performed the REMOVE operation for A custom resource.
Check the results using "list-custom-resources"
동적으로 서버에 등록된 데이터소스들을 제거한다.
alias
rmdsfromsvr
사용법
remove-data-sources-from-server -server <server-name> [-ids <data-source-id-list> | -all] [-f,--forceLock] [-detail]
파라미터
파라미터 | 설명 |
---|---|
-server <server-name> | 데이터소스들 제거할 서버의 이름이다. |
[-ids <data-source-id-list>] | 서버로부터 제거할 데이터소스들의 ID 목록이다. 한 개 이상인 경우 콤마(,)로 구분한다. |
[-all] | 서버에 등록된 모든 데이터소스를 제거한다. |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-detail] | 동적 변경 결과에 대한 상세한 정보가 출력된다. |
예제
[DAS]domain1.adminServer>remove-data-sources-from-server -server server1 -ids data-source1
Successfully performed the REMOVE operation for data sources from the server [server1].
Check the results using "remove-data-sources-from-server -server server1"
동적으로 서버에 등록된 external resource를 삭제한다.
alias
remove-er-from-servers
사용법
remove-external-resource-from-servers <export-name> -servers <server-list> [-f,--forceLock] [-detail]
파라미터
파라미터 | 설명 |
---|---|
<export-name> | 서버에서 제거할 external resource의 이름이다. |
-servers <server-list> | external resource를 제거할 server list를 설정한다. |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-detail] | 동적 변경 결과에 대한 상세한 정보가 출력된다. |
예제
[DAS]domain1.adminServer>remove-external-resource-from-servers test/ext -servers server1
Successfully performed the REMOVE operation for A external resource.
Check the results using "list-external-resources"
특정 서버의 JVM 설정을 제거한다.
alias
remove-jvmopt, rm-jvmopt, rmjvmopt, remove-jvm-config, remove-jvmcfg, rm-jvmcfg, rmjvmcfg
사용법
remove-jvm-option -server <server-name> [-opt,--jvmOption <jvm-option>] [-f,--forceLock] [-detail]
파라미터
파라미터 | 설명 |
---|---|
-server <server-name> | 서버의 이름이다. |
[-opt,--jvmOption <jvm-option>] | 서버로부터 제거할 JVM 설정이다. |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-detail] | 설정 변경 결과에 대한 상세한 정보가 출력된다. |
예제
[DAS]domain1.adminServer>remove-jvm-option -server server1 -opt "-Xmx256m -XX:Ma xPermSize=128m"
Successfully performed the REMOVE operation for JVM configuration for the server
(server1)., but all changes were non-dynamic. They will be applied after restarting.
Check the results using "list-jvm-options or remove-jvm-option"
특정 서버에 있는 리스너를 삭제한다. base 리스너나 다른 설정에서 참조하고 있는 리스너는 삭제할 수 없다.
alias
removelistener, deletelistener
사용법
remove-listener -server <server-name> -name <listener-name> [-f,--forceLock]
파라미터
파라미터 | 설명 |
---|---|
-server <server-name> | 서버의 이름이다. |
-name <listener-name> | 삭제할 리스너의 이름이다. |
[-f,--forceLock] | 수정을 위한 lock을 강제로 취한다. |
예제
[DAS]domain1.adminServer>list-server-listeners -server adminServer
========================================================
+------------------------------------+---------+-------+
| listener-name | address | port |
+------------------------------------+---------+-------+
| base | 0.0.0.0 | 9736 |
| jms | 0.0.0.0 | 9741 |
| http-lisetner | not-set | 8088 |
| Test | not-set | 10000 |
+------------------------------------+---------+-------+
========================================================
[DAS]domain1.adminServer>remove-listener -server adminServer -name Test
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 adminServer.
[DAS]domain1.adminServer>list-server-listeners -server adminServer
=========================================================
+--------------------------------------+---------+------+
| listener-name | address | port |
+--------------------------------------+---------+------+
| base | 0.0.0.0 | 9736 |
| jms | 0.0.0.0 | 9741 |
| http-lisetner | not-set | 8088 |
+--------------------------------------+---------+------+
=========================================================
동적으로 특정 서버의 특정 로거에 등록된 특정 핸들러를 삭제한다.
alias
removeloghandler, removehandler, remove-handler
사용법
remove-log-handler -server <server-name> -logger <logger-name> [<handler-name>] [-f,--forceLock] [-detail]
파라미터
파라미터 | 설명 |
---|---|
-server <server-name> | 서버의 이름이다. |
-logger <logger-name> | 핸들러를 제거할 로거의 이름이다. |
[<handler-name>] | 제거할 핸들러의 이름이다. |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-detail] | 동적 변경 결과에 대한 상세한 정보가 출력된다. |
예제
[DAS]domain1.adminServer>remove-log-handler -server server1 -logger jeus newHandler
Successfully performed the REMOVE operation for The handler for the logger(jeus)
on the server(server1)..
Check the results using "list-log-handlers or remove-log-handler"
동적으로 특정 서버에 등록된 특정 로거를 삭제한다.
alias
removelogger
사용법
remove-logger -server <server-name> [<logger-name>] [-f,--forceLock] [-detail]
파라미터
파라미터 | 설명 |
---|---|
-server <server-name> | 서버의 이름이다. |
[<logger-name>] | 제거할 로거의 이름이다. |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-detail] | 동적 변경 결과에 대한 상세한 정보가 출력된다. |
예제
[DAS]domain1.adminServer>remove-logger -server server1 jeus.security
Successfully performed the REMOVE operation for The logger for the
server(server1)..
Check the results using "list-loggers or remove-logger"
일시 정지된 특정 서버 또는 특정 클러스터를 다시 서비스되도록 한다.
alias
resume
사용법
resume-server [-clusters <cluster-list> | -servers <server-list>]
파라미터
파라미터 | 설명 |
---|---|
[-clusters <cluster-list>] | 클러스터의 이름이다. 클러스터가 한 개 이상인 경우는 콤마(,)로 구분한다. |
[-servers <server-list>] | 서버의 이름이다. 서버가 한 개 이상인 경우는 콤마(,)로 구분한다. |
예제
[DAS]domain1.adminServer>resume-server -servers server1
Successfully resumed the servers.
백업되어 있는 특정 설정 파일로 rollback한다. 단, 명령어로 rollback을 할 때에는 동적 반영되지 않으므로 서버를 재시작해야 한다. 단, WebAdmin으로 rollback을 할 때에는 자동으로 동적 반영이 되므로 명령어 보다는 WebAdmin을 통한 rollback을 추천한다.
사용법
rollback-config -name <file-name> [-des <description>]
파라미터
파라미터 | 설명 |
---|---|
-name <file-name> | rollback하고자 하는 백업 설정 파일 이름이다. |
[-des <description>] | rollback을 하게 되면 현재 설정 파일이 백업 된다. 백업되는 현재 설정 파일에 대한 설명이다. |
예제
[DAS]domain1.adminServer>rollback-config -name domain_20130420_210914.xml
Rollback of backup domain.xml file is done successfully. You should restart all
servers in domain.
특정 서버 또는 특정 클러스터에 속한 서버들에 Full Garbage Collection를 수행한다.
alias
rungc, gc
사용법
run-garbage-collection [-clusters <cluster-list> | -servers <server-list>]
파라미터
파라미터 | 설명 |
---|---|
[-clusters <cluster-list>] | 클러스터의 이름이다. 클러스터가 한 개 이상인 경우는 콤마(,)로 구분한다. |
[-servers <server-list>] | 서버의 이름이다. 서버가 한 개 이상인 경우는 콤마(,)로 구분한다. |
예제
[DAS]domain1.adminServer>run-garbage-collection -servers server1
============================================================
+--------+-------------------------------------------------+
| Server | Result |
+--------+-------------------------------------------------+
| server1| Succeeded to GC. |
+--------+-------------------------------------------------+
============================================================
서버의 현재 상태를 확인한다.
alias
svrinfo, serverinfo, si
사용법
server-info [-server <server-name>] [-state | -pid] [-g, --group <group-name> | -c, --cluster <cluster-name> | -n, --node <node-name>]
파라미터
파라미터 | 설명 |
---|---|
[-server <server-name>] | 특정 서버에 대한 정보를 출력한다. |
[-state] | 특정 서버를 함께 지정하였을 경우 해당 서버의 state만 출력한다. |
[-pid] | 특정 서버를 함께 지정하였을 경우 해당 서버의 pid만 출력한다. |
[-g, --group <group-name>] | 해당 그룹으로 분류된 서버에 대한 정보를 출력한다. |
[-c, --cluster <cluster-name>] | 해당 클러스터로 분류된 서버에 대한 정보를 출력한다. |
[-n, --node <node-name>] | 해당 노드로 분류된 서버에 대한 정보를 출력한다. |
예제
[DAS]domain1.adminServer>server-info
Information about Domain (domain1)
==============================================================================================
+--------+---------+-----+-------+-----+----------------+--------+-------------+-------------+
| Server | Status | Node| PID | Clus| Latest | Need to| Listen Ports| Running |
| | |Name | | ter | StartTime/Shut |Restart | | Engines |
| | | | | | downTime | | | |
+--------+---------+-----+-------+-----+----------------+--------+-------------+-------------+
| adminSe| RUNNING | N/A | 12154 | N/A | 2016-08-26 | false | base-0.0.0.0| jms, |
|rver(*) |(00:21:46| | | |(금) 오후 | |:9736 | ejb, web |
| |) | | | |02:29:03 KST | | http-server-| |
| | | | | | | |0.0.0.0:8088 | |
+--------+---------+-----+-------+-----+----------------+--------+-------------+-------------+
| server1| RUNNING |node1| 12171 | clus| 2016-08-26 | false | base-192.167| jms, |
| |(00:04:03| | |ter1 |(금) 오후 | |.0.124:9836 | ejb, web |
| |) | | | |02:36:22 KST | | | |
+--------+---------+-----+-------+-----+----------------+--------+-------------+-------------+
| server2| RUNNING |node1| 12172 | clus| 2016-08-26 | false | base-192.167| jms |
| |(00:04:03| | |ter1 |(금) 오후 | |.0.124:9936 | ejb, web |
| |) | | | |02:36:22 KST | | | |
+--------+---------+-----+-------+-----+----------------+--------+-------------+-------------+
==============================================================================================
현재 설정 파일과 백업된 설정 파일 목록을 조회한다.
사용법
show-config
예제
[DAS]domain1.adminServer>show-config ==================================================================== show previous configurations. +----------------------------------------------------+-------------+ | fileName | description | +----------------------------------------------------+-------------+ | domain.xml | | | domain_20160513_170151.xml | | | domain_20160513_165917.xml | | | domain_20160513_163355.xml | | | domain_20160513_160642.xml | | | domain_20160513_160229.xml | | | domain_20160513_154155.xml | | +----------------------------------------------------+-------------+ ====================================================================
특정 클러스터에 속한 MS들을 시작한다. SHUTDOWN 상태 또는 STANDBY 상태일 경우 사용 가능하다. 서버가 SHUTDOWN 상태일 경우에는 SSH 설정이 제대로 되어 있어야 동작한다.
alias
startcluster
사용법
start-cluster <cluster-name> [-f, --force] [-s, --standby] [-seq,--sequential]
파라미터
파라미터 | 설명 |
---|---|
<cluster-name> | 클러스터의 이름이다. |
[-f, --force] | 강제로 서버를 시작한다. |
[-s, --standby] | 클러스터를 준비 상태인 STANDBY 상태로 기동한다. |
[-seq, --sequential] | 클러스터에 속한 서버를 순차적으로 기동한다. |
예제
[DAS]domain1.adminServer>start-cluster cluster1
The cluster [cluster1] has been successfully started.
현재 도메인에 속한 모든 MS들을 시작한다. SHUTDOWN 상태 또는 STANDBY 상태일 경우 사용 가능하다. 서버가 SHUTDOWN 상태일 경우에는 SSH 설정이 제대로 되어 있어야 동작한다.
alias
startdomain, bootall
사용법
start-domain [-f, --force]
[-s, --standby]
[-seq,--sequential]
파라미터
파라미터 | 설명 |
---|---|
[-f, --force] | 강제로 서버를 시작한다. |
[-s, --standby] | 서버를 준비 상태인 STANDBY 상태로 기동한다. |
[-seq, --sequential] | 도메인에 속한 서버를 순차적으로 기동한다. |
예제
[DAS]domain1.adminServer>start-domain
All managed servers in the domain have been successfully started.
특정 MS를 시작한다. SHUTDOWN 상태 또는 STANDBY 상태일 경우 사용 가능하다. 해당 서버가 SHUTDOWN 상태일 경우에는 SSH 설정이 제대로 되어 있어야 동작한다.
alias
startserver, boot
사용법
start-server <server-name> [-f, --force] [-s, --standby] [-seq,--sequential]
파라미터
파라미터 | 설명 |
---|---|
<server-name> | 서버의 이름이다. |
[-f, --force] | 강제로 서버를 시작한다. |
[-s, --standby] | 서버를 준비 상태인 STANDBY 상태로 기동한다. |
[-seq, --sequential] | 주어진 서버를 순차적으로 기동한다. |
예제
[DAS]domain1.adminServer>start-server server1
The server [server1] was successfully started.
특정 클러스터에 속한 MS들을 종료한다.
alias
stopcluster, shutdowncluster, downcluster
사용법
stop-cluster <cluster-name> [-to,--shutdowntimeout <timeout> | -f, --force | -g,--graceful]
파라미터
파라미터 | 설명 |
---|---|
<cluster-name> | 클러스터의 이름이다. |
[-to,--shutdowntimeout <time-out>] | Graceful하게 종료할 때 사용할 타임아웃을 설정한다. 처리 중인 요청을 입력한 시간만큼 완료되길 기다린다. (단위: ms) |
[-f, --force] | Graceful 타임아웃을 적용하지 않고 강제로 종료할지 여부를 설정한다. |
[-g, --graceful] | Graceful하게 종료할지 여부를 설정한다. 처리 중인 요청이 끝나길 무한히 기다린다. |
예제
[DAS]domain1.adminServer>stop-cluster cluster1
The cluster [cluster1] was successfully stopped.
현재 도메인에 속한 MS들을 종료한다. DAS의 종료는 local-shutdown 명령을 통해서 가능하다.
alias
stopdomain, shutdownall, downall
사용법
stop-domain [-to,--shutdowntimeout <timeout> | -f, --force | -g,--graceful]
파라미터
파라미터 | 설명 |
---|---|
[-to,--shutdowntimeout <time-out>] | Graceful하게 종료할 때 사용할 타임아웃을 설정한다. 처리 중인 요청을 입력한 시간만큼 완료되길 기다린다. (단위: second) |
[-f, --force] | Graceful 타임아웃을 적용하지 않고 강제로 종료할지 여부를 설정한다. |
[-g, --graceful] | Graceful하게 종료할지 여부를 설정한다. 처리 중인 요청이 끝나길 무한히 기다린다. |
예제
[DAS]domain1.adminServer>stop-domain
All managed servers in the domain were successfully stopped.
Unable to shut down Domain Administration Server. To shutdown Domain Administrat
ion Server, use the local-shutdown command instead.
입력한 단일 혹은 다수의 MS를 종료시킨다. timeout을 주거나 graceful 옵션을 주어 안전하게 종료시킬있다.
alias
stopserver, down, shutdown, jeusexit
사용법
stop-server <server-list> [-to,--shutdowntimeout <timeout> | -f, --force | -g,--graceful]
파라미터
파라미터 | 설명 |
---|---|
<server-list> | 서버의 이름이다. 서버가 한 개 이상인 경우는 콤마(,)로 구분한다. |
[-to,--shutdowntimeout <timeout>] | Graceful하게 종료할 때 사용할 타임아웃을 설정한다. 처리 중인 요청을 입력한 시간만큼 완료되길 기다린다. (단위: second) |
[-f, --force] | Graceful shutdown을 시도하지 않고 바로 서버를 종료한다. (기본값) |
[-g, --graceful] | Graceful하게 종료할지 여부를 설정한다. 처리 중인 요청이 끝나길 무한히 기다린다. |
예제
[DAS]domain1.adminServer>stop-server server1
The server [server1] was successfully stopped.
서비스 중인 특정 서버를 일시 정지시킨다.
alias
suspend
사용법
suspend-server [-clusters <cluster-list> | -servers <server-list>]
파라미터
파라미터 | 설명 |
---|---|
[-clusters <cluster-list>] | 클러스터의 이름이다. 서버가 한 개 이상인 경우는 콤마(,)로 구분한다. |
[-servers <server-list>] | 서버의 이름이다. 서버가 한 개 이상인 경우는 콤마(,)로 구분한다. |
예제
[DAS]domain1.adminServer>suspend-server -servers server1
Successfully suspended server(s).
특정 서버의 시스템 정보를 확인한다.
alias
systeminfo, sysinfo, sys-info, system-information, system-ststus, systemstatus, systemst
사용법
system-info [-process,--process | -jvm,--jvm | -CPU,--cpu | -patch,--patch | -memory,--memory] <server-name>
파라미터
파라미터 | 설명 |
---|---|
[-process,--process] | 프로세스 정보를 출력한다. |
[-jvm,--jvm] | JVM 정보를 출력한다. |
[-CPU,--cpu] | CPU 정보를 출력한다. |
[-patch,--patch] | 서버에 적용된 패치 정보를 출력한다. |
[-memory,--memory] | 메모리 정보를 출력한다. |
<server-name> | 시스템 정보를 출력하고자 하는 서버의 이름이다. |
예제
[DAS]domain1.adminServer>system-info -process adminServer
System Information of Server [adminServer]
Process Information [adminServer]
============================================================
+------------------+---------------------------------------+
| Key | Value |
+------------------+---------------------------------------+
| Process Id | 8412 |
| Thread Count | 96 |
| Process Priority | 8 |
| Nice | -1 |
| Memory Resident | 354,836,480 bytes |
| Memory Share | -1 |
| Page Faults | 484667 |
| CPU Percent | 0.0 % |
| User Name | User |
+------------------+---------------------------------------+
============================================================
특정 서버의 log 정보를 확인한다.
alias
serverlog
사용법
server-log -server <server-name> [-basetime, <base-time>] [-endtime, <end-time>] [-line, <number-of-line>]
파라미터
파라미터 | 설명 |
---|---|
-server <server-name> | log를 가져올 서버를 지정한다. |
[-basetime, <base-time>] | log의 시작 위치에 해당하는 지점을 시간으로 지정한다. (형식: "yyyy.MM.dd HH:mm:ss" 또는 "HH:mm:ss") |
[-endtime, <end-time>] | log의 끝 위치에 해당하는 지점을 시간으로 지정한다. (형식: "yyyy.MM.dd HH:mm:ss" 또는 "HH:mm:ss") |
[-line, <number-of-line>] | log의 시작 위치에 해당하는 지점을 line으로 지정한다. |
예제
[DAS]domain1.adminServer>server-log -server adminServer -line 10
[2016.08.26 20:00:39][2] [adminServer-33] [NodeManager-0062] Exceed to count to
connecting to the node manager. Verify that the node manager is functioning normally.
[2016.08.26 20:00:59][2] [adminServer-33] [Console-0010] Attempting to execute
a command: server-log from heejin@192.168.15.59.
[2016.08.26 20:00:59][2] [adminServer-33] [Console-0012] An exception occurred
while processing a command: server-log from heejin@192.168.15.59.
[2016.08.26 20:01:45][2] [adminServer-76] [Console-0010] Attempting to execute
a command: server-log from heejin@192.168.15.59.
[2016.08.26 20:01:45][2] [adminServer-76] [Console-0012] An exception occurred
while processing a command: server-log from heejin@192.168.15.59.
[2016.08.26 20:02:26][2] [adminServer-36] [Console-0010] Attempting to execute
a command: server-log from heejin@192.168.15.59.
[2016.08.26 20:02:26][2] [adminServer-36] [Console-0014] The command: server-log
from heejin@192.168.15.59 is executed successfully.
[2016.08.26 20:02:40][2] [adminServer-73] [Console-0010] Attempting to execute
a command: server-log from heejin@192.168.15.59.
[2016.08.26 20:02:40][2] [adminServer-73] [Console-0014] The command: server-log
from heejin@192.168.15.59 is executed successfully.
[2016.08.26 20:08:16][2] [adminServer-76] [Console-0010] Attempting to execute
a command: server-log from heejin@192.168.15.59.
Successfully got the log messages from the server(adminServer).
[DAS]domain1.adminServer>
Domain Configuration 관련 명령어의 목록은 다음과 같다.
명령어 | 설명 |
---|---|
add-cluster | 동적으로 클러스터를 추가한다. |
add-custom-resource | 동적으로 custom resource를 추가한다. |
add-custom-resource-to-clusters | 클러스터에 동적으로 custom resource를 추가한다. |
add-data-sources-to-cluster | 클러스터에 동적으로 데이터소스들을 등록한다. |
add-external-resource | 동적으로 external resource를 추가한다. |
add-external-resource-to-clusters | 클러스터에 동적으로 external resource를 추가한다. |
add-server | 동적으로 서버를 추가한다. |
add-servers-to-cluster | 동적으로 특정 서버를 특정 클러스터에 추가한다. |
add-server-template | 동적으로 여러 서버에 공통적으로 적용할 수 있는 설정 template을 추가한다. |
add-dynamic-servers | 미리 만들어진 설정 template을 이용하여 자동 생성한 서버들로 이루어진 클러스터를 추가한다. |
apply-configuration-plan | 기존 domain.xml에 configuration plan을 적용한 새로운 domain.xml을 생성하는 Off-line 명령이다. |
create-domain | 새로운 도메인을 생성하는 Off-line 명령이다. 기본으로 생성되는 사용자에 대한 암호는 별도로 입력해야 한다. |
delete-domain | 생성된 도메인을 제거하는 Off-line 명령이다. |
list-clusters | 현재 도메인에 존재하는 클러스터의 정보를 확인한다. |
list-custom-resources | 현재 도메인에 설정된 custom resource를 확인한다. |
list-external-resources | 현재 도메인에 설정된 external resource를 확인한다. |
list-domains | 현재 구성된 도메인의 목록을 조회하는 Off-line 명령이다. |
list-servers | 현재 도메인에 존재하는 서버의 정보를 확인한다. |
modify-cluster | 동적으로 특정 클러스터의 설정을 변경한다. |
modify-server | 동적으로 특정 서버의 설정을 변경한다. |
modify-dynamic-servers | Dynamic Servers 설정으로 만들어진 클러스터의 설정 정보를 변경한다. |
remove-cluster | 동적으로 클러스터를 삭제한다. |
remove-custom-resource | 동적으로 custom resource를 삭제한다. |
remove-custom-resource-from-clusters | 클러스터에 등록된 custom resource를 동적으로 삭제한다. |
remove-data-sources-from-cluster | 클러스터에 등록된 데이터소스들을 동적으로 제거한다. |
remove-external-resource | 동적으로 external resource를 삭제한다. |
remove-external-resource-from-clusters | 클러스터에 등록된 external resource를 동적으로 삭제한다. |
remove-server | 동적으로 특정 서버를 삭제한다. |
remove-servers-from-cluster | 동적으로 특정 클러스터에서 특정 서버를 삭제한다. |
set-domain-backup | DAS가 기동할 때 도메인을 자동으로 백업 파일을 만들기 위한 On-line 명령이다. |
pack-domain | 특정 도메인 폴더를 압축하는 Off-line 명령이다. |
unpack-domain | pack-domain에 의해 압축된 파일을 해제하는 Off-line 명령이다. |
동적으로 클러스터를 추가한다.
사용법
add-cluster [<cluster-name>] [-servers <server-list>] [-f,--forceLock] [-detail]
파라미터
파라미터 | 설명 |
---|---|
[<cluster-name>] | 추가할 클러스터의 이름이다. |
[-servers <server-list>] | 이 클러스터에 포함할 서버의 이름이다. 서버가 한 개 이상인 경우는 콤마(,)로 구분한다. |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-detail] | 동적 변경 결과에 대한 상세한 정보가 출력된다. |
예제
현재 존재하는 클러스터 확인
[DAS]domain1.adminServer>list-clusters
List of Clusters
===================================================================
+----------+------------------------+-------+-----------+---------+
| Cluster | Server List | MEJB | Class FTP | Running |
+----------+------------------------+-------+-----------+---------+
| cluster1 | server1, server2 | false | false | true |
+----------+------------------------+-------+-----------+---------+
===================================================================
현재 존재하지 않는 클러스터 이름으로 클러스터를 생성하고 다른 클러스터에 포함되지 않는 서버들로 클러스터 구성한 경우
[DAS]domain1.adminServer>add-cluster cluster2 -servers server3,server4
Successfully performed the ADD operation for cluster (cluster2).
Check the results using "list-clusters or add-cluster"
동적으로 custom resource를 추가한다.
alias
addcustomresource, addcr
사용법
add-custom-resource [<export-name>] [-resource,--resourceClass <resource-class>] [-factory,--factoryClass <factory-class>] [-p,--properties <properties>] [-servers <server-list>] [-clusters <cluster-list>] [-f,--forceLock] [-detail]
파라미터
파라미터 | 설명 |
---|---|
[<export-name>] | 추가할 custom resource의 JNDI 바인드 이름이다. |
[-resource,--resourceClass <resource-class >] | custom resource의 클래스 이름을 지정한다. |
[-factory,--factoryClass <factory-class >] | custom resource를 생성하는 factoryClass 이름을 지정한다. |
[-p,--properties <properties>] | custom resource의 property를 지정한다. |
[-servers <server-list>] | custom resource를 도메인에 추가함과 동시에 주어진 server list에 등록한다. |
[-clusters <cluster-list>] | custom resource를 도메인에 추가함과 동시에 주어진 cluster list에 등록한다. |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-detail] | 동적 변경 결과에 대한 상세한 정보가 출력된다. |
예제
[DAS]domain1.adminServer>add-custom-resource custom/dog -resource dog.Dog -factory dog.DogFactory
Successfully performed the ADD operation for A custom resource.
Check the results using "list-custom-resources or add-custom-resource"
동적으로 클러스터에 custom resource를 추가한다.
alias
add-cr-to-clusters
사용법
add-custom-resource-to-clusters <export-name> -clusters <cluster-list> [-f,--forceLock] [-detail]
파라미터
파라미터 | 설명 |
---|---|
<export-name> | 클러스터에 추가할 custom resource의 JNDI 바인드 이름이다. |
-clusters <cluster-list> | custom resource를 주어진 cluster list에 등록한다. |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-detail] | 동적 변경 결과에 대한 상세한 정보가 출력된다. |
예제
[DAS]domain1.adminServer>add-custom-resource-to-clusters custom/dog -clusters cluster1
Successfully performed the ADD operation for A custom resource.
Check the results using "list-custom-resources"
동적으로 클러스터에 데이터소스들을 등록한다.
alias
adddstocluster
사용법
add-data-sources-to-cluster -cluster <cluster-name> [-ids <data-source-id-list> | -all] [-f,--forceLock] [-detail]
파라미터
파라미터 | 설명 |
---|---|
-cluster<cluster-name> | 데이터소스를 등록할 클러스터의 이름이다. |
[-ids <data-source-id-list>] | 클러스터에 등록할 데이터소스들의 ID 목록이다. 한 개 이상인 경우 콤마(,)로 구분한다. |
[-all] | 도메인에 정의된 모든 데이터소스를 클러스터에 등록한다. |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-detail] | 동적 변경 결과에 대한 상세한 정보가 출력된다. |
예제
[DAS]domain1.adminServer>add-data-sources-to-cluster -cluster cluster1 -ids datasource1
Successfully performed the ADD operation for data sources to the cluster [cluster1].
Check the results using "add-data-sources-to-cluster -cluster cluster1"
동적으로 external resource를 추가한다.
alias
addexternalresource, adder
사용법
add-external-resource [<export-name>] [-class,--resourceClass <resource-class>] [-p,--properties <properties>] [-servers <server-list>] [-clusters <cluster-list>] [-f,--forceLock] [-detail]
파라미터
파라미터 | 설명 |
---|---|
[<export-name>] | 추가할 external resource의 이름이다. |
[-class,--resourceClass <resource-class >] | external resource의 클래스 이름을 지정한다. |
[-p,--properties <properties>] | external resource의 property를 지정한다. |
[-servers <server-list>] | external resource를 도메인에 추가함과 동시에 주어진 server list에 등록한다. |
[-clusters <cluster-list>] | external resource를 도메인에 추가함과 동시에 주어진 cluster list에 등록한다. |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-detail] | 동적 변경 결과에 대한 상세한 정보가 출력된다. |
예제
[DAS]domain1.adminServer>add-external-resource test/ext -resource test.ext.TestResourceBootstrapper
Successfully performed the ADD operation for A external resource.
Check the results using "list-external-resources or add-external-resource"
동적으로 클러스터에 external resource를 추가한다.
alias
add-er-to-clusters
사용법
add-external-resource-to-clusters <export-name> -clusters <cluster-list> [-f,--forceLock] [-detail]
파라미터
파라미터 | 설명 |
---|---|
<export-name> | 클러스터에 추가할 external resource의 이름이다. |
-clusters <cluster-list> | external resource를 주어진 cluster list에 등록한다. |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-detail] | 동적 변경 결과에 대한 상세한 정보가 출력된다. |
예제
[DAS]domain1.adminServer>add-external-resource-to-cluster test/ext -clusters cluster1
Successfully performed the ADD operation for A external resource.
Check the results using "list-external-resources"
동적으로 서버를 추가한다.
alias
addserver
사용법
add-server [<server-name>] [-target,--duptargetserver <target-server>] [-port,--baseport <base-port>] [-addr,--baseaddr <base-addr>] [-node,--nodeName <node-name>] [-jvm,--jvmOptions <jvm-options>] [-logdir,--logHomeDirectory <server-log-home-directory>] [-a,--actionOnResourceLeak <action-on-resource-leak>] [-l,--logStdoutToRawFormat <print-stdout-to-raw-format>] [-m,--mejb <enable-MEJB>] [-c,--classFtp <enable-class-ftp-service>] [-f,--forceLock] [-detail]
파라미터
파라미터 | 설명 |
---|---|
[<server-name>] | 서버의 이름이다. |
[-target,--duptargetserver <target-server>] | 서버 설정을 복사할 타켓 서버의 이름이다. |
[-port,--baseport <base-port>] | 서버의 기본 동작 포트 번호이다. 기본값으로 9736이 지정되나 같은 머신에 여러 개의 서버를 생성할 경우 구분이 필요한 설정이다. |
[-addr,--baseaddr <base-addr>] | 서버의 기본 동작 주소이다. |
[-node,--nodeName <node-name>] | 서버가 실제로 동작하게 될 머신을 의미하는 노드의 이름이다. list-nodes를 통해 노드들의 정보를 확인할 수 있다. |
[-jvm,--jvmOptions <jvm-options>] | 서버에 적용하고 하는 JVM 옵션이다. 공백이 존재하는 경우 큰따옴표(" ")로 묶어서 입력한다. |
[-logdir,--logHomeDirectory <server-log-home-directory>] | 서버에서 생성되는 로그들이 공통적으로 들어갈 로그 디렉터리를 의미한다. |
[-a,--actionOnResourceLeak <action-on-resource-leak>] | 리소스에 leak이 발생할 경우 취할 액션을 설정한다. 다음 중 하나를 입력한다.
|
[-l,--logStdoutToRawFormat <print-stdout-to-raw-format>] | [동적 변경] stdout을 그대로 출력할 것인지 JEUS 로거 포맷으로 출력할 것인지 설정한다. (true | false) |
[-m,--mejb <enable-MEJB>] | [동적 변경] MEJB를 사용할지 여부를 설정한다. (true | false) |
[-c,--classFtp <enable-class-ftp-service>] | [동적 변경] class FTP 서비스를 사용할지 여부를 설정한다. (true | false) |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-detail] | 동적 변경 결과에 대한 상세한 정보가 출력된다. |
예제
현재 존재하는 서버 리스트 확인
[DAS]domain1.adminServer>list-servers
List of Editable Servers and Server Templates
================================================================================
+------+------+-------+-----+-------+-------+-------+-----+------+-------+-----+
|Server| Base | Base | Node| JVM | Action| Stdout| MEJB| Class| Server| Type|
| |Listen|Listen | |Configs| On |to Raw | | FTP | Log | |
| |Addres| Port | | |Resourc|Format | | | Home | |
| | s | | | |e Leak | | | |Directo| |
| | | | | | | | | | ry | |
+------+------+-------+-----+-------+-------+-------+-----+------+-------+-----+
| admin| 0.0.0| 9736 |node1| -Xmx25|Warning| true |false| true | none | serv|
|Server|.0 | | |6m | | | | | |er |
| | | | |-XX:Max| | | | | | |
| | | | |PermSiz| | | | | | |
| | | | |e=128m | | | | | | |
+------+------+-------+-----+-------+-------+-------+-----+------+-------+-----+
| serve| | 9836 |node1| -Xmx51|Warning| true |false| false| none | serv|
|r1 | | | |2m | | | | | |er |
| | | | |-XX:Max| | | | | | |
| | | | |PermSiz| | | | | | |
| | | | |e=128m | | | | | | |
+------+------+-------+-----+-------+-------+-------+-----+------+-------+-----+
================================================================================
현재 존재하지 않는 이름으로 서버 추가
[DAS]domain1.adminServer>add-server server2 -port 10000 -node node1 -m false
Successfully performed the ADD operation for server (server2).
Check the results using "list-servers or add-server"
동적으로 특정 서버를 특정 클러스터에 추가한다.
사용법
add-servers-to-cluster <cluster-name> [-servers <server-list>] [-f,--forceLock] [-detail]
파라미터
파라미터 | 설명 |
---|---|
<cluster-name> | 클러스터의 이름이다. |
[-servers <server-list>] | 이 클러스터에 포함하고 시키려는 서버의 이름이다. 서버가 한 개 이상인 경우는 콤마(,)로 구분한다. |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-detail] | 동적 변경 결과에 대한 상세한 정보가 출력된다. |
예제
[DAS]domain1.adminServer>add-servers-to-cluster cluster1 -servers server1
Successfully performed the ADD operation for The server list for cluster(cluster1)..
Check the results using "list-clusters cluster1 or add-servers-to-cluster cluster1"
동적으로 여러 서버에 공통적으로 적용할 수 있는 설정 템플릿을 추가한다.
사용법
add-server-template [<server-template-name>] [-jvm,--jvmOptions <jvm-options>] [-logdir,--logHomeDirectory <server-log-home-directory>] [-a,--actionOnResourceLeak <action-on-resource-leak>] [-l,--logStdoutToRawFormat <print-stdout-to-raw-format>] [-m,--mejb <enable-MEJB>] [-c,--classFtp <enable-class-ftp-service>] [-f,--forceLock] [-detail]
파라미터
파라미터 | 설명 |
---|---|
<server-template-name> | 추가할 서버 템플릿의 이름이다. |
[-jvm,--jvmOptions <jvm-options>] | 템플릿에 추가할 JVM 옵션이다. 공백이 존재하는 경우 큰따옴표(" ")로 묶어서 입력한다. |
[-logdir,--logHomeDirectory <server-log-home-directory>] | 템플릿으로 설정된 서버에서 생성되는 로그들이 공통적으로 들어갈 로그 디렉터리를 의미한다. |
[-a,--actionOnResourceLeak <action-on-resource-leak>] | 리소스에 leak이 발생할 경우 취할 액션을 설정한다. 다음 중에 하나를 설정한다.
|
[-l,--logStdoutToRawFormat <print-stdout-to-raw-format>] | [동적 변경] stdout을 그대로 출력할 것인지 JEUS 로거 포맷으로 출력할 것인지 설정한다. (true | false) |
[-m,--mejb <enable-MEJB>] | [동적 변경] MEJB를 사용할지 여부를 설정한다. (true | false) |
[-c,--classFtp <enable-class-ftp-service>] | [동적 변경] class FTP 서비스를 사용할지 여부를 설정한다. (true | false) |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-detail] | 동적 변경 결과에 대한 상세한 정보가 출력된다. |
예제
[DAS]domain1.adminServer>add-server-template temp1-a Warning
Successfully performed the ADD operation for server template (temp1), but all changes were non-dynamic. They will be applied after restarting.
Check the results using "list-servers or show-server-template or add-server-template".
미리 설정된 템플릿을 이용하여 자동 생성한 서버들로 이루어진 클러스터를 생성한다. 미리 템플릿을 통하여 설정 정보를 저장한 다음에 사용하여야 한다.
alias
adddservers
사용법
add-dynamic-servers <cluster-name> -count <the-number-of-dynamic-servers> [-nodes,--nodeNames <node-names>] [-base <base-port>] [-http <http-port>] [-jms <jms-port>] [-prefix,--serverNamePrefix <server-name-prefix>] -template,--serverTemplateName <server-template-name> [-step,--listenPortStep <listen-port-step>] [-f,--forceLock] [-detail]
파라미터
파라미터 | 설명 |
---|---|
<cluster-name> | 동적 설정 서버들을 이용하여 생성할 클러스터 이름을 지정한다. |
-count <the-number-of-dynamic-servers> | 클러스터에 생성할 서버의 수를 정한다. |
[-nodes,--nodeNames <node-names>] | 추가될 서버가 위치하게 될 노드들을 설정한다. 콤마(,)를 구분자로 하여 여러 개를 설정할 수 있다. |
[-base <base-port>] | 서버의 기본 동작 포트를 설정한다. |
[-http <http-port>] | 서버의 HTTP 포트를 설정한다. |
[-jms <jms-port>] | 서버의 JMS 포트를 설정한다. |
[-prefix,--serverNamePrefix <server-name-prefix>] | 생성될 서버의 이름 앞에 붙을 prefix를 설정한다. Prefix가 설정되지 않은 경우에는 클러스터 이름 뒤에 '_server_'를 붙인다. |
-template,--serverTemplateName <server-template-name> | Dynamic 서버들에게 공통적으로 적용될 설정 템플릿을 지정한다. |
[-step,--listenPortStep <listen-port-step>] | 같은 노드에 생성된 서버들의 포트 번호를 몇 씩 증가시킬지 지정한다. |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-detail] | 동적 변경 결과에 대한 상세한 정보가 출력된다. |
예제
[DAS]domain1.adminServer>add-dynamic-servers cluster1 -count 2 -nodes node1 -template temp1
Successfully performed the ADD operation for Dynamic servers configuration in the cluster (cluster1).
Check the results using "list-clusters or show-dynamic-servers".
기존 domain.xml에 configuration plan을 적용한 새로운 domain.xml을 생성하는 명령이다.
alias
applycp
사용법
apply-configuration-plan -plan,--configPlanPath <configuration-plan-path> -src,--configSourcePath <configuration-source-path> -target,--configTargetPath <configuration-target-path>
파라미터
파라미터 | 설명 |
---|---|
-plan,--configPlanPath <configuration-plan-path> | 적용할 configuration plan의 경로를 지정한다. |
-src,--configSourcePath <configuration-source-path> | configuration plan을 적용할 기존 domain.xml의 경로를 지정한다. |
-target,--configTargetPath <configuration-target-path> | configuration plan이 적용된 결과 파일의 경로를 지정한다. |
예제
offline>apply-configuration-plan -src /home/jeus/domains/domain1/config/domain.xml
-plan /home/plans/jeus-configuration-plan.xml -target /home/jeus/domains/domain1/config/domain.xml.new
Successfully applied configuration plan.
참고
본 명령어는 서버에 접속하지 않은 상태에서도 사용할 수 있다.
새로운 도메인을 생성하는 명령이다. 기본으로 생성되는 사용자에 대한 암호는 별도로 입력해야 한다.
사용자 암호는 AES로 암호화되어 저장된다. option에 대한 default 값은 JEUS_HOME\setup\domain-config-template.properties의 값을 따른다.
alias
createdomain
사용법
create-domain -domain <domain-name> [-das <das-name>] [-baseport <das-base-port>] [-baseaddress <das-base-address>] [-jmsport <jms-port>] [-user <user-name>] [-httpport <http-port>] [-jvmconfig <jvm-config>] [-node <node-name>] [-pw,--password] [-uvm,--usevirtualmulticast] [-productionmode,--productionmode] [-ha,--heartbeataddress <heart-beat-address>] [-hp,--heartbeatport <heart-beat-port>]
파라미터
파라미터 | 설명 |
---|---|
-domain <domain-name> | 도메인의 이름이다. |
[-das <das-name>] | 도메인을 관리하는 DAS의 이름이다. |
[-baseport <das-base-port>] | DAS의 기본 동작 포트 번호이다. |
[-baseaddress <das-base-address>] | DAS의 기본 동작 주소이다. |
[-jmsport <jms-port>] | DAS의 JMS 포트 번호이다. |
[-user <user-name>] | 도메인의 사용자 이름이다. |
[-httpport <http-port>] | DAS의 HTTP 포트 번호이다. |
[-jvmconfig <jvm-config>] | DAS에 적용할 JVM 설정이다. |
[-node <node-name>] | DAS에 적용할 노드 이름이다. |
[-pw,--password] | 템플릿 프로퍼티 파일과 상관없이 무조건 password를 콘솔에서 입력받게 된다. |
[-uvm,--usevirtualmulticast] | SCF에서 TCP를 이용한 virtual multicast를 사용할지 여부이다. |
[-productionmode,--productionmode] | 생성하는 JEUS의 도메인을 production mode에서 사용할지 여부이다. |
[-ha,--heartbeataddress <heart-beat-address>] | SCF에서 heartbeat에 사용할 주소이다. --usevirtualmulticast 설정이 되어 있지 않아야 한다. |
[-hp,--heartbeatport <heart-beat-port>] | SCF에서 heartbeat에 사용할 포트 번호이다. --usevirtualmulticast 설정이 되어 있지 않아야 한다. |
예제
offline>create-domain -domain domain1 -das adminServer -baseport 9763 -ha
230.30.1.1 -hp 3030 -jvmconfig "-Xmx1024m -XX:MaxPermSize=256m"
Enter the password for [administrator]: **********
Confirm the password: **********
Do you want to encrypt the password? (y/n): y
================================================================================
The domain [domain1] was created successfully.
+-------------------------+--------------------------------------------------------+
| Property | Value |
+-------------------------+--------------------------------------------------------+
| Domain name | domain1 |
| Das Name | adminServer |
| Das Base Listen Port | 9736 |
| Das Base Listen Address | 0.0.0.0 |
| JMS Internal Port | 9741 |
| HTTP Port | 8088 |
| User Name | administrator |
| Node Name | node1 |
| Password | {AES:256}lBljYlIlBrujFDC7v3NSoHZQprgnncVmdBbkt4oxDRg= |
| JVM Option | -Xmx1024m -XX:MaxPermSize=256m |
| Production Mode | true |
| Heart beat address | 230.30.1.1 |
| Heart beat port | 3030 |
+-------------------------+--------------------------------------------------------+
====================================================================================
참고
본 명령어는 서버에 접속하지 않은 상태에서도 사용할 수 있다.
생성된 도메인을 제거하는 명령이다.
alias
deletedomain
사용법
delete-domain -domain <domain-name>
파라미터
파라미터 | 설명 |
---|---|
-domain <domain-name> | 도메인의 이름이다. |
예제
offline>delete-domain -domain newDomain
Deleting the domain directory was successfully.
참고
본 명령어는 서버에 접속하지 않은 상태에서도 사용할 수 있다.
현재 도메인에 존재하는 클러스터의 정보를 확인한다.
사용법
list-clusters [<cluster-name>]
파라미터
파라미터 | 설명 |
---|---|
[<cluster-name>] | 클러스터의 이름이다. |
예제
[DAS]domain1.adminServer>list-clusters
List of Clusters
================================================================================
+---------+------------------------------------------+-----+----------+--------+
| Cluster | Server List | MEJB| Class FTP| Running|
+---------+------------------------------------------+-----+----------+--------+
| cluster1| newServer, server1 | | | true |
+---------+------------------------------------------+-----+----------+--------+
================================================================================
현재 도메인에 설정된 custom resource를 확인한다.
alias
listcustomresources, list-cr, listcr
사용법
list-custom-resources [-name <export-name>] | [-cluster <cluster-name>] | [-server <server-name>]
파라미터
파라미터 | 설명 |
---|---|
[-name <export-name>] | custom resource의 이름이다. |
[-cluster <cluster-name>] | 클러스터에 등록된 custom resource를 확인하기 위한 클러스터 이름이다. |
[-server <server-name>] | 서버에 등록된 custom resource를 확인하기 위한 서버 이름이다. |
예제
[DAS]domain1.adminServer>list-custom-resources
List of Custom Resources
================================================================================
+-------------+--------------------+--------------------------+----------------+
| Export Name | Resource Class | Factory Class | Properties |
+-------------+--------------------+--------------------------+----------------+
| custom/dog | dog.Dog | dog.DogFactory | [test=1, |
| | | |test1=2] |
+-------------+--------------------+--------------------------+----------------+
================================================================================
현재 도메인에 설정된 external resource를 확인한다.
alias
listexternalresources, list-er, lister
사용법
list-external-resources [-name <export-name>] | [-cluster <cluster-name>] | [-server <server-name>]
파라미터
파라미터 | 설명 |
---|---|
[-name <export-name>] | external resource의 이름이다. |
[-cluster <cluster-name>] | 클러스터에 등록된 external resource를 확인하기 위한 클러스터 이름이다. |
[-server <server-name>] | 서버에 등록된 external resource를 확인하기 위한 서버 이름이다. |
예제
[DAS]domain1.adminServer>list-external-resources
List of External Resources
================================================================================
+-------------+---------------------------------------------------+------------+
| Export Name | Resource Class | Properties |
+-------------+---------------------------------------------------+------------+
| test/ext | test.ext.TestResourceBootstrapper | [] |
+-------------+---------------------------------------------------+------------+
================================================================================
현재 구성된 도메인의 목록을 조회하는 명령이다.
alias
listdomains
사용법
list-domains
예제
offline>list-domains
List Domains
================================================================================
+------------------------------------------------------------------------------+
| Domains |
+------------------------------------------------------------------------------+
| domain1 |
+------------------------------------------------------------------------------+
================================================================================
참고
본 명령어는 서버에 접속하지 않은 상태에서도 사용할 수 있다.
현재 도메인에 존재하는 서버의 설정 정보를 확인한다. 상태 정보 확인을 위해서는 server-info 명령을 사용한다.
사용법
list-servers [<server-name>]
파라미터
파라미터 | 설명 |
---|---|
[<server-name>] | 서버의 이름이다. |
예제
[DAS]domain1.adminServer>list-servers
List of Editable Servers and Server Templates
================================================================================================
+------+---------+--------+-----+-----------+-----------+----------+-----+-----+---------------+----------+
|Server| Base | Base | Node|JVM Configs| Action On | Stdout to| MEJB|Class| Server | Type |
| | Listen | Listen | | | Resource |Row Format| | FTP | Log Home | |
| | Address | Port | | | Leak | | | | Directory | |
+------+---------+--------+-----+-----------+-----------+----------+-----+-----+---------------+----------+
| admin| 0.0.0.0 | 9736 | | -Xmx256m | Warning | true |false| true| none | server |
|Server| | | |-XX:MaxPerm| | | | | | |
| | | | |Size=128m | | | | | | |
| | | | | -Xdebug | | | | | | |
| | | | |-Xrunjdwp:t| | | | | | |
| | | | |ransport=dt| | | | | | |
| | | | |_socket,ser| | | | | | |
| | | | |ver=y,suspe| | | | | | |
| | | | |nd=n,addres| | | | | | |
| | | | |s=5005 | | | | | | |
+------+---------+--------+-----+-----------+-----------+----------+-----+-----+---------------+----------+
| serve| 192.167.| 9836 |node1| | Warning | false |false|false| none | server |
|r1 |0.124 | | | | | | | | | |
+------+---------+--------+-----+-----------+-----------+----------+-----+-----+---------------+----------+
| serve| 192.167.| 9936 | | | Warning | false |false|false| none | server |
|r2 |0.124 | | | | | | | | | |
+------+---------+--------+-----+-----------+-----------+----------+-----+-----+---------------+----------+
| temp1| none | none | none| | Warning | true |false|false| none | template |
| | | | | | | | | | | |
+------+---------+--------+-----+-----------+-----------+----------+-----+-----+---------------+----------+
================================================================================================
동적으로 특정 클러스터의 설정을 변경한다.
alias
modifycluster, clusterconf, clusterconfig
사용법
modify-cluster <cluster-name> [-m,--mejb <enable-MEJB>] [-c,--classFtp <enable-class-ftp-service>] [-f,--forceLock] [-detail]
파라미터
파라미터 | 설명 |
---|---|
<cluster-name> | 클러스터의 이름이다. |
[-m,--mejb <enable-MEJB>] | [동적 변경] MEJB를 사용할지 여부를 설정한다. (true | false) |
[-c,--classFtp <enable-class-ftp-service>] | [동적 변경] class FTP 서비스를 사용할지 여부를 설정한다. (true | false) |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-detail] | 동적 변경 결과에 대한 상세한 정보가 출력된다. |
예제
[DAS]domain1.adminServer>modify-cluster cluster1 -m true
Successfully performed the MODIFY operation for cluster (cluster1).
Check the results using "list-clusters cluster1 or modify-cluster cluster1"
동적으로 특정 서버의 설정을 변경한다.
alias
serverconf, serverconfig, modify-server-template
사용법
modify-server <server-name> [-removelogdir,--removeLogHomeDirectory] [-node,--nodeName <node-name>] [-jvm,--jvmOptions <jvm-options>] [-logdir,--logHomeDirectory <server-log-home-directory>] [-a,--actionOnResourceLeak <action-on-resource-leak>] [-l,--logStdoutToRawFormat <print-stdout-to-raw-format>] [-m,--mejb <enable-MEJB>] [-c,--classFtp <enable-class-ftp-service>] [-f,--forceLock] [-detail]
파라미터
파라미터 | 설명 |
---|---|
<server-name> | 서버의 이름이다. |
[-removelogdir,--removeLogHomeDirectory] | 서버에서 생성되는 로그들이 공통적으로 들어갈 로그 디렉터리를 삭제할지의 여부이다. |
[-node,--nodeName <node-name>] | 서버가 실제로 동작하게 될 머신을 의미하는 노드의 이름이다. list-nodes를 통해 노드들의 정보를 확인할 수 있다. |
[-jvm,--jvmOptions <jvm-options>] | 서버에 적용하고 하는 JVM 옵션이다. 공백이 존재하는 경우 큰따옴표(" ")로 묶어서 입력한다. |
[-logdir,--logHomeDirectory <server-log-home-directory>] | 서버에서 생성되는 로그들이 공통적으로 들어갈 로그 디렉터리를 의미한다. |
[-a,--actionOnResourceLeak <action-on-resource-leak>] | 리소스에 leak이 발생할 경우 취할 액션을 설정한다. 다음 중에 하나를 설정한다.
|
[-l,--logStdoutToRawFormat <print-stdout-to-raw-format>] | [동적 변경]stdout을 그대로 출력할 것인지 JEUS 로거 포맷으로 출력할 것인지 설정한다. (true | false) |
[-m,--mejb <enable-MEJB>] | [동적 변경] MEJB를 사용할지 여부를 설정한다. (true | false) |
[-c,--classFtp <enable-class-ftp-service>] | [동적 변경] class FTP 서비스를 사용할지 여부를 설정한다. (true | false) |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-detail] | 동적 변경 결과에 대한 상세한 정보가 출력된다. |
예제
[DAS]domain1.adminServer>modify-server server1 -a AutoClose -l false
Successfully performed the MODIFY operation for server (server1).
Check the results using "list-servers server1 or modify-server server1"
Dynamic servers 설정으로 생성한 클러스터의 설정을 변경한다.
alias
modifydservers
사용법
modify-dynamic-servers <cluster-name> [-count <the-number-of-dynamic-servers>] [-nodes,--nodeNames <node-names>] [-base <base-port>] [-http <http-port>] [-jms <jms-port>] [-prefix,--serverNamePrefix <server-name-prefix>] [-template,--serverTemplateName <server-template-name>] [-step,--listenPortStep <listen-port-step>] [-f,--forceLock] [-detail]
파라미터
파라미터 | 설명 |
---|---|
<cluster-name> | 동적 설정 서버들의 설정을 변경할 클러스터 이름을 지정한다. |
[-count <the-number-of-dynamic-servers>] | 클러스터에 추가할 서버의 수를 변경한다. |
[-nodes,--nodeNames <node-names>] | 서버가 위치할 노드를 변경한다. 콤마(,)를 구분자로 하여 여러 개를 설정할 수 있다. 모든 노드를 대상으로 하고 싶을 때에는 -nodes 옵션 뒤에 아무 인자도 넘겨주지 않으면 된다. |
[-base <base-port>] | 서버의 기본 동작 포트를 변경한다. |
[-http <http-port>] | 서버의 HTTP 포트를 변경한다. |
[-jms <jms-port>] | 서버의 JMS 포트를 변경한다. |
[-prefix,--serverNamePrefix <server-name-prefix>] | 서버의 이름 앞에 붙을 prefix를 변경한다. Prefix가 설정되지 않은 경우에는 클러스터 이름 뒤에 '_server_'를 불인다. |
[-template,--serverTemplateName <server-template-name>] | Dynamic 서버들에게 공통적으로 적용될 설정 template을 지정한다. |
[-step,--listenPortStep <listen-port-step>] | 같은 노드에 생성된 서버들의 포트 번호를 몇 씩 증가시킬지 변경한다. |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-detail] | 동적 변경 결과에 대한 상세한 정보가 출력된다. |
예제
[DAS]domain1.adminServer>modify-dynamic-servers cluster1 -count 3
Successfully performed the MODIFY operation for Dynamic servers configuration in the cluster (cluster1).
Check the results using "modify-dynamic-servers or show-dynamic-servers".
동적으로 클러스터를 삭제한다.
사용법
remove-cluster [<cluster-name>] [-f,--forceLock] [-detail]
파라미터
파라미터 | 설명 |
---|---|
[<cluster-name>] | 클러스터의 이름이다. |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-detail] | 동적 변경 결과에 대한 상세한 정보가 출력된다. |
예제
현재 존재하는 클러스터 확인
[DAS]domain1.adminServer>list-clusters
List of Clusters
===================================================================
+----------+------------------------+-------+-----------+---------+
| Cluster | Server List | MEJB | Class FTP | Running |
+----------+------------------------+-------+-----------+---------+
| cluster1 | server1, server2 | false | false | true |
+----------+------------------------+-------+-----------+---------+
| cluster2 | server3, server4 | true | true | true |
+----------+------------------------+-------+-----------+---------+
===================================================================
현재 존재하는 클러스터 리스트에서 삭제할 클러스터 이름 확인 후 클러스터 삭제
[DAS]domain1.adminServer>remove-cluster cluster2
Successfully performed the REMOVE operation for cluster (cluster1).
Check the results using "list-clusters or remove-cluster"
동적으로 custom resource를 삭제한다.
alias
removecr, rmcr
사용법
remove-custom-resource [<export-name>] [-f,--forceLock] [-detail]
파라미터
파라미터 | 설명 |
---|---|
[<export-name>] | 제거할 custom resource의 JNDI 바인드 이름이다. |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-detail] | 동적 변경 결과에 대한 상세한 정보가 출력된다. |
예제
[DAS]domain1.adminServer>remove-custom-resource custom/dog
Successfully performed the REMOVE operation for A custom resource.
Check the results using "list-custom-resources or remove-custom-resource"
클러스터에 등록된 custom resource를 동적으로 삭제한다.
alias
remove-cr-from-clusters
사용법
remove-custom-resource-from-clusters <export-name> -clusters <cluster-list> [-f,--forceLock] [-detail]
파라미터
파라미터 | 설명 |
---|---|
<export-name> | 클러스터에서 제거할 custom resource의 JNDI 바인드 이름이다. |
-cluster <cluster-list> | custom resource를 제거할 cluster list를 설정한다. |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-detail] | 동적 변경 결과에 대한 상세한 정보가 출력된다. |
예제
[DAS]domain1.adminServer>remove-custom-resource-from-clusters custom/dog -clusters cluster1
Successfully performed the REMOVE operation for A custom resource.
Check the results using "list-custom-resources"
클러스터에 등록된 데이터소스들을 동적으로 제거한다.
alias
rmdsfromcluster
사용법
remove-data-sources-from-cluster -cluster <cluster-name> [-ids <data-source-id-list> | -all] [-f,--forceLock] [-detail]
파라미터
파라미터 | 설명 |
---|---|
-cluster <cluster-name> | 데이터소스를 제거할 클러스터의 이름이다. |
[-ids <data-source-id-list> ] | 클러스터로부터 제거할 데이터소스들의 ID 목록이다. 한 개 이상인 경우 콤마(,)로 구분한다. |
[ -all] | 클러스터에 등록된 모든 데이터소스를 제거한다. |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-detail] | 동적 변경 결과에 대한 상세한 정보가 출력된다. |
예제
[DAS]domain1.adminServer>remove-data-sources-from-cluster -cluster cluster1 -all
Successfully performed the REMOVE operation for data sources from the cluster [cluster1].
Check the results using "remove-data-sources-from-cluster -cluster cluster1"
동적으로 external resource를 삭제한다.
alias
removecr, rmcr
사용법
remove-external-resource [<export-name>] [-f,--forceLock] [-detail]
파라미터
파라미터 | 설명 |
---|---|
[<export-name>] | 제거할 external resource의 이름이다. |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-detail] | 동적 변경 결과에 대한 상세한 정보가 출력된다. |
예제
[DAS]domain1.adminServer>remove-external-resource test/ext
Successfully performed the REMOVE operation for A external resource.
Check the results using "list-external-resources or remove-external-resource"
클러스터에 등록된 external resource를 동적으로 삭제한다.
alias
remove-er-from-clusters
사용법
remove-external-resource-from-clusters <export-name> -clusters <cluster-list> [-f,--forceLock] [-detail]
파라미터
파라미터 | 설명 |
---|---|
<export-name> | 클러스터에서 제거할 external resource의 이름이다. |
-clusters <cluster-list> | external resource를 제거할 cluster list를 설정한다. |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-detail] | 동적 변경 결과에 대한 상세한 정보가 출력된다. |
예제
[DAS]domain1.adminServer>remove-external-resource-from-clusters test/ext -clusters cluster1
Successfully performed the REMOVE operation for A external resource.
Check the results using "list-external-resources"
동적으로 특정 서버를 삭제한다.
사용법
remove-server [<server-name>] [-f,--forceLock] [-detail]
파라미터
파라미터 | 설명 |
---|---|
[<server-name>] | 서버의 이름이다. |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-detail] | 동적 변경 결과에 대한 상세한 정보가 출력된다. |
예제
현재 존재하는 서버 리스트 확인
[DAS]domain1.adminServer>server-info
Information about Domain (domain1)
================================================================================
+-------+---------+-----+-----+-----+------------+--------+-----------+--------+
| Server| Status |Node | PID | Clu | Latest | Need | Listen |Running |
| | |Name | |ster | Start Time | to | Ports |Engines |
| | | | | | / Shutdown |Restart | | |
| | | | | | Time | | | |
+-------+---------+-----+-----+-----+------------+--------+-----------+--------+
| admin | RUNNING | nod | 130 | N/A | 2016-08-26 | false | base-0.0. | jms, |
|Server |(00:04:2 |e1 |83 | | (금) 오전 | |0.0:9736 |ejb, web|
|(*) |8) | | | |09:20:44 KST| | http-serv | |
| | | | | | | |er-0.0.0.0 | |
| | | | | | | |:8088 | |
| | | | | | | | jms-0.0.0 | |
| | | | | | | |.0:9741 | |
+-------+---------+-----+-----+-----+------------+--------+-----------+--------+
| serve | RUNNING | nod | 132 | N/A | 2016-08-26 | false | base-0.0. | jms, |
|r1 |(00:02:4 |e1 |75 | | (금) 오전 | |0.0:9836 |ejb, web|
| |5) | | | |09:22:28 KST| | | |
+-------+---------+-----+-----+-----+------------+--------+-----------+--------+
| serve | SHUTDOWN| nod | N/A | N/A | N/A | N/A | N/A | N/A |
|r2 | |e1 | | | | | | |
+-------+---------+-----+-----+-----+------------+--------+-----------+--------+
================================================================================
삭제할 서버가 종료되어 있는지 확인 후 삭제
[DAS]domain1.adminServer>remove-server server2
Successfully performed the REMOVE operation for server (server1).
Check the results using "list-servers or remove-server"
동적으로 특정 클러스터에서 특정 서버를 삭제한다.
사용법
remove-servers-from-cluster <cluster-name> [-servers <server-lists>] [-f,--forceLock] [-detail]
파라미터
파라미터 | 설명 |
---|---|
<cluster-name> | 클러스터의 이름이다. |
[-servers <server-lists>] | 이 클러스터에서 제거하려는 서버의 이름이다. 서버가 한 개 이상인 경우는 콤마(,)로 구분한다. |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-detail] | 동적 변경 결과에 대한 상세한 정보가 출력된다. |
예제
[DAS]domain1.adminServer>remove-servers-from-cluster cluster1 -servers server1
Successfully performed the REMOVE operation for The server list for cluster(cluster1)..
Check the results using "list-clusters cluster1 or remove-servers-from-cluster cluster1"
DAS가 기동할 때 도메인을 자동으로 백업 파일을 만들기 위한 동적 On-line 명령이다.
alias
domain-backup
사용법
set-domain-backup [-backupOnBoot <backup-on-boot>] [-backupDir <backup-directory>] [-nodeName <nodeName>] [-f,--forceLock] [-detail]
파라미터
파라미터 | 설명 |
---|---|
[-backupOnBoot <backup-on-boot>] | DAS를 기동할 때 백업 파일을 생성할지에 대한 설정이다. (true/false) |
[-backupDir <backup-directory>] | DAS 백업 파일을 만들 디렉터리이다. 디렉터리가 도메인 내의 위치로 설정될 경우, 백업의 대상에서 제외된다. NodeName이 설정된 경우에는 해당 노드의 디렉터리를 의미한다. |
[-nodeName <nodeName>] | 백업 파일이 위치할 노드를 설정한다. 이 값이 설정된 경우에는 backupDir이 해당 노드 내의 디렉터리를 의미하게 된다. 만약 설정된 노드로의 전송에 실패한 경우에는 로컬 노드의 domains home 디렉터리에 위치하게 된다. |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-detail] | 동적 변경 결과에 대한 상세한 정보가 출력된다. |
예제
offline>set-domain-backup -backupOnBoot true
Successfully performed the MODIFY operation for Domain Backup Policy.
Check the results using "set-domain-backup"
특정 도메인 폴더를 압축하는 명령이다.
alias
packdomain
사용법
pack-domain <domain-name> [-f <file-path>]
파라미터
파라미터 | 설명 |
---|---|
<domain-name> | 도메인의 이름이다. |
[-f <file-path>] | 압축 파일의 경로이다. (기본값: DOMAIN_HOME/<domain-name>_packed.zip) |
예제
offline>pack-domain domain1
Packing the domain [domain1] configuration completed successfully at the path [DOMAIN_HOME/domain1_packed.zip].
참고
본 명령어는 서버에 접속하지 않은 상태에서도 사용할 수 있다.
동적 서버 생성으로 만들어진 클러스터의 설정 정보를 보여준다.
alias
showdservers
사용법
show-dynamic-servers <cluster-name>
파라미터
파라미터 | 설명 |
---|---|
<cluster-name> | 동적 설정 서버의 정보를 볼 클러스터 이름을 지정한다. |
예제
[DAS]domain1.adminServer>show-dynamic-servers cluster1
Shows the current configuration.
Dynamic servers configuration in the cluster (cluster1)
====================================================================
+----------------------------------------------------------+-------+
| Server Count | 2 |
| Nodes | node1 |
| Base Listen Port | 9736 |
| HTTP Listen Port | 8088 |
| JMS Listen Port | 9741 |
| Server Template Name | temp1 |
| Listen Port Step | 100 |
+----------------------------------------------------------+-------+
====================================================================
설정된 서버 템플릿의 리스트를 조회한다.
alias
show-template
사용법
show-server-template [<server-template-name>]
파라미터
파라미터 | 설명 |
---|---|
[<server-template-name>] | 설정된 템플릿의 정보를 조회한다. |
예제
offline>show-server-template temp1
Shows the current configuration.
server template (temp1)
=====================================================================
+---------------------------------------------------------+---------+
| Action On Resource Leak | WARNING |
| Stdout to Raw Format | true |
| MEJB | false |
| Class FTP | false |
| Server Log Home Directory | none |
+---------------------------------------------------------+---------+
=====================================================================
pack-domain에 의해 압축된 파일을 해제하는 명령이다. 해당 도메인 설정에 DAS의 동작 주소와 동작 포트 번호가 설정된 경우 변경 여부를 설정할 수 있다.
alias
unpackdomain
사용법
unpack-domain -f <file-path> | <domain-name> [-delete] [-overwrite] [-dasurl <das-url>] [-nodename <node-name>] [-nodeurl <node-url>]
파라미터
파라미터 | 설명 |
---|---|
-f <file-path> | 압축을 풀 파일의 전체 경로이다. (예: DOMAIN_HOME/<domain-name>_packed.zip) |
-f <domain-name> | 압축을 풀 파일의 이름이다. 압축을 풀 파일은 반드시 DOMAIN_HOME 디렉터리 안에 있어야 한다. (예: DOMAIN_HOME/<domain-name>_packed.zip) |
[-delete] | Unpack을 하려는 대상 도메인이 DOMAIN_HOME에 이미 존재하면 기존 도메인을 삭제하고 unpack을 진행하도록 한다. |
[-overwrite] | Unpack을 하려는 대상 도메인이 DOMAIN_HOME에 이미 존재하면 unpack하려는 도메인이 기존 도메인을 덮어쓰도록 한다. |
[-dasurl <das-url>] | Unpack을 진행하는 노드에서 연결할 DAS의 URL이다. |
[-nodename <node-name>] | Unpack을 하려는 노드의 노드 이름이다. |
[-nodeurl <node-url>] | Unpack을 하려는 노드의 노드 URL이다. |
예제
offline>unpack-domain domain1
The Domain Administration Server listener address is already set to [192.168.34.55]. Do you want to change it? (y/n): y
Enter the Domain Administration Server base listener address: 192.168.34.56
The Domain Administration Server listener port is already set to [9736]. Do you want to change it? (y/n): n
The Domain Administration Server nodename is already set to [node1]. Do you want to change it? (y/n): y
Enter the Domain Administration Server nodename: node2
The nodemanager of DAS machine listener address is already set to [192.168.34.56]. Do you want to change it? (y/n): n
The nodemanager of DAS machine listener port is already set to [7730]. Do you want to change it? (y/n): n
Unpacking the domain [domain1] configuration completed successfully.
참고
본 명령어는 서버에 접속하지 않은 상태에서도 사용할 수 있다.
Thread Management 관련 명령어의 목록은 다음과 같다.
명령어 | 설명 |
---|---|
interrupt-thread | 서블릿 또는 EJB RMI Thread에 인터럽트 시그널을 전송한다. |
modify-service-thread-pool | 동적으로 특정 서버의 특정 서비스의 전용 Thread Pool을 변경한다. |
modify-system-thread-pool | 동적으로 특정 서버의 System Thread Pool을 변경한다. |
print-stack-trace | Servlet Thread 또는 EJB RMI Thread의 Stack Trace를 출력한다. |
show-service-thread-pool | System Thread Pool에서 특정 서비스에 할당된 Thread의 정보를 조회한다. |
show-system-thread-pool | System Thread Pool의 정보를 조회한다. |
thread-info | 요청을 처리하는 Servlet Thread와 EJB RMI Thread의 정보를 조회한다. |
서블릿 또는 EJB RMI Thread에 인터럽트 시그널을 전송한다. Thread에 인터럽트 시그널을 보냈을 때의 결과에 대한 자세한 설명은 “JEUS Server 안내서”의 “3.3. Thread 모니터링 및 제어”를 참고한다.
이 기능은 인터럽트 신호만 보내는 것이므로 그 Thread가 반드시 동작을 멈춘다고 보장할 수 없다.
alias
interruptthread, interrupt, intthread
사용법
interrupt-thread -server <server-name> -li <listener-id> | <thread-id>
파라미터
파라미터 | 설명 |
---|---|
-server <server-name> | 서버의 이름이다. |
-li <listener-id> | 웹 리스너의 이름이다. 웹 리스너가 가지고 있는 Thread Pool 전체 Thread에 인터럽트 신호를 보낸다. |
<thread-id> | 시그널을 전송할 Thread의 ID이다. |
예제
[DAS]domain1.adminServer>interrupt-thread -server server1 50
Sent an interrupt hint signal to the thread [tid=50] on the server server1.
동적으로 서비스의 전용 Thread Pool을 변경한다. 현재 통합 설정을 사용하고 있는 naming server, scheduler, transaction Thread Pool만 이 명령어로 변경 가능하다. 변경할 설정을 입력하지 않으면 현재 설정을 조회한다.
alias
modify-svctp, modifysvctp, svctpconfig, svctpconf
사용법
modify-service-thread-pool -service <service name> <server-name> [-min <min>] [-max <max>] [-k,--keepalivetime <keep-alive-time>] [-q,--queuesize <queue-size>] [-m,--maxstuckthreadtime <max-stuck-thread-time>] [-a,--actiononstuckthread <action-on-stuck-thread>] [-stcp,--stuckthreadcheckperiod <stuck-thread-check-period>] [-f,--forceLock] [-detail]
파라미터
파라미터 | 설명 |
---|---|
-service <service name> | System Thread Pool을 사용하는 서비스의 이름이다. <service name>에 다음 중에 하나를 선택한다.
|
<server-name> | 서버의 이름이다. |
[-min <min>] | [동적 변경] Thread Pool의 최소 Thread 개수이다. |
[-max <max>] | [동적 변경] Thread Pool의 최대 Thread 개수이다. |
[-k,--keepalivetime <keep-alive-time>] | [동적 변경] 최소 Thread 개수를 초과하는 경우 입력한 시간 이상 idle 상태인 Thread는 삭제한다. |
[-q,--queuesize <queue-size>] | 실행 대기하는 worker의 최대 개수이다. |
[-m,--maxstuckthreadtime <max-stuck-thread-time>] | [동적 변경] 입력한 시간 이상으로 Thread가 수행되고 있으면 STUCK 상태라고 판단한다. |
[-a,--actiononstuckthread <action-on-stuck-thread>] | [동적 변경] STUCK 상태일 경우의 처리 방법이다. <action-on-stuck-thread>에 다음 중에 하나를 설정한다.
|
[-stcp,--stuckthreadcheckperiod <stuck-thread-check-period>] | [동적 변경] Thread들이 STUCK 상태임을 확인하는 주기를 설정한다. (단위: ms) |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-detail] | 동적 변경 결과에 대한 상세한 정보가 출력된다. |
예제
[DAS]domain1.adminServer>modify-service-thread-pool server1 -service transaction -min 10 -max 20
Successfully performed the MODIFY operation for The transaction thread pool of the
server (server1)., but all changes were non-dynamic. They will be applied after
restarting.
Check the results using "show-service-thread-pool server1 -service transaction or
modify-service-thread-pool server1 -service transaction"
동적으로 System Thread Pool을 변경한다. System Thread Pool을 사용하고 있는 서비스들의 할당된 Thread 개수도 설정할 수 있다.
alias
modify-systp, modifysystp, systpconfig, systpconf
사용법
modify-system-thread-pool <server-name> [-min <min>] [-max <max>] [-k,--keepalivetime <keep-alive-time>] [-q,--queuesize <queue-size>] [-m,--maxstuckthreadtime <max-stuck-thread-time>] [-a,--actiononstuckthread <action-on-stuck-thread>] [-stcp,--stuckthreadcheckperiod <stuck-thread-check-period>] [-service <service name>] [-r,--reservednum <reserved-number>] [-f,--forceLock] [-detail]
파라미터
파라미터 | 설명 |
---|---|
<server-name> | 서버의 이름이다. |
[-min <min>] | [동적 변경] Thread Pool의 최소 Thread 개수이다. |
[-max <max>] | [동적 변경] Thread Pool의 최대 Thread 개수이다. |
[-k,--keepalivetime <keep-alive-time>] | [동적 변경] 최소 Thread 개수를 초과하는 경우 입력한 시간 이상 idle 상태인 Thread는 삭제한다. |
[-q,--queuesize <queue-size>] | 실행 대기하는 worker의 최대 개수이다. |
[-m,--maxstuckthreadtime <max-stuck-thread-time>] | [동적 변경] 입력한 시간 이상으로 Thread가 수행되고 있으면 STUCK 상태라고 판단한다. |
[-a,--actiononstuckthread <action-on-stuck-thread>] | [동적 변경] STUCK 상태일 경우의 처리 방법이다. <action-on-stuck-thread>에 다음 중에 하나를 선택한다.
|
[-stcp,--stuckthreadcheckperiod <stuck-thread-check-period>] | [동적 변경] Thread들이 STUCK 상태임을 확인하는 주기를 설정한다. (단위: ms) |
[-service <service-name>] | System Thread Pool을 사용하는 서비스의 이름이다. <service name>에 다음 중에 하나를 선택한다.
|
[-r,--reservednum <reserved-number>] | [동적 변경] System Thread Pool을 사용하는 서비스에 보장되는 최소 Thread 개수이다. |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-detail] | 동적 변경 결과에 대한 상세한 정보가 출력된다. |
예제
[DAS]domain1.adminServer>modify-system-thread-pool server1 -min 10 -max 60 -service transaction -reservednum 20 -detail
Successfully performed the MODIFY operation for the system thread pool of the server (server1).
================================================================================
+-----------------------------------------------------------+-------+----------+
| servers.server.{? name == 'server1' }.systemThreadPool | MODIFY| ACTIVATED|
| servers.server.{? name == 'server1' }.tmConfig | MODIFY| ACTIVATED|
+-----------------------------------------------------------+-------+----------+
================================================================================
Check the results using "modify-system-thread-pool server1 or show-system-thread -pool server1"
------------------details-------------------
servers.server.{? name == 'server1' }.tmConfig : ACTIVATED
servers.server.{? name == 'server1' }.tmConfig.pooling : ACTIVATED
servers.server.{? name == 'server1' }.tmConfig.pooling.shared : ACTIVATED
servers.server.{? name == 'server1' }.tmConfig.pooling.shared.reservedThreadNum : ACTIVATED
previous value : 0, edited value : 20, result value : 20
servers.server.{? name == 'server1' }.systemThreadPool : ACTIVATED
servers.server.{? name == 'server1' }.systemThreadPool.min : ACTIVATED
previous value : 0, edited value : 10, result value : 10
servers.server.{? name == 'server1' }.systemThreadPool.max : ACTIVATED
previous value : 100, edited value : 60, result value : 60
Servlet Thread 또는 EJB RMI Thread의 Stack Trace를 출력한다.
alias
stacktrace, strace
사용법
print-stack-trace -server <server-name> -li <listener-id> | <thread-id>
파라미터
파라미터 | 설명 |
---|---|
-server <server-name> | 서버의 이름이다. |
[-li <listener-id>] | 웹 리스너의 이름이다. 웹 리스너가 가지고 있는 Thread Pool 전체 Thread의 Stack Trace를 보여준다. |
[<thread-id>] | Thread의 ID이다. |
예제
[DAS]domain1.adminServer>print-stack-trace -server server1 50
servlet thread [tid=50] Stack trace of http1-1 [server1-50] tid=50 java.lang.Thread.State: WAITING
at sun.misc.Unsafe.park(Native Method)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
at jeus.util.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1291)
at jeus.servlet.engine.WebThreadPoolExecutor.getTask(WebThreadPoolExecutor.java:68)
at jeus.util.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:1215)
at jeus.servlet.engine.WebThreadPoolExecutor$WebRequestWorker.run(WebThreadPoolExecutor.java:332)
at java.lang.Thread.run(Thread.java:662)
특정 서버의 System Thread Pool을 정보를 확인한다.
alias
show-svctp, showsvctp
사용법
show-service-thread-pool <server-name> -service <service name>
파라미터
파라미터 | 설명 |
---|---|
<server-name> | 서버의 이름이다. |
-service <service name> | 서비스의 이름이다. <service name>에 다음 중에 하나를 선택한다.
|
예제
[DAS]domain1.adminServer>show-service-thread-pool server1 -service transaction
Shows the current configuration.
=====================================================================
+----------------------------------------------------------+--------+
| Min | 10 |
| Max | 20 |
| Keep-Alive Time | 60000 |
| Queue Size | 4096 |
| Max Stuck Thread Time | 3600000|
| Action On Stuck Thread | NONE |
| Stuck Thread Check Period | 300000 |
+----------------------------------------------------------+--------+
=====================================================================
특정 서버의 System Thread Pool 정보를 확인한다.
alias
show-systp, showsystp
사용법
show-system-thread-pool <server-name> [-service <service name>]
파라미터
파라미터 | 설명 |
---|---|
<server-name> | 서버의 이름이다. |
[-service <service name>] | 서비스의 이름이다. <service name>에 다음 중에 하나를 선택한다.
|
예제
[DAS]domain1.adminServer>show-system-thread-pool server1
Shows the current configuration.
the system thread pool of the server (server1).
======================================================================
+------------------------------------------------------------+-------+
| Min | 10 |
| Max | 60 |
| Keep-Alive Time | 300000|
| Queue Size | 4096 |
| Max Stuck Thread Time | 0 |
| Action On Stuck Thread | NONE |
| Stuck Thread Check Period | 300000|
| Reserved Threads for the Service transaction | 0 |
+------------------------------------------------------------+-------+
======================================================================
요청을 처리하는 Servlet Thread와 EJB RMI Thread의 정보 및 그 외의 JEUS Thread Pool들을 조회한다. Servlet에서는 리스너의 Thread Pool과 각 작업 Thread(Worker Thread)에 대한 정보를 조회하며, EJB에서는 EJB 리모트 요청을 처리하는 EJB RMI Thread의 정보를 출력한다. 서버에서는 기본적으로 서버 Thread Pool에 대한 정보만을 조회하며 옵션에 따라 모든 Pool 정보를 볼 수도 있다.
alias
threadinfo, ti
사용법
thread-info -server <server-name> [-type <thread-type>] [-li <listener-id> | -ctx <context-name>] [-r,--request | -a,--all] [-s <thread-state>] [-os,--only-stats] [-st,--stacktrace]
파라미터
파라미터 | 설명 |
---|---|
-server <server-name> | 서버의 이름이다. |
[-type <thread-type>] | <thread-type>에 다음 중에 하나를 입력한다.
이외에도 -ctx 옵션이 지정된 경우 다음의 값을 입력한다.
|
[-li <listener-id>] | 특정 리스너를 지정한다. Servlet Thread에서만 유효하다. |
[-ctx <context-name>] | 특정 웹 컨텍스트를 지정한다. Servlet Thread에서만 유효하다. Asynchronout Servlet을 지정할 경우 Asynchronous Processing을 위한 Thread Pool의 정보를 보여준다. |
[-r,--request ] | Servlet Thread의 요청 정보만을 확인한다. Servlet Thread에 대해서만 유효하다. |
[ -a,--all] | Servlet에서는 Servlet Thread의 모든 정보를 확인하며 서버에서는 JEUS 내부적인 모든 pool의 정보 확인을 의미한다. |
[-s <thread-state>] | 특정 상태의 Thread만 조회하는 경우 그 상태를 입력한다.
|
[-os,--only-stats] | Servlet에서는 각 리스너별 통계 정보만을 출력한다. 서버에서는 pool의 통계 정보만을 출력한다. |
[-st,--stacktrace] | 서버에서 조회한 Pool들에 속한 모든 Active Threads(실제 task를 부여받고 수행 중인 Thread)의 trace를 조회한다. 서버에서만 유효하다. |
예제
[DAS]domain1.adminServer>thread-info -server server1
Thread information for the server [server1]
There are no EJB RMI threads for the server [server1].
=============================================================
The web container threads for 'ADMIN-HTTP' listener.
+----+------------------------------+--------+---------+----+
| tid| name | state | elapsed | uri|
+----+------------------------------+--------+---------+----+
| 45 | ADMIN-HTTP-w00 | waiting| 48521870| |
+----+------------------------------+--------+---------+----+
elsapsed: Elapsed time (ms)
=============================================================
===================================================================
Thread statistics for the 'ADMIN-HTTP' listener.
+---------------------------+------+-------+-----+--------+-------+
| | total| active| idle| blocked| reconn|
+---------------------------+------+-------+-----+--------+-------+
| The number of threads. | 1 | 0 | 1 | 0 | 0 |
+---------------------------+------+-------+-----+--------+-------+
total = active + idle, reconn: reconnecting
===================================================================
=====================================================
The web container threads for 'http1' listener.
+------+--------------------+--------+---------+----+
| tid | name | state | elapsed | uri|
+------+--------------------+--------+---------+----+
| 46 | http1-w00 | waiting| 48521873| |
| 47 | http1-w01 | waiting| 48521868| |
| 48 | http1-w02 | waiting| 48521868| |
| 49 | http1-w03 | waiting| 48521868| |
| 51 | http1-w05 | waiting| 48521862| |
| 52 | http1-w06 | waiting| 48521858| |
| 53 | http1-w07 | waiting| 48521858| |
| 54 | http1-w08 | waiting| 48521857| |
| 55 | http1-w09 | waiting| 48521857| |
| 21203| http1-w10 | waiting| 37629 | |
+------+--------------------+--------+---------+----+
elsapsed: Elapsed time (ms)
=====================================================
===================================================================
+---------------------------+------+-------+-----+--------+-------+
| | total| active| idle| blocked| reconn|
+---------------------------+------+-------+-----+--------+-------+
| The number of threads. | 10 | 0 | 10 | 0 | 0 |
+---------------------------+------+-------+-----+--------+-------+
total = active + idle, reconn: reconnecting
===================================================================
======================================================================
The threads for the 'threadpool.System' thread pool.
+-----+------------------------------+---------------+---------------+
| tid | name | thread state | active thread |
+-----+------------------------------+---------------+---------------+
| 93 | threadpool.System-2 | TIMED_WAITING | false |
| 92 | threadpool.System-1 | TIMED_WAITING | false |
| 94 | JMXMP [adminServer-94] | RUNNABLE | true |
+-----+------------------------------+---------------+---------------+
======================================================================
================================================================================
The statistics for the 'threadpool.System' thread pool.
+-----------+-----------+-----------+-----------+----------+-------------------+
| pool name | minimum | maximum | current | work | remaining work |
| | pool size | pool size | pool size |queue size| queue size |
+-----------+-----------+-----------+-----------+----------+-------------------+
| threadpool| 0 | 100 | 3 | 4096 | 4096 |
|.System | | | | | |
+-----------+-----------+-----------+-----------+----------+-------------------+
================================================================================
애플리케이션 관련 명령어의 목록은 다음과 같다.
명령어 | 설명 |
---|---|
add-application-repository | 새로운 애플리케이션 저장소를 등록한다. |
add-application-target | deploy되어 있는 애플리케이션의 Target에 서버나 클러스터를 추가한다. 해당 서버나 클러스터에 해당 애플리케이션을 deploy한다. |
application-info | 도메인에 존재하는 애플리케이션의 정보를 확인한다. |
deploy-application | 설치한 애플리케이션을 Target 서버로 deploy한다. Target으로 지정된 서버 중 하나라도 deploy가 실패하면 성공한 서버에도 undeploy를 수행한다. |
deployment-plan-info | 설치되어 있는 Deployment Plan의 정보를 확인한다. |
distribute-application | 설치된 애플리케이션을 각 서버나 클러스터로 배포한다. 파일 배포 기능으로 실제 서비스를 위해서는 start-application 명령으로 애플리케이션을 시작해야 한다. |
install-application | 애플리케이션을 설치한다. 애플리케이션의 ID를 정의할 수 있다. |
install-deployment-plan | Deployment Plan을 설치한다. Deployment Plan의 식별자를 정의할 수 있다. |
list-application-repositories | 등록되어 있는 애플리케이션 저장소들의 정보를 확인한다. |
redeploy-application | 특정 애플리케이션을 다시 deploy한다. |
remove-application-repository | 등록되어 있는 애플리케이션 저장소를 삭제한다. |
remove-application-target | 특정 서버나 특정 클러스터에 deploy 또는 배포된 애플리케이션을 해당 서버나 클러스터에서 제거한다. |
start-application | 배포된 애플리케이션의 서비스를 시작한다. |
stop-application | 서비스 중인 애플리케이션을 정지시킨다. |
undeploy-application | deploy된 애플리케이션을 undeploy한다. |
uninstall-application | 설치되어 있는 애플리케이션을 제거한다. |
uninstall-deployment-plan | 설치되어 있는 Deployment Plan을 제거한다. |
library-info | 설치 및 배포한 라이브러리들에 대한 정보를 출력한다. |
install-library | 라이브러리 파일을 설치한다. |
deploy-library | 설치되어 있는 라이브러리 파일을 서버나 클러스터를 대상으로 하여 배포한다. |
undeploy-library | 배포한 라이브러리를 undeploy한다. |
uninstall-library | 설치되어 있는 라이브러리 파일을 삭제한다. |
새로운 애플리케이션 저장소(Reporitory)를 추가한다.
alias
addapprepo, installapps
사용법
add-application-repository [<application-repository-path>] [-f,--forceLock] [-detail]
파라미터
파라미터 | 설명 |
---|---|
<application-repository-path> | 추가하려고 하는 애플리케이션 저장소의 절대 경로이다. |
[-f, --forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-detail] | 정보를 상세히 출력할 때 사용한다. |
예제
[DAS]domain1.adminServer>add-application-repository /home/user1/apps
Successfully performed the ADD operation for An application repository.
Check the results using "add-application-repository or list-application-repositories"
deploy되어 있는 애플리케이션의 Target에 서버나 클러스터를 추가한다. 해당 서버나 클러스터에 해당 애플리케이션을 deploy한다. 해당 애플리케이션이 DEPLOYED, DISTRIBUTED, RUNNING 상태일 때만 명령을 사용할 수 있다.
alias
addapptarget, addtarget
사용법
add-application-target <application-id> [-servers <server-list>] [-clusters <cluster-list>] [-vh,--virtualHost <virtual-host>]
파라미터
파라미터 | 설명 |
---|---|
<application-id> | Target을 추가하려고 하는 애플리케이션의 ID이다. 해당 애플리케이션이 DEPLOYED, DISTRIBUTED, RUNNING 상태일 때만 명령을 사용할 수 있다. |
[-servers <server-list>] | 애플리케이션을 추가할 서버의 이름들이다. 서버 이름은 콤마(,)로 구분한다. |
[-clusters <cluster-list>] | 애플리케이션을 추가할 클러스터의 이름들이다. 클러스터 이름은 콤마(,)로 구분한다. |
[-vh,--virtualHost <virtual-host>] | 가상 호스트 이름을 지정한다. |
예제
[DAS]domain1.adminServer>add-application-target myApp -servers server1
add a target server or cluster to the application for the application [deployment_helloear] succeeded.
도메인에 존재하는 애플리케이션의 정보를 확인한다.
alias
appinfo, list-applications
사용법
application-info[-server <server-name>] [-id <application-id> | -state <application-state>] [-type <application-type>] [-module <module-name>] [-bean <bean-name>] [-jndi <jndi-context>] [-mod <jndi-module-name>] [-comp <jndi-component-name>] [-detail,--detail] [-sps,--stateperserver]
파라미터
파라미터 | 설명 |
---|---|
[-server <server-name>] | 정보를 확인할 서버의 이름이다. 해당 서버의 애플리케이션 정보를 좀 더 자세히 조회한다. |
[-id <application-id>] | 정보를 확인할 애플리케이션의 ID이다. |
[-state <application-state>] | 애플리케이션의 특정 상태를 지정하여 정보를 확인한다. |
[-type <application-type>] | 애플리케이션의 특정 종류를 지정하여 정보를 확인한다. <application-type>에 다음 중 하나를 설정한다.
|
[-module <module-name>] | EAR 내부의 모듈 정보를 확인한다. |
[-bean <bean-name>] | EJB Bean에 대한 자세한 정보를 조회하기 위해 사용한다. server, id, module 정보가 필요하다. |
[-jndi <jndi-context>] | 특정 애플리케이션의 JNDI 정보를 확인한다. server, id 정보가 필요하다. |
[-mod <jndi-module-name>] | 특정 모듈의 JNDI Namespace를 확인한다. |
[-comp <jndi-component-name>] | 특정 컴포넌트의 Namespace를 확인한다. |
[-detail,--detail] | stand-alone 모듈의 상세 정보를 조회할 때 사용한다. 웹 모듈의 경우 서블릿, 필터, 리스너, WebSocket Server Endpoints, EJB Bean(EJB in a .war) 목록이 출력된다. |
[-sps,--stateperserver] | 추가로 각 애플리케이션에 대해 서버별 상태를 출력한다. 대상 서버가 내려가 있거나 하는 등의 이유로 상태가 없는 경우에는 'NO_STATE'라고 출력한다. |
예제
기본적인 출력
다음은 기본적인 출력 결과물이다.
[DAS]domain1.adminServer>application-info
Application information for the domain [domain1].
================================================================================
+----------+-----------+---------+-------------+----------+--------------------+
| Applicat | Applicati | State | Target | Target | Application Path |
| ion ID | on Type | | Servers | Clusters | |
+----------+-----------+---------+-------------+----------+--------------------+
| myApp | EAR | RUNNING | adminServer | | ${INSTALL_HOME}/my |
| | | | | |App/myApp.ear |
+----------+-----------+---------+-------------+----------+--------------------+
| myEJB | EJB | RUNNING | | cluster1 | ${INSTALL_HOME}/my |
| | | | | |EJB/myEJB.jar |
+----------+-----------+---------+-------------+----------+--------------------+
| myWeb | WAR | RUNNING | server1,adm | | ${INSTALL_HOME}/my |
| | | |inServer | |Web/myWeb.war |
+----------+-----------+---------+-------------+----------+--------------------+
================================================================================
stateperserver 옵션을 사용한 경우
각 애플리케이션에 대한 서버별 상태를 보여주는 것을 확인할 수 있다. 상태를 얻을 수 없는 서버에 대해서는 'NO_STATE'라고 표시한다.
[DAS]domain1.adminServer>application-info -sps
Application information for the domain [domain1].
================================================================================
+----------+-----------+---------+-------------+----------+--------------------+
| Applicat | Applicati | State | Target | Target | Application Path |
| ion ID | on Type | | Servers | Clusters | |
+----------+-----------+---------+-------------+----------+--------------------+
| myApp | EAR | RUNNING | adminServer | | ${INSTALL_HOME}/my |
| | | | | |App/myApp.ear |
+----------+-----------+---------+-------------+----------+--------------------+
| myEJB | EJB | RUNNING | | cluster1 | ${INSTALL_HOME}/my |
| | | | | |EJB/myEJB.jar |
+----------+-----------+---------+-------------+----------+--------------------+
| myWeb | WAR | RUNNING | server1,adm | | ${INSTALL_HOME}/my |
| | | |inServer | |Web/myWeb.war |
+----------+-----------+---------+-------------+----------+--------------------+
================================================================================
Server-specific state information for each application in the domain [domain1]
================================================================================
+-----------+-------------+----------+---------+----------+--------------------+
| Applicati | Application | State | Server | Cluster | Application Path |
| on ID | Type | | | | |
+-----------+-------------+----------+---------+----------+--------------------+
| myApp | EAR | RUNNING | adminSe | | ${INSTALL_HOME}/my |
| | | |rver | |App/myApp.ear |
+-----------+-------------+----------+---------+----------+--------------------+
| myEJB | EJB | RUNNING | server2 | cluster1 | ${INSTALL_HOME}/my |
| | | | | |EJB/myEJB.jar |
+-----------+-------------+----------+---------+----------+--------------------+
| myEJB | EJB | NO STATE | server3 | cluster1 | ${INSTALL_HOME}/my |
| | | | | |EJB/myEJB.jar |
+-----------+-------------+----------+---------+----------+--------------------+
| myWeb | WAR | NO STATE | server1 | | ${INSTALL_HOME}/my |
| | | | | |Web/myWeb.war |
+-----------+-------------+----------+---------+----------+--------------------+
| myWeb | WAR | RUNNING | adminSe | | ${INSTALL_HOME}/my |
| | | |rver | |Web/myWeb.war |
+-----------+-------------+----------+---------+----------+--------------------+
================================================================================
설치된 애플리케이션을 Target 서버로 deploy한다. Target으로 지정된 서버 중 하나라도 deploy가 실패하면 성공한 서버에도 undeploy를 수행한다.
alias
deployapp, deploy
사용법
deploy-application [<application-id>] [-path,--applicationPath <path>] [-servers <server-list>] [-clusters <cluster-list>] [-all] [-vh,--virtualHost <virtual-host>] [-type,--applicationType <application-type>] [-cl,--classloading <classloading-mode>] [-auto,--autoRedeployCheckInterval <auto-redeploy-check-interval>] [-security,--securityDomainName <security-domain-name>] [-fast,--fastDeploy] [-keep,--keepGenerated] [-shared,--sharedDisk] [-u,--upgrade] [-plan,--deploymentPlanName <deployment-plan-name>] [-ctxp,--contextPath <context-path>] [-staging] [-lib,--libraryId <library-IDs>] [-version,--libraryVersion <library-versions>] [-nj,--nodejava] [-con,--concurrent]
파라미터
파라미터 | 설명 |
---|---|
[<application-id>] | 애플리케이션을 설치(install-application)할 때 입력한 애플리케이션의 ID이다. 한 개 이상의 애플리케이션을 deploy하려면 콤마(,)를 통해 ID를 구분한다. 파일 경로를 통해 distribute할 때도 애플리케이션에 ID를 부여할 수 있다. 이 경우에는 하나의 경로와 하나의 ID만 올 수 있다. |
[-path,--applicationPath <path>] | 애플리케이션을 설치하지 않고 파일 경로를 이용할 때 사용한다. DAS와 같은 머신에 있는 파일만 가능하다. |
[-servers <server-list>] | 애플리케이션을 deploy할 서버들이다. 서버 이름은 콤마(,)로 구분한다. |
[-clusters <cluster-list>] | 애플리케이션을 deploy할 클러스터들이다. 클러스터 이름은 콤마(,)로 구분한다. |
[-all] | 도메인에 존재하는 모든 서버에 deploy할 때 지정한다. |
[-vh,--virtualHost <virtual-host>] | 가상 호스트 주소이다. 웹 엔진에 설정한 가상 호스트 이름 중 하나를 선택한다. 웹 모듈에서만 동작한다. |
[-type,--applicationType <application-type>] | 애플리케이션의 종류를 지정한다. <application-type>에 다음 중 하나를 설정한다.
옵션을 주지 않더라도 DD나 Annotation을 통해 자동으로 지정될 수 있다. |
[-cl,--classloading <classloading-mode>] | 클래스 로딩 형식을 지정한다. <classloading-mode>에 다음 중 하나를 설정한다.
|
[-auto,--autoRedeployCheckInterval <auto-redeploy-check-interval>] | 애플리케이션을 자동으로 redeploy하기 위한 체크 주기이다. (단위: ms) |
[-security,--securityDomainName <security-domain-name>] | 애플리케이션에 적용될 보안 도메인 이름을 선택한다. 기본값으로 보안 도메인 설정에서 default-application-domain으로 설정된 값이 적용된다. |
[-fast,--fastDeploy] | deploy할 때 생성되는 파일을 미리 생성해 놓은 경우 미리 생성된 파일을 사용하여 deploy 속도를 향상시킬지 여부를 설정한다. |
[-keep,--keepGenerated] | deploy할 때 생성된 파일을 유지할지 여부를 설정한다. |
[-shared,--sharedDisk] | NAS를 사용할 경우 설정한다. 애플리케이션 파일을 복사하지 않도록 하기 위한 옵션이다. |
[-u,--upgrade] | 미리 설치하지 않은 애플리케이션을 배포할 때 호환성을 위해 JEUS 6 이전 버전의 DD을 JEUS 8 버전에 맞는 형식으로 바꿔주기 위한 옵션이다. |
[-plan,-deploymentPlanName <deployment-plan-name>] | Deployment Plan 파일의 이름을 설정하기 위한 옵션이다. |
[-ctxp,--contextPath <context-path>] | 웹 애플리케이션의 경우 컨텍스트를 설정하기 위한 옵션이다. |
[-staging] | Exploded module 형태의 애플리케이션을 압축하여 다른 머신에 전송하기 위한 옵션이다. |
[-lib,--libraryId <library-IDs>] | 애플리케이션이 참조할 라이브러리들을 지정한다. 여러 라이브러리를 지정할 경우 콤마(,)로 구분한다. |
[-version,--libraryVersion <library-versions>] | 참조할 라이브러리들에 대한 버전을 지정한다. 여러 라이브러리를 지정할 경우 콤마(,)로 구분한다. |
[-nj,--nodejava] | Node JAVA 애플리케이션인지 여부를 설정한다. |
[-con, --concurrent] | 여러 애플리케이션을 deploy하려고 할 때, 애플리케이션을 동시에 deploy할지 여부를 설정한다. |
예제
[DAS]domain1.adminServer>deploy-application myApp -servers server1
deploy the application for the application [myApp] succeeded.
설치되어 있는 Deployment Plan의 정보를 확인한다.
alias
dpinfo
사용법
deployment-plan-info [-name,--deploymentPlanName <deployment-plan-name>]
파라미터
파라미터 | 설명 |
---|---|
[-name,--deploymentPlanName <deployment-plan-name>] | 상세 정보를 확인할 Deployment Plan의 이름(식별자)을 지정한다. |
예제
[DAS]domain1.adminServer>deployment-plan-info
The list of deployment plans installed in the domain and the applications to which each deployment plan applies
===========================================================
+------------------------------------------+--------------+
| Deployment plan | Applications |
+------------------------------------------+--------------+
| plan1 | |
+------------------------------------------+--------------+
===========================================================
설치되어 있는 애플리케이션을 각 서버나 클러스터로 배포한다. 파일 배포 기능으로써, 실제 서비스를 위해서는 start-application 명령으로 애플리케이션을 시작해야 한다.
alias
distributeapp, distapp, distribute
사용법
distribute-application [<application-id>] [-path,--applicationPath <path>] [-servers <server-list>] [-clusters <cluster-list>] [-all] [-vh,--virtualHost <virtual-host>] [-type,--applicationType <application-type>] [-cl,--classloading <classloading-mode>] [-auto,--autoRedeployCheckInterval <auto-redeploy-check-interval>] [-security,--securityDomainName <security-domain-name>] [-fast,--fastDeploy] [-keep,--keepGenerated] [-shared,--sharedDisk] [-u,--upgrade] [-plan,--deploymentPlanName <deployment-plan-name>] [-ctxp,--contextPath <context-path>] [-staging] [-lib,--libraryId <library-IDs>] [-version,--libraryVersion <library-versions>] [-nj,--nodejava] [-con,--concurrent]
파라미터
파라미터 | 설명 |
---|---|
[<application-id>] | 애플리케이션을 설치(install-application)할 때 입력한 애플리케이션의 ID이다. 한 개 이상의 애플리케이션을 distribute하려면 콤마(,)를 통해 ID를 구분한다. 파일 경로를 통해 distribute할 때도 애플리케이션에 ID를 부여할 수 있다. 이 경우에는 하나의 경로와 하나의 ID만 올 수 있다. |
[-path,--applicationPath <path>] | 애플리케이션을 설치하지 않고 파일 경로를 이용할 때 사용한다. DAS와 같은 머신에 있는 파일만 가능하다. |
[-servers <server-list>] | 애플리케이션을 설치할 서버들이다. 서버 이름은 콤마(,)로 구분한다. |
[-clusters <cluster-list>] | 애플리케이션을 설치할 클러스터들이다. 클러스터 이름은 콤마(,)로 구분한다. |
[-all] | 도메인에 존재하는 모든 서버에 설치할 때 지정한다. |
[-vh,--virtualHost <virtual-host>] | 가상 호스트 주소로 웹 엔진에 설정한 가상 호스트 이름 중 하나를 선택한다. 웹 모듈에서만 동작한다. |
[-type,--applicationType <application-type>] | 애플리케이션의 종류를 지정한다. <application-type>에 다음 중 하나를 설정한다.
옵션을 주지 않더라도 DD나 Annotation을 통해 자동으로 지정될 수 있다. |
[-cl,--classloading <classloading-mode>] | 클래스 로딩 형식을 지정한다. <classloading-mode>에 다음 중 하나를 설정한다.
|
[-auto,--autoRedeployCheckInterval <auto-redeploy-check-interval>] | 애플리케이션을 자동으로 Redeploy하기 위한 체크 주기이다. (단위: ms) |
[-security,--securityDomainName <security-domain-name>] | 애플리케이션에 적용될 보안 도메인 이름을 선택한다. 기본값으로 보안 도메인 설정에서 default-application-domain으로 설정된 값이 적용된다. |
[-fast,--fastDeploy] | deploy할 때 생성되는 파일을 미리 생성해 놓은 경우 미리 생성된 파일을 사용하여 Deploy 속도를 향상시킬지 여부이다. |
[-keep,--keepGenerated] | deploy할 때 생성된 파일을 유지할지 여부이다. |
[-shared,--sharedDisk] | NAS를 사용할 경우 설정한다. 애플리케이션 파일을 복사하지 않도록 하기 위한 옵션이다. |
[-u,--upgrade] | 미리 설치하지 않은 애플리케이션을 배포할 때 호환성을 위해 JEUS 6 이전 버전의 DD을 JEUS 8 버전에 맞는 형식으로 바꿔주기 위한 옵션이다. |
[-plan,-deploymentPlanName <deployment-plan-name>] | Deployment Plan 파일의 이름을 설정하기 위한 옵션이다. |
[-ctxp,--contextPath <context-path>] | 웹 애플리케이션의 경우 컨텍스트를 설정하기 위한 옵션이다. |
[-staging] | Exploded module 형태의 애플리케이션을 압축하여 다른 머신에 전송하기 위한 옵션이다. |
[-lib,--libraryId <library-IDs>] | 애플리케이션이 참조할 라이브러리들을 지정한다. 여러 라이브러리를 지정할 경우 콤마(,)로 구분한다. |
[-version,--libraryVersion <library-versions>] | 참조할 라이브러리들에 대한 버전을 지정한다. 여러 라이브러리를 지정할 경우 콤마(,)로 구분한다. |
[-nj,--nodejava] | Node JAVA 애플리케이션인지 여부를 설정한다. |
[-con, --concurrent] | 여러 애플리케이션을 distribute하려고 할 때, 애플리케이션을 동시에 distribute할지 여부를 설정한다. |
예제
[DAS]domain1.adminServer>distribute-application myApp -servers server1
distribute the application for the application [myApp] succeeded.
애플리케이션을 설치한다. 애플리케이션의 ID를 정의할 수 있다. 별도로 ID를 지정하지 않는 경우 애플리케이션의 파일 이름을 사용하며, 문자 점(.)은 문자 언더바(_)로 대체된다.
alias
installapp, install-app
사용법
install-application <application-source-path> [-id,--applicationId <application-id>] [-f,--force] [-u,--upgrade]
파라미터
파라미터 | 설명 |
---|---|
<application-source-path> | 애플리케이션의 경로를 지정한다. |
[-id,--applicationId <application-id>] | 애플리케이션의 ID를 지정한다. |
[-f,--force] | 동일한 ID가 존재하는 경우 현재 애플리케이션으로 덮어쓸지 여부를 선택한다. |
[-u,--upgrade] | 호환성을 위해 JEUS 6 이전 버전의 DD를 JEUS 8 버전에 맞는 형식으로 바꿔주기 위한 옵션이다. |
예제
[DAS]domain1.adminServer>install-application /home/apps/myApp.ear -id myApp
Successfully installed the application [myApp].
참고
본 명령어는 서버에 접속하지 않은 상태에서도 사용할 수 있다.
Deployment Plan을 설치한다. 이때 설치할 Deployment Plan의 식별자를 정의할 수 있다.
alias
installdp
사용법
install-deployment-plan -path,--deploymentPlanPath <deployment-plan-path>
[-name,--deploymentPlanName <deployment-plan-name>]
[-f,--force]
파라미터
파라미터 | 설명 |
---|---|
-path,--deploymentPlanPath <deployment-plan-path> | 설치할 Deployment Plan의 로컬 경로를 지정한다. |
[-name,--deploymentPlanName <deployment-plan-name>] | 설치할 Deployment Plan의 도메인 상에서의 식별자(이름)를 정의한다. |
[-f,--force] | 동일한 이름을 가지고 있는 기존 Deployment Plan을 덮어쓰도록 강제한다. |
예제
[DAS]domain1.adminServer>install-deployment-plan -path /home/plans/jeus-deployment-plan.xml -name plan1
Installing the deployment plan [plan1] was successful.
참고
본 명령어는 서버에 접속하지 않은 상태에서도 사용할 수 있다.
등록되어 있는 애플리케이션 저장소들의 정보를 확인한다.
alias
listapprepos
사용법
list-application-repositories
예제
[DAS]domain1.adminServer>list-application-repositories
Application Repositories
================================================================================
+------------------------------------------------------------------------------+
| Path of Application Repository |
+------------------------------------------------------------------------------+
| /home/user1/apps/ |
| //host1/shared/apps |
+------------------------------------------------------------------------------+
================================================================================
특정 애플리케이션을 다시 deploy한다.
alias
redepapp, redeploy
사용법
redeploy-application <application-id> [-path,--uploadPath <application-upload-path>] [-dasPath,--pathManuallyInstalled <application-source-path-in-das>] [-to <graceful-timeout>] [-f,--force] [-distonly,--distributeOnly] [-plan,-deploymentPlanName <deployment-plan-name>] [-lib,--libraryId <library-IDs>] [-version,--libraryVersion <library-versions>] [-upgrade]
파라미터
파라미터 | 설명 |
---|---|
<application-id> | 애플리케이션의 ID이다. 한 개 이상의 애플리케이션을 redeploy하려면 콤마(,)로 구분한다. |
[-path, --uploadPath <application-upload-path>] | 변경된 애플리케이션의 파일 경로이다. 파일 재설치 동작을 포함한다. |
[-dasPath, --pathManuallyInstalled <application-source-path-in-das>] | DAS 머신에서 접근가능한 변경된 애플리케이션의 로컬 파일 경로이다. 설치하는 작업을 포함하지 않는다. |
[-to <graceful-timeout>] | Graceful undeploy의 타임아웃 값이다. (단위: 초) |
[-f,--force] | 기존의 애플리케이션이 계속 서비스되도록 한다. |
[-distonly,--distributeOnly] | 새 애플리케이션을 서비스하지 않고 각 서버로의 설치까지만 진행한다. |
[-plan,-deploymentPlanName <deployment-plan-name>] | Deployment Plan 파일의 이름을 설정하기 위한 옵션이다. |
[-lib,--libraryId <library-IDs>] | 애플리케이션이 참조할 라이브러리들을 지정한다. 여러 라이브러리를 지정할 경우 콤마(,)로 구분한다. |
[-version,--libraryVersion <library-versions>] | 참조할 라이브러리들에 대한 버전을 지정한다. 여러 라이브러리를 지정할 경우 콤마(,)로 구분한다. |
[-upgrade] | 새 애플리케이션이 갖고 있는 DD를 최신 버전에 맞게 업그레이드한다. 이 옵션은 path 옵션이나 dasPath 옵션을 사용하여 새 애플리케이션 경로를 지정하였을 경우에만 동작한다. |
예제
[DAS]domain1.adminServer>redeploy-application myApp
redeploy application on das for the application [myApp] succeeded.
참고
본 명령어는 서버에 접속하지 않은 상태에서도 사용할 수 있다.
등록되어 있는 애플리케이션 저장소를 삭제한다.
alias
rmapprepo, removeapprepo, uninstallapps
사용법
remove-application-repository [<application-repository-path>] [-f,--forceLock] [-detail]
파라미터
파라미터 | 설명 |
---|---|
[<application-repository-path>] | 삭제할 애플리케이션 저장소의 경로이다. |
[-f, --forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-detail] | 정보를 자세히 출력하는 경우 사용한다. |
예제
[DAS]domain1.adminServer>remove-application-repository /home/user1/apps
Successfully performed the REMOVE operation for An application repository.
Check the results using "remove-application-repository or list-application-repositories"
특정 서버나 특정 클러스터에 Deploy 또는 배포된 애플리케이션을 해당 서버나 클러스터에서 제거한다.
alias
remove-app-target, remove-target, rm-app-target, rmapptarget
사용법
remove-application-target <application-id> [-servers <server-list>] [-clusters <cluster-list>] [-vh,--virtualHost <virtual-host>]
파라미터
파라미터 | 설명 |
---|---|
<application-id> | 제거할 애플리케이션의 ID이다. |
[-servers <server-lists>] | 애플리케이션을 제거할 서버의 이름을 지정한다. 서버 이름은 콤마(,)로 구분한다. |
[-clusters <cluster-lists>] | 애플리케이션을 제거할 클러스터의 이름을 지정한다. 클러스터 이름은 콤마(,)로 구분한다. |
[-vh,--virtualHost <virtual-host>] | 가상 호스트 이름을 지정한다. |
예제
[DAS]domain1.adminServer>remove-application-target myApp -servers server1
remove server or cluster target from the application for the application [myApp] succeeded.
배포된 애플리케이션의 서비스를 시작한다.
alias
startapp, start-app
사용법
start-application <application-id> [-con,--concurrent]
파라미터
파라미터 | 설명 |
---|---|
<application-id> | 서비스를 시작할 애플리케이션의 ID이다. 한 개 이상의 애플리케이션을 시작하려면 콤마(,)로 구분한다. |
[-con, --concurrent] | 여러 애플리케이션을 start하려고 할 때, 애플리케이션을 동시에 start할지 여부를 설정한다. |
예제
[DAS]domain1.adminServer>start-application myApp
start the application for the application [myApp] succeeded.
서비스 중인 애플리케이션을 정지시킨다.
alias
stopapp, stop-app
사용법
stop-application <application-id> [-con,--concurrent]
파라미터
파라미터 | 설명 |
---|---|
<application-id> | 서비스를 정지시킬 애플리케이션의 ID이다. 한 개 이상의 애플리케이션을 정지하려면 콤마(,)로 구분한다. |
[-con, --concurrent] | 여러 애플리케이션을 stop하려고 할 때, 애플리케이션을 동시에 stop할지 여부를 설정한다. |
예제
[DAS]domain1.adminServer>stop-application myApp
stop the application for the application [myApp] succeeded.
deploy된 애플리케이션을 undeploy한다.
alias
undeployapp, undeploy
사용법
undeploy-application <application-id> [-to,--gracefultimeout <graceful-undeploy-timeout>] [-f,--force <non-graceful undeploy>] [-new | -old | -all] [-con,--concurrent]
파라미터
파라미터 | 설명 |
---|---|
<application-id> | 애플리케이션의 ID이다. 한 개 이상의 애플리케이션을 undeploy하려면 콤마(,)로 구분한다. |
[-to,--gracefultimeout <graceful-undeploy-timeout>] | Graceful undeploy할 때 적용되는 타임아웃 값이다. 처리 중인 요청을 입력한 시간만큼 완료되길 기다린다. (단위: 초) |
[-f,--force <non-graceful undeploy>] | undeploy할 때 Graceful undeploy를 수행하지 않는다. 처리 중인 요청은 무시되고 애플리케이션은 undeploy 된다. |
[-new] | Graceful reploy할 때 새로운 애플리케이션을 undeploy하고 기존 애플리케이션을 서비스한다. |
[-old] | Graceful reploy할 때 기존 애플리케이션을 undeploy한다. |
[-all] | Graceful redeploy할 때 새로운 애플리케이션과 기존의 애플리케이션 모두를 undeploy한다. |
[-con, --concurrent] | 여러 애플리케이션을 undeploy하려고 할 때, 애플리케이션을 동시에 undeploy할지 여부를 설정한다. |
예제
[DAS]domain1.adminServer>undeploy-application myApp
Undeploying [myApp] (This may take time due to graceful undeployment) ..........
undeploy the application for the application [myApp] succeeded.
Successfully undeployed (elapsed = 2822ms)
설치되어 있는 애플리케이션을 제거한다.
alias
uninstallapp, uninstall
사용법
uninstall-application <application-id> | [-all]
파라미터
파라미터 | 설명 |
---|---|
<application-id> | 애플리케이션의 ID이다. 한 개 이상의 애플리케이션을 제거하려면 콤마(,)로 구분한다. |
[-all] | 설치되어 있는 모든 애플리케이션을 제거한다. |
예제
[DAS]domain1.adminServer>uninstall-application myApp
uninstall the application for the application [myApp] succeeded. : Successfully deleted [myApp].
설치되어 있는 Deployment Plan을 제거한다.
alias
uninstalldp
사용법
uninstall-deployment-plan <deployment-plan-name> | [-all]
파라미터
파라미터 | 설명 |
---|---|
<deployment-plan-name> | 제거할 Deployment Plan 식별자(이름)를 지정한다. |
[-all] | 설치되어 있는 모든 Deployment Plan을 제거한다. |
예제
[DAS]domain1.adminServer>uninstall-deployment-plan plan1
Uninstalling the deployment plan was successful.
현재 설치 및 배포되어 있는 라이브러리에 대한 목록을 출력한다.
alias
libinfo, list-libraries
사용법
library-info
예제
[DAS]domain1.adminServer>library-info
Library information
================================================================================
+-----------+--------+--------+---------------+------------------+-------------+
| Library ID| Version| State | Target Servers| Target Clusters | Applications|
+-----------+--------+--------+---------------+------------------+-------------+
| log4j | 1.2.17 | RUNNING| adminServer | | |
+-----------+--------+--------+---------------+------------------+-------------+
================================================================================
라이브러리 파일을 설치한다.
alias
installlib, install-lib
사용법
install-library <library-id> -path <library-source-path> [-version,--libraryVersion <version>]
파라미터
파라미터 | 설명 |
---|---|
<library-id> | 설치할 라이브러리에 대한 식별자를 지정한다. |
-path <library-source-path> | 라이브러리 파일이 위치한 경로를 지정한다. |
[-version,--libraryVersion <version>] | 설치할 라이브러리의 버전을 지정한다. 지정하지 않은 경우 1.0으로 간주한다. |
예제
[DAS]domain1.adminServer>install-library log4j -path /home/lib/apache-log4j-1.2.17/log4j-1.2.17.jar -version 1.2.17
Successfully installed the library [log4j] version [1.2.17].
설치되어 있는 라이브러리를 서버나 클러스터에 배포한다.
alias
deploylib
사용법
deploy-library <library-id> [-version,--libraryVersion <version>] [-all] [-clusters <cluster-list>] [-servers <server-list>]
파라미터
파라미터 | 설명 |
---|---|
<library-id> | 배포할 라이브러리의 식별자를 지정한다. |
[-version,--libraryVersion <version>] | 설치할 라이브러리의 버전을 지정한다. |
[-all] | 모든 서버를 대상으로 배포하고자 하는 경우 지정한다. |
[-clusters <cluster-list>] | 배포 대상이 될 클러스터를 지정한다. 여러 클러스터를 지정할 경우 콤마(,)로 구분한다. |
[-servers <server-list>] | 라이브러리를 배포할 서버를 지정한다. 여러 서버를 지정할 경우 콤마(,)로 구분한다. |
예제
[DAS]domain1.adminServer>deploy-library log4j -version 1.2.17 -servers adminServer
deploy the library [log4j] succeeded.
서버나 클러스터를 대상으로 배포했던 라이브러리를 undeploy한다.
alias
undeploylib
사용법
undeploy-library <library-id>
[-version,--libraryVersion <version>]
파라미터
파라미터 | 설명 |
---|---|
<library-id> | undeploy할 라이브러리에 대한 식별자를 지정한다. |
[-version,--libraryVersion <version>] | undeploy할 라이브러리의 버전을 지정한다. |
예제
[DAS]domain1.adminServer>undeploy-library log4j -version 1.2.17
undeploy the library [log4j] succeeded.
설치되어 있는 라이브러리 파일을 삭제한다.
alias
uninstalllib
사용법
uninstall-library <library-id>
[-version,--libraryVersion <version>]
파라미터
파라미터 | 설명 |
---|---|
<library-id> | 삭제할 라이브러리의 식별자를 지정한다. |
[-version,--libraryVersion <version>] | 삭제할 라이브러리의 버전을 지정한다. |
예제
[DAS]domain1.adminServer>uninstall-library log4j -version 1.2.17
uninstall the library [log4j] succeeded. : Successfully deleted [log4j].
EJB 엔진 관련 명령어의 목록은 다음과 같다.
명령어 | 설명 |
---|---|
cancel-ejb-timer | 특정 서버의 EJB 타이머를 취소한다. |
ejb-timer-info | 특정 서버의 EJB 타이머 정보를 확인한다. |
modify-active-management | 특정 서버의 Active management를 변경한다. |
modify-check-resolution | 특정 서버의 Resolution 정보를 변경한다. |
show-active-management | 특정 서버의 Active management 정보를 확인한다. |
show-check-resolution | 특정 서버의 Resolution 정보를 확인한다. |
특정 서버의 EJB 타이머를 취소한다.
alias
cancelejbtimer, canceltimer
사용법
cancel-ejb-timer -server <server-name>
-module <module-id> | -timer <timer-id>
파라미터
파라미터 | 설명 |
---|---|
-server <server-name> | 서버의 이름이다. |
-module <module-id> | 타이머를 취소할 모듈의 ID이다. |
-timer <timer-id> | 취소할 타이머의 ID이다. |
예제
[DAS]domain1.adminServer>cancel-ejb-timer -server server1 -timer 502
Successfully canceled.
특정 서버의 EJB 타이머 정보를 확인한다.
alias
ejbtimerinfo, timerinfo, scheduler
사용법
ejb-timer-info -server <server-name> [-module <module-id> | -all] [-detail]
파라미터
파라미터 | 설명 |
---|---|
-server <server-name> | 서버의 이름이다. |
[-module <module-id> ] | 타이머 정보를 확인할 EJB 모듈의 이름이다. |
[-all] | 모든 EJB 모듈의 타이머 정보를 확인한다. |
[-detail] | 타이머의 정보를 상세하게 출력한다. |
예제
[DAS]domain1.adminServer>ejb-timer-info -server server1 -all -detail
Persistent Timer List: server[server1]
Module ID: Timer
================================================================================
+----+-------------+---------+--------------------+------+---------------------+
| ID | BEAN | METHOD | SCHEDULE | INFO | NEXT |
+----+-------------+---------+--------------------+------+---------------------+
| 52 | Persistence | print() | sec=*,min=*,hour=* | | 2016-08-29 (Mon) PM |
| |TestBean | |,dayOfMonth=*,dayOf | | 03:50:34 KST |
| | | |Week=*,month=*,year | | |
| | | |=* | | |
+----+-------------+---------+--------------------+------+---------------------+
================================================================================
특정 서버의 Active management를 변경한다.
alias
modifyam
사용법
modify-active-management -server <server-name> [-mbt,--maxBlockedThread <max-blocked-thread>] [-mit,--maxIdleTime <max-idle-time>] [-f,--forceLock] [-detail]
파라미터
파라미터 | 설명 |
---|---|
-server <server-name> | 서버의 이름이다. |
[-mbt,--maxBlockedThread <max-blocked-thread>] | [동적 변경] 블록된 Thread 개수의 최댓값이다. |
[-mit,--maxIdleTime <max-idle-time>] | [동적 변경] 블록되었다고 판단할 idle 시간의 최댓값이다. |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-detail] | 동적 변경 결과에 대한 상세한 정보가 출력된다. |
예제
[DAS]domain1.adminServer>modify-active-management -server server1 -mbt 5 -mit 300001
Successfully performed the MODIFY operation for active-management for the server (server1)..
Check the results using "show-active-management -server server1"
특정 서버의 Resolution을 변경한다.
alias
modifyresolution, ejbengineresolution
사용법
modify-check-resolution -server <server-name> [-r,--resolution <resolution>] [-f,--forceLock] [-detail]
파라미터
파라미터 | 설명 |
---|---|
-server <server-name> | 서버의 이름이다. |
[-r,--resolution <resolution>] | [동적 변경] 변경할 EJB 엔진의 Resolution이다. |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-detail] | 동적 변경 결과에 대한 상세한 정보가 출력된다. |
예제
[DAS]domain1.adminServer>modify-check-resolution -server server1 -r 3000001
Successfully performed the MODIFY operation for The EJB engine resolution of the server (server1)..
Check the results using "show-check-resolution -server server1"
특정 서버의 Active management 정보를 확인한다.
alias
showam
사용법
show-active-management -server <server-name>
파라미터
파라미터 | 설명 |
---|---|
-server <server-name> | 서버의 이름이다. |
예제
[DAS]domain1.adminServer>show-active-management -server server1
Shows the current configuration.
active-management for the server (server1).
===================================================================
+---------------------------------------------------------+-------+
| Max Blocked Thread | 5 |
| Max Idle Time | 300001|
+---------------------------------------------------------+-------+
===================================================================
특정 서버의 Resolution 정보를 확인한다.
alias
showresolution
사용법
show-check-resolution -server <server-name>
파라미터
파라미터 | 설명 |
---|---|
-server <server-name> | 서버의 이름이다. |
예제
[DAS]domain1.adminServer>show-check-resolution -server server1
Shows the current configuration.
The EJB engine resolution of the server (server1).
========================================================
+---------------------------------------------+--------+
| Resolution | 3000001|
+---------------------------------------------+--------+
========================================================
웹 엔진 관련 명령어는 크게 다음과 같이 2가지로 구분할 수 있다.
모니터링 및 제어
deploy되어 있는 웹 컨텍스트의 상태를 확인하거나 제어하기 위한 명령, 웹 엔진의 상태를 확인하거나 제어하기 위한 명령들이다.
명령어 | 설명 |
---|---|
resume-web-component | 일시 중지된 웹 컴포넌트(서블릿)를 재시작한다. |
suspend-web-component | 웹 컴포넌트(서블릿)를 일시중지한다. |
reload-web-context | 특정 컨텍스트를 동적으로 reload한다. |
show-web-engine-configuration | 웹 엔진 관련 설정 정보를 조회한다. |
show-web-statistics | 웹 엔진 관련 각종 통계 자료를 조회한다. |
clear-web-statistics | 컨텍스트, 서블릿 등의 요청 통계 자료를 초기화한다. |
show-request-processing-flow | URL 패턴이나 특정 호스트명으로 들어온 요청의 처리 흐름을 조회한다. |
precompile-jsp | deploy된 웹 컨텍스트의 JSP 파일들을 요청처리 전에 미리 컴파일한다. |
설정 변경 관련 명령어
동적으로 웹 엔진에 속한 설정을 추가, 삭제, 수정할 수 있는 명령들이다. 설정 변경 사항들은 XML에는 적용하지만 실제 운영 중인 서비스(메모리 영역)에 적용하지 않는다. 예를 들어 가상 호스트의 경우 추가, 삭제가 가능하지만 XML만 변경되는 것이며 실제로 서비스에 적용하려면 서버를 재시작해야 한다.
명령어 | 설명 |
---|---|
add-web-cookie-policy | Cookie Policy 설정을 추가한다. |
modify-web-cookie-policy | Cookie Policy 설정을 변경한다. |
remove-web-cookie-policy | Cookie Policy 설정을 삭제한다. |
add-web-encoding | Character Set Encoding 설정을 추가한다. |
modify-web-encoding | Character Set Encoding 설정을 변경한다.공통 |
remove-web-encoding | Character Set Encoding 설정을 삭제한다. |
add-web-properties | 웹 엔진의 프로퍼티 설정을 추가한다. |
modify-web-properties | 웹 엔진의 프로퍼티 설정을 변경한다. |
remove-web-properties | 웹 엔진의 프로퍼티 설정을 삭제한다. |
add-response-header | HTTP Response Custom Header 설정을 추가한다. |
modify-response-header | HTTP Response Custom Header 설정을 변경한다. |
remove-response-header | HTTP Response Custom Header 설정을 삭제한다. |
modify-jsp-engine | JSP 엔진 설정을 변경한다. |
add-virtual-host | 가상 호스트를 추가한다. |
modify-virtual-host | 가상 호스트의 일부 설정을 변경한다. |
remove-virtual-host | 가상 호스트를 삭제한다. |
add-webtob-connector | WebtoB 커넥터를 추가한다. |
modify-webtob-connector | WebtoB 커넥터의 일부 설정을 변경한다. |
remove-webtob-connector | WebtoB 커넥터를 삭제한다. |
add-tmax-connector | Tmax 커넥터를 추가한다. |
modify-tmax-connector | Tmax 커넥터의 일부 설정을 변경한다. |
remove-tmax-connector | Tmax 커넥터를 삭제한다. |
add-web-listener | HTTP, TCP, AJP 리스너를 추가한다. |
modify-web-listener | HTTP, TCP, AJP 리스너의 일부 설정을 변경한다. |
remove-web-listener | HTTP, TCP, AJP 리스너를 삭제한다. |
modify-web-engine-configuration | 웹 엔진의 일부 설정을 동적으로 변경한다. |
다음은 웹 엔진 관련 명령어에서 공통적으로 적용되는 옵션에 대한 설명이다. 아래 옵션 중 하나만 설정될 수 있다.
[-cluster <cluster_name> ] 옵션
각 명령어가 적용될 클러스터를 지정할 때 사용하는 옵션이다. 옵션을 설정하지 않으면 현재 접속된 서버의 웹 엔진으로 적용된다.
각 명령어의 옵션 설명에서 이 옵션에 대한 설명은 생략한다. 단, precompile-jsp는 이 옵션을 제공하지 않는다.
[-server <server_name> ] 옵션
각 명령어가 적용될 서버를 지정할 때 사용하는 옵션이다. 옵션을 설정하지 않으면 현재 접속된 서버의 웹 엔진으로 적용된다.
각 명령어의 옵션 설명에서 이 옵션에 대한 설명은 생략한다.
1. 서버에 즉시 반영이 안되는 설정의 경우 즉, Pending된 설정이 최초의 설정으로 재설정되는 명령을 수행하면, 서버의 재시작이 필요하다는 안내문(Restart the Server)이 출력되지 않는다.
2. DAS의 경우는 위 옵션 중 하나는 반드시 필요하다. 그렇지만 DAS가 아닌 일반 관리 서버에서 해당 명령을 실행할 경우에는 아래 옵션들이 없을 경우 접속한 서버를 기반으로 명령이 수행된다.
웹 엔진의 HTTP Cookie Policy 설정을 추가한다. 단, XML에만 반영하며 실제로 서비스에 적용하려면 서버를 재시작해야 한다.
관련 스키마
web-engine.xsd - web-engine/cookie-policy
alias
addcookie
사용법
add-web-cookie-policy [-cluster <cluster-name> | -server <server-name>] [-f, -forceLock] [-auer,--apply-url-encoding-rule <apply-url-encoding-rule>] [-enc,--charset-encoding <charset-encoding>] [-vh <virtual-host-name>]
파라미터
파라미터 | 설명 |
---|---|
[-f, --forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-auer,--apply-url-encoding-rule <apply-url-encoding-rule>] | URL Encoding Rule 적용 여부를 설정한다. |
[-enc,--charset-encoding <charset-encoding>] | URL Encoding Rule을 적용할 때 사용하는 Charset Encoding이다. 설정하지 않을 경우 Request Encoding 값을 따른다. |
[-vh <virtual-host-name>] | 가상 호스트를 지정한다. |
예제
add-web-cookie-policy -server server1 -auer true add-web-cookie-policy -server server1 -enc EUC-KR
웹 엔진의 Encoding을 추가한다. 단, XML에만 반영하며 실제로 서비스에 적용하려면 서버를 재시작해야 한다(이미 설정되어 있던 Encoding을 삭제하고 추가하며, Encoding이 변한 경우 restart되어야 서버에 적용이 된다).
관련 스키마
web-engine.xsd - web-engine/encoding
alias
addenc
사용법
add-web-encoding [-cluster <cluster-name> | -server <server-name>] [-f, -forceLock] <charset encoding> -co | -default | -forced [-url] [-req] [-res] [-vh <virtual-host-name>]
파라미터
파라미터 | 설명 |
---|---|
[-f, --forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
<charset encoding> | 설정할 Character Set Encoding 이름이다. 잘못된 값이 입력되면 오류가 출력되고 명령이 실패한다. |
-co | -default | -forced | 입력된 Encoding을 default로 설정할지 forced로 설정할지 결정한다. request encoding인 경우 두 설정 외에 client-override를 설정할 수 있다. |
[-url] | Request Url의 Character Set Encoding을 설정한다. |
[-req] | Request의 Character Set Encoding을 설정한다. |
[-res] | Response의 Character Set Encoding을 설정한다. |
[-vh <virtual-host-name>] | 가상 호스트를 지정한다. |
예제
add-web-encoding -server server1 -default -url UTF-8 addenc -server server1 UTF-8 -forced -req -res
웹 엔진의 프로퍼티 설정을 추가한다. 추가되는 프로퍼티는 대소문자를 구별한다. 단, XML에만 반영하며 실제로 서비스에 적용하려면 서버를 재시작해야 한다.
관련 스키마
web-engine.xsd - web-engine/properties
alias
addwebpr
사용법
add-web-properties [-cluster <cluster-name> | -server <server-name>] [-f, -forceLock] [-p,--properties <properties>] [-vh <virtual-host-name>]
파라미터
파라미터 | 설명 |
---|---|
[-f, --forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-p,--properties <properties>] | 추가할 웹 엔진의 프로퍼티를 설정한다. 한 개의 프로퍼티는 "key=value" 형태로 "="를 이용하여 설정한다. 한 개 이상의 프로퍼티를 추가할 경우에는 각 프로퍼티를 콤마(,)로 구분하여 설정한다. |
[-vh <virtual-host-name>] | 가상 호스트를 지정한다. |
예제
add-web-properties -server server1 -p jeus.servlet.jsp.modern=false add-web-properties -server server1 -p jeus.servlet.jsp.compile-java-source-concurrently1=false, jeus.servlet.jsp.assure-utf8-file-encoding-detection=true
웹 엔진의 Response Header 설정을 추가한다. 추가되는 Response Header는 대소문자를 구별하지 않는다. 단, XML에만 반영하며 실제로 서비스에 적용하려면 서버를 재시작해야 한다.
관련 스키마
web-engine.xsd - web-engine/response-header
alias
addwebrh
사용법
add-response-header [-cluster <cluster-name> | -server <server-name>] [-f, --forceLock] [-n,--name <header-name>] [-v,--value <header-value>]
파라미터
파라미터 | 설명 |
---|---|
[-f, --forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-n,--name <header-name>] | 추가할 HTTP Response Header의 이름을 설정한다. 입력값은 대소문자를 구별하지 않는다. 같은 이름의 Header는 1개만 허용된다. |
[-v,--value <header-value>] | 추가할 HTTP Response Header의 값을 설정한다. 입력값은 대소문자를 구별하지 않는다. |
예제
add-response-header -server server1 -n testHeader -v testValue
Tmax 커넥터를 추가한다. 단, XML에만 반영하며 실제로 서비스에 적용하려면 서버를 재시작해야 한다.
관련 스키마
web-engine.xsd - web-engine/web-connections/tmax-connector
alias
addtmaxcon
사용법
add-tmax-connector [-cluster <cluster-name> | -server <server-name>] [-f, --forceLock] -name <web-connection-name> -tmin <minimum-thread-num> [-tmax <maximum-thread-num>] -addr <server-address> -port <server-port> -svrg <server-group-name> -svr <server-name> -dcc <dispatcher-config-class>
파라미터
파라미터 | 설명 |
---|---|
[-f, --forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
-name <web-connection-name> | Tmax 커넥터의 이름이다. |
-tmin <minimum-thread-num> | Thread Pool의 최소 Thread 수이다. |
[-tmax <maximum-thread-num>] | Thread Pool의 최대 Thread 수이다. |
-addr <server-address> | Tmax 서버 주소이다. |
-port <server-port> | Tmax 서버 포트 번호이다. |
-svrg <server-group-name> | Tmax가 속한 서버 그룹 이름이다. |
-svr <server-name> | Tmax의 서버 이름이다. |
-dcc <dispatcher-config-class> | jeus.servlet.tcp.TCPDispatcherConfig 인터페이스를 구현한 클래스 이름이다. |
예제
add-tmax-connector -name tmax1 -tmin 20 -tmax 20 -addr 5.0.1.2 -port 1024 -svrg group1 -svr server1 -server server1 -dcc serice.DispatcherConfig
가상 호스트를 추가한다. 단, XML에만 반영하며 실제로 서비스에 적용하려면 서버를 재시작해야 한다.
관련 스키마
web-engine.xsd - web-engine/virtual-host
alias
addvh
사용법
add-virtual-host [-cluster <cluster-name> | -server <server-name>] [-f, --forceLock] <virtual-host-name> -list <host-name-list>
파라미터
파라미터 | 설명 |
---|---|
[-f, --forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
<virtual-host-name> | 가상 호스트의 이름이다. |
-list <host-name-list> | 가상 호스트에 등록할 도메인 이름 또는 IP 주소이다. |
예제
add-virtual-host -server server1 host2 -list www.foo.com,192.168.1.2
HTTP, TCP, AJP 리스너를 추가한다. 단, TCP 리스너는 XML에만 반영하며 TCP 리스너를 실제로 서비스에 적용하려면 서버를 재시작해야 한다.
관련 스키마
web-engine.xsd - web-engine/web-connections/http-listener, ajp13-listener, tcp-listener
alias
addwebl
사용법
add-web-listener [-cluster <cluster-name> | -server <server-name>] [-f, --forceLock] -name <web-connection-name> -tmin <minimum-thread-num> [-tmax <maximum-thread-num>] [-ajp | -http | -tcp] -slref <server-listener-ref-name> [-dcc <dispatcher-config-class>] [-http2] [-tauto] [-tlimit <thread-num-limit>]
파라미터
파라미터 | 설명 |
---|---|
[-f, --forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
-name <web-connection-name> | 리스너의 이름이다. |
-tmin <minimum-thread-num> | Thread Pool의 최소 Thread 수이다. |
[-tmax <maximum-thread-num>] | Thread Pool의 최대 Thread 수이다. |
[-ajp | -http | -tcp] | 리스너 타입이다. 입력하지 않을 경우 -http로 가정한다. |
-slref <server-listener-ref-name> | 서버에 등록된 서비스 리스너의 이름이다. |
[-dcc <dispatcher-config-class>] | jeus.servlet.tcp.TCPDispatcherConfig 인터페이스를 구현한 클래스 이름이다. TCP 리스너의 경우에만 반드시 필요하다. |
[-http2] | HTTP 리스너에서 HTTP/2를 사용한다. |
[-tauto] | Auto Tuning을 사용한다. 이 옵션을 사용하면 min, max 설정을 해도 적용되지 않는다. HTTP 리스너에만 적용된다. |
[-tlimit <thread-num-limit>] | Auto Tuning을 사용할 경우 Thread 수의 한계를 설정한다. |
예제
add-web-listener -name http1 -tmin 10 -tmax 20 -server server1 -slref http-server -http2 add-web-listener -name ajp -ajp -tmin 10 -tmax 20 -server server1 -slref ajp add-web-listener -name tcp1 -tcp -tmin 10 -tmax 20 -slref tcp -server server1 -dcc tcp.DispatcherConfigImpl
WebtoB 커넥터를 추가한다. 추가한 WebtoB 커넥터는 실제 서비스에 사용 가능하다. 단, 추가 후에는 WebtoB 연결 주소, 포트 등을 변경할 수 없으므로 주의깊게 추가하기 바란다.
관련 스키마
web-engine.xsd - web-engine/web-connections/webtob-connector
alias
addwebtobcon
사용법
add-webtob-connector [-cluster <cluster-name> | -server <server-name>] [-f, --forceLock] -name <web-connection-name> -num <thread-number> [-ver <<wjp-version>>] [-addr <server-address>] -port <server-port> | -dsocket -regid <registration-id> [-wbhome <webtob-home>] [-ipcport <ipc-base-port>] [-sndbuf <send-buffer-size>] [-rcvbuf <receive-buffer-size>]
파라미터
파라미터 | 설명 |
---|---|
[-f, --forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
-name <web-connection-name> | WebtoB 커넥터의 이름이다. |
-num <thread-number> | Thread Pool의 Thread 수이다. |
-ver <wjp-version> | WebtoB와 통신할 때 사용하는 프로토콜 버전을 나타낸다. 1 또는 2를 입력한다. |
-addr <server-address> | WebtoB 서버 주소이다. -port 사용할 때 필수 옵션이다. |
-port <server-port> | WebtoB 서버 포트 번호이다. |
-regid <registration-id> | WebtoB와의 등록 ID이다. |
-dsocket | Unix 도메인 소켓(Pipe)을 이용하여 JEUS와 WebtoB 사이에 통신을 한다. |
-wbhome <webtob-home> | JEUS와 WebtoB가 같은 장비 안에 설치되어 있을 경우 WebtoB가 설치된 절대 경로이다. |
-ipcport <ipc-base-port> | Windows 환경에서 WebtoB의 내부 프로세스간 통신을 할 때 사용하는 기본 포트 번호이다. |
-sndbuf <send-buffer-size> | TCP 소켓이나 Unix 도메인 소켓의 SO_SNDBUF를 설정한다. 0이면 OS의 기본값을 사용한다. |
-rcvbuf <receive-buffer-size> | TCP 소켓이나 Unix 도메인 소켓의 SO_RCVBUF를 설정한다. 0이면 OS의 기본값을 사용한다. |
예제
add-webtob-connector -server server1 -name webtob1 -num 10 -regid MyGroup -port 9999 -addr localhost
지정한 Entity(컨텍스트, 서블릿)에 대하여 요청 통계 자료를 초기화하여 카운터 기록을 재설정한다.
관련 스키마
web-engine.xsd
alias
clrstat, clst, clrwebstat
사용법
clear-web-statistics [-server <server-name>] [-ctx,--context <context-name>] [-servlet <servlet-name>]
파라미터
파라미터 | 설명 |
---|---|
[-ctx <context-name>] | 요청 횟수 및 처리 시간 기록을 삭제할 컨텍스트이다. |
[-servlet <servlet-name>] | 요청 횟수 및 처리 시간 기록을 삭제할 서블릿이다. |
예제
clear-web-statistic -server server1 -ctx ctx1
웹 엔진의 HTTP Cookie Policy 설정을 수정한다. 단, XML에만 반영하며 실제로 서비스에 적용하려면 서버를 재시작해야 한다.
관련 스키마
web-engine.xsd - web-engine/cookie-policy
alias
modcookie
사용법
modify-web-cookie-policy [-cluster <cluster-name> | -server <server-name>] [-auer,--apply-url-encoding-rule <apply-url-encoding-rule>] [-enc,--charset-encoding <charset-encoding>] [-vh <virtual-host-name>]
파라미터
파라미터 | 설명 |
---|---|
[-f, --forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-auer,--apply-url-encoding-rule <apply-url-encoding-rule>] | URL Encoding Rule 적용 여부를 수정한다. |
[-enc,--charset-encoding <charset-encoding>] | URL Encoding Rule을 적용할 때 사용하는 Charset Encoding을 수정한다. |
[-vh <virtual-host-name>] | 가상 호스트를 지정한다. |
예제
modify-web-cookie-policy -server server1 -auer false modify-web-cookie-policy -server server1 -enc UTF-8
웹 엔진의 Encoding을 수정한다. 단, XML에만 반영하며 실제로 서비스에 적용하려면 서버를 재시작해야 한다.
관련 스키마
web-engine.xsd - web-engine/encoding
alias
modenc
사용법
modify-web-encoding [-cluster <cluster-name> | -server <server-name>] [-f, --forceLock] <charset encoding> -co | -default | -forced [-url] [-req] [-res] [-vh <virtual-host-name>]
파라미터
파라미터 | 설명 |
---|---|
[-f, --forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
<charset encoding> | 수정할 Character Set Encoding 이름이다. 잘못된 값이 입력되면 오류가 출력되고 명령이 실패한다. |
-co | -default | -forced | 입력된 Encoding을 default로 설정할지 forced로 설정할지 결정한다. request encoding인 경우 두 설정 외에 client-override를 설정할 수 있다. |
[-url] | Request Url의 Character Set Encoding을 수정한다. |
[-req] | Request의 Character Set Encoding을 수정한다. |
[-res] | Response의 Character Set Encoding을 수정한다. |
[-vh <virtual-host-name>] | 가상 호스트를 지정한다. |
예제
modify-web-encoding -server server1 EUC-KR -forced -url modify-web-encoding -server server1 ISO-8859-1 -default -url -res -req
웹 엔진의 프로퍼티 설정을 수정한다. 수정되는 프로퍼티는 대소문자를 구별한다. 단, XML에만 반영하며 실제로 서비스에 적용하려면 서버를 재시작해야 한다.
관련 스키마
web-engine.xsd - web-engine/properties
alias
modwebpr
사용법
modify-web-properties [-cluster <cluster-name> | -server <server-name>] [-f, --forceLock] [-p,--properties <properties>] [-vh <virtual-host-name>]
파라미터
파라미터 | 설명 |
---|---|
[-f, --forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-p,--properties <properties>] | 수정할 웹 엔진의 프로퍼티를 설정한다.
|
[-vh <virtual-host-name>] | 가상 호스트를 지정한다. |
예제
modify-web-properties -server server1 -p jeus.servlet.jsp.compile-java-source-concurrently=false
웹 엔진의 Response Header 설정을 수정한다. 수정되는 Response Header는 대소문자를 구별하지 않는다. 단, XML에만 반영하며 실제로 서비스에 적용하려면 서버를 재시작해야 한다.
관련 스키마
web-engine.xsd - web-engine/response-header
alias
modwebrh
사용법
modify-response-header [-cluster <cluster-name> | -server <server-name>] [-f, --forceLock] [-n,--name <header-name>] [-v,--value <header-value>]
파라미터
파라미터 | 설명 |
---|---|
[-f, --forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-n,--name <header-name>] | 수정할 HTTP Response Header의 이름을 설정한다. 입력값은 대소문자를 구별하지 않는다. 같은 이름의 Header는 1개만 허용된다. |
[-v,--value <header-value>] | 수정할 HTTP Response Header의 값을 설정한다. 입력값은 대소문자를 구별하지 않는다. |
예제
modify-response-header -server server1 -n testheader -v testvalue3
웹 엔진의 JSP 엔진 설정을 수정한다. 단, XML에만 반영하며 실제로 서비스에 적용하려면 서버를 재시작해야 한다.
관련 스키마
web-engine.xsd - web-engine/jsp-engine
alias
modjsp
사용법
modify-jsp-engine [-cluster <cluster-name> | -server <server-name>] [-f, --forceLock] [-rjwd,--remove-jsp-work-dir | -jwd,--jsp-work-dir <jsp-work-dir>] [-javac,--java-compiler <java-compiler>] [-cod,--compile-output-dir <compile-output-dir> | -rcod,--remove-compile-output-dir] [-rcopt,--remove-compile-option | -copt,--compile-option <compile-option>] [-renc,--remove-compile-encoding | -enc,--compile-encoding <compile-encoding>] [-cij,--check-included-jspfile <check-included-jspfile>] [-kg,--keep-generated <keep-generated>] [-gjr,--graceful-jsp-reloading <graceful-jsp-reloading>] [-gjrp,--graceful-jsp-reloading-period <graceful-jsp-reloading-period>] [-umc,--use-in-memory-compilation <use-in-memory-compilation>]
파라미터
파라미터 | 설명 |
---|---|
[-f, --forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-rjwd,--remove-jsp-work-dir | -jwd,--jsp-work-dir <jsp-work-dir>] | -jwd,--jsp-work-dir <jsp-work-dir>을 이용하여 JSP를 Java로 생성한 파일과 그 소스 파일을 컴파일한 클래스 파일들이 저장되는 위치를 설정한다. 이때 설정값은 절대 경로로 입력해야한다. -rjwd,--remove-jsp-work-dir을 이용하여 설정을 삭제할 수 있다. 삭제할 경우 엔진의 내부 기본값이 사용된다. |
[-javac,--java-compiler <java-compiler>] | JSP의 Java 소스를 서블릿 클래스 파일로 컴파일하기 위한 Java 컴파일러를 지정한다. 다음 중에 하나를 설정한다.
각 값들에 대한 설명은 스키마를 참고한다. 기본값으로 설정하는 것이 가장 효율적이기 때문에 별도의 설정을 하지 않는 것을 권장한다. |
[-cod,--compile-output-dir <compile-output-dir> | -rcod,--remove-compile-output-dir] | -cod,--compile-output-dir <compile-output-dir>를 이용하여 JSP 파일에 의해 생성된 클래스 파일들을 JSP Work Dir 디렉터리가 아닌 다른 디렉터리에 저장할 수 있는 설정할 수 있다. 설정하지 않으면 클래스 파일들은 JSP Work Dir 디렉터리에 위치한다. -rcod,--remove-compile-output-dir을 이용하여 설정을 삭제할 수 있다. 삭제할 경우 엔진의 내부 기본값이 사용된다. |
[-rcopt,--remove-compile-option | -copt,--compile-option <compile-option>] | -copt,--compile-option <compile-encoding>을 이용하여 서블릿 컴파일러로 사용되는 옵션을 설정한다. -rcopt,--remove-compile-option을 이용하여 설정한 값을 삭제할 수 있다. |
[-renc,--remove-compile-encoding | -enc,--compile-encoding <compile-encoding>] | -enc,--compile-encoding <compile-encoding>을 이용하여 JSP 파일들이 Parsing되어 생성된 서블릿 소스 파일을 컴파일할 때 Encoding 옵션에 지정하는 값을 설정한다. -renc,--remove-compile-encoding을 이용하여 설정된 Encoding을 삭제할 수 있다. |
[-cij,--check-included-jspfile <check-included-jspfile>] | JSP 파일의 변경 여부를 확인할 때 include된 JSP 파일들, Tag 파일들의 변경 여부를 확인해서 변경된 경우 해당 JSP 파일을 재컴파일하는 기능의 사용 여부를 설정한다. |
[-kg,--keep-generated <keep-generated>] | JSP 페이지로부터 생성된 Java 소스 파일을 컴파일하여 서블릿 클래스 파일을 생성한 이후에 Java 소스 파일의 저장 여부를 결정한다. |
[-gjr,--graceful-jsp-reloading <graceful-jsp-reloading>] | JSP 소스와 컴파일된 클래스 파일이 공유되고 있고, 하나의 JVM에서 exclusive하고 JSP 파일을 배치 형태의 Java 파일로 변환하여 컴파일할 것을 설정한다. JSP Work Dir 설정에 의해 공유되는 폴더가 지정되어 있는 경우에 한해서 동작한다. |
[-gjrp,--graceful-jsp-reloading-period <graceful-jsp-reloading-period>] | Graceful JSP reloading이 동작되는 주기를 설정한다. |
[-umc,--use-in-memory-compilation <use-in-memory-compilation>] | 서비스 중인 JSP 파일을 새로 컴파일해야 할 때 .java 및 .class 파일을 메모리 상에 생성해서 컴파일하는 기능을 설정한다. 단, .class 파일의 경우에는 추후 리부팅할 때에 재컴파일하는 일이 없도록 Background thread를 통해서 파일 시스템에 쓴다. 또한 <keep-generated>>가 true인 경우에는 .java 파일을 Background thread를 통해서 파일 시스템에 쓴다. |
예제
modify-jsp-engine -server server1 -jwd /home/jeus/jsp
Tmax 커넥터의 Thread Pool 설정 등을 변경한다. 단, 운영 중인 Thread Pool의 Thread 수가 바로 변하는 것은 아니고 Thread Pool 체크 주기에 의해서 변한다.
관련 스키마
web-engine.xsd - web-engine/web-connections/tmax-connector
alias
modtmaxcon
사용법
modify-tmax-connector [-cluster <cluster-name> | -server <server-name>] [-f, --forceLock] -name <web-connection-name> [-tmin <minimum-thread-num>] [-tmax <maximum-thread-num>] [-tidle <max-idle-time>] [-obuf <output-buffer-size>] [-addr <server-address>] [-port <server-port>] [-svrg <server-group-name>] [-svr <server-name>]
파라미터
파라미터 | 설명 |
---|---|
[-f, --forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
-name <web-connection-name> | Tmax 커넥터의 이름이다. |
[-tmin <minimum-thread-num>] | [동적 변경] Thread Pool의 최소 Thread 수이다. |
[-tmax <maximum-thread-num>] | [동적 변경] Thread Pool의 최대 Thread 수이다. |
[-tidle <max-idle-time>] | Thread Pool의 Thread별 유후 대기 시간이다. |
[-obuf <output-buffer-size>] | 서블릿 응답 버퍼 크기다. |
[-addr <server-address>] | Tmax 서버 주소이다. |
[-port <server-port>] | Tmax 서버 포트 번호이다. |
[-svrg <server-group-name>] | Tmax 서버의 서버 그룹 이름이다. |
[-svr <server-name>] | Tmax 서버의 이름이다. |
예제
modify-tmax-connector -name tmax1 -tmin 30 -server server1 -tmax 30
가상 호스트의 액세스 로그 포맷 설정을 변경한다. 만약 가상 호스트의 액세스 로그가 enable 상태가 아닐 경우 실제로 서비스에 적용하려면 서버를 재시작해야 한다.
관련 스키마
web-engine.xsd - web-engine/virtual-host
alias
modvh
사용법
modify-virtual-host [-cluster <cluster-name> | -server <server-name>] [-f, --forceLock] <virtual-host-name> [-aluph <access-log-use-parent-handler (true/false)>| -alf <access-log-format> | -aluse <use-access-log (true/false)> | -alhnl <access-log-enable-host-name-lookup> | -alext <access-log-excluded-extensions>] [-hnrm <host-name> | -hnadd <host-name>] [-ast <attach-stacktrace-on-error>]
파라미터
파라미터 | 설명 |
---|---|
[-f, --forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
<virtual-host-name> | 가상 호스트의 이름이다. |
-aluph <access-log-use-parent-handler > | [동적 변경] 웹 엔진 액세스 로그에 남길지 여부를 지정한다. (true | false 또는 t | f) |
[-alf <access-log-format>] | [동적 변경] 액세스 로그 포맷이다. 중간에 스페이스 문자가 있는 경우 큰따옴표(" ")로 감싸야 한다. 포맷에 관한 자세한 사항은 “JEUS Web Engine 안내서”의 절 1.6.10. “액세스 로그의 포맷 설정”을 참고한다. |
-aluse <use-access-log> | [동적 변경] 액세스 로그 사용 여부를 지정한다. (true | false 또는 t | f) |
-alhnl <access-log-enable-host-name-lookup> | [동적 변경] %h 포맷에 대해 로깅할 때 IP 주소에 대한 DNS Resolution 여부를 결정한다. (true | false 또는 t | f) |
-alext <access-log-excluded-extentions> | [동적 변경] 액세스 로그에 남기지 않을 확장자를 설정한다. .gif, .jpg와 같이 여러 개를 설정하는 경우 콤마(,)를 사용한다. 설정하지 않는 경우 콤마만 입력한다. |
-hnrm <host-name> | 가상 호스트에 등록된 호스트 이름을 제거한다. |
-hnadd <host-name> | 가상 호스트에 새로운 호스트 이름을 등록한다. |
[-ast <attach-stacktrace-on-error>] | JEUS에서 보내주는 에러 페이지에 Stack Trace를 첨부할지 여부를 설정한다. |
예제
modify-virtual-host -server server1 vhost1 -alf "common %I"
웹 엔진 설정을 동적으로 변경한다. 이 명령은 실제로 서비스 운영 중에도 반영되는 설정만 변경을 제공한다. 변경 가능한 정보는 모니터링 주기, 액세스 로그 포맷이다.
관련 스키마
web-engine.xsd - web-engine
alias
setwebcfg, setwebconf, set-web-engine-configuration, modwebcfg, modwebconf
사용법
modify-web-engine-configuration [-cluster <cluster-name> | -server <server-name>] [-f, --forceLock] [-tpp <monitoring/check-thread-pool>] [-crp <monitoring/check-class-reload>] [-sp <monitoring/check-session>] [-alf <access-log-format>] [-aluse <use-access-log>] [-alhnl <access-log-enable-host-name-lookup>] [-alext <access-log-excluded-extensions>] [-ast <attach-stacktrace-on-error>] [-att <async-timeout-min-threads>] [-rerp | -erp <default-error-page>]
파라미터
파라미터 | 설명 |
---|---|
[-f, --forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-tpp <monitoring/check-thread-pool>] | Thread Pool 체크 주기이다. |
[-crp <monitoring/check-class-reload>] | 웹 컨텍스트 리로드 체크 주기이다. |
[-sp <monitoring/check-session>] | 세션 체크 주기이다. |
[-alf <access-log-format>] | [동적 변경] 액세스 로그 포맷이다. 중간에 스페이스 문자가 있는 경우 큰따옴표(" ")로 감싸야 한다. 포맷에 관한 자세한 사항은 “JEUS Web Engine 안내서”의 절 1.6.10. “액세스 로그의 포맷 설정”을 참고한다. |
[-aluse <use-access-log >] | [동적 변경] 액세스 로그 사용 여부를 지정한다. (true | false 또는 t | f) |
[-alhnl <access-log-enable-host-name-lookup>] | [동적 변경] %h 포맷에 대해 로깅할 때 IP 주소에 대한 DNS Resolution 여부를 결정한다. (true | false 또는 t | f) |
[-alext <access-log-excluded-extentions>] | [동적 변경] 액세스 로그에 남기지 않을 확장자를 설정한다. .gif, .jpg와 같이 여러 개를 설정하는 경우 콤마(,)를 사용한다. 설정하지 않는 경우 콤마만 입력한다. |
[-ast <attach-stacktrace-on-error>] | JEUS에서 보내주는 에러 페이지에 Stack Trace를 첨부할지 여부를 설정한다. |
[-att <async-timeout-min-threads>] | Servlet 3.0의 Asynchronous Servlet를 사용할 경우 타임아웃 처리를 하기 위한 Thread Pool의 최소 개수를 설정한다. 0이면 타임아웃이 제대로 동작하지 않을 수 있으므로 항상 1 이상으로 설정해야 한다. |
[-rerp | -erp <default-error-page>] | -erp <default-error-page>을 이용하여 웹 애플리케이션에 별도의 에러 페이지를 설정하지 않은 경우에 사용하는 에러 페이지를 설정한다. 정적인 페이지(HTML, HTM)만 설정할 수 있으며, 절대 경로여야 한다. -rerp를 이용하여 설정을 삭제할 수 있다. |
예제
[-alf <access-log-format>] 옵션을 사용한 예
modify-web-engine-configuration -server server1 -alf "common %I" modify-web-engine-configuration -server server1 -alf "%h %l %u %t \"%r\" %>s %b"
[-aluse <use-access-log >] 옵션을 사용한 예
modify-web-engine-configuration -server server1 -aluse false
[-alext <access-log-excluded-extentions>] 옵션을 사용한 예
modify-web-engine-configuration -server server1 -alext .gif modify-web-engine-configuration -server server1 -alext .gif,.jpg
[-alext <access-log-excluded-extentions>] 옵션을 사용해서 기존의 extension 정보를 없애는 예
modify-web-engine-configuration -server server1 -alext ,
[-tpp <monitoring/check-thread-pool>], [-crp <monitoring/check-class-reload>], [-sp <monitoring/check-session>] 옵션을 사용한 예
modify-web-engine-configuration -tpp 10000 -crp 20000 -server server1 -sp 25000
[-ast <attach-stacktrace-on-error>] 옵션을 사용한 예
modify-web-engine-configuration -server server1 -ast true
[-att <async-timeout-min-threads>] 옵션을 사용한 예
modify-web-engine-configuration -server server1 -att 10
[-rerp | -erp <default-error-page>] 옵션을 사용한 예
modify-web-engine-configuration -server server1 -erp /home/jeus/error/error.html
HTTP, TCP, AJP 리스너의 Thread Pool 설정 등을 변경한다. 단, 운영 중인 Thread Pool의 Thread 수가 바로 변하는 것은 아니고 Thread Pool 체크 주기에 의해서 변한다.
관련 스키마
web-engine.xsd - web-engine/web-connections/http-listener, ajp13-listener, tcp-listener
alias
modwebl
사용법
modify-web-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>] [-tauto <enable-auto-tuning>] [-tlimit <thread-num-limit>] [-obuf <output-buffer-size>] [-http2 <enable-http2>]
파라미터
파라미터 | 설명 |
---|---|
[-f, --forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
-name <web-connection-name> | 리스너의 이름이다. |
[-tmin <minimum-thread-num> ] | [동적 변경] Thread Pool의 최소 Thread 수이다. |
[-tmax <maximum-thread-num>] | [동적 변경] Thread Pool의 최대 Thread 수이다. |
[-tidle <max-idle-time>] | Thread Pool의 각 Thread별 최대 유휴 시간이다. |
[-tauto <enable-auto-tuning>] | Auto Tuning을 사용할지 결정한다. 이 옵션을 사용하면 min, max 설정을 해도 적용되지 않는다. HTTP 리스너에만 적용된다. |
[-tlimit <thread-num-limit>] | Auto Tuning을 사용할 경우 Thread 수의 한계를 설정한다. |
-obuf <output-buffer-size> | 서블릿이 사용하는 응답 버퍼 크기다. |
[-http2 <enable-http2>] | 리스너가 http2를 사용/미사용할지 결정한다. HTTP 리스너에만 해당된다. |
예제
modify-web-listener -name http1 -tmin 30 -server server1 -tmax 30 modify-web-listener -name ajp1 -server server1 -tmin 20 modify-web-listener -name tcp1 -server server1 -tmax 25
WebtoB 커넥터의 Thread Pool 설정 등을 변경한다. 단, 운영 중인 Thread Pool의 Thread 수가 바로 변하는 것은 아니고 Thread Pool 체크 주기에 의해서 변한다.
관련 스키마
web-engine.xsd - web-engine/web-connections/webtob-connector
alias
modwebtobcon
사용법
modify-webtob-connector [-cluster <cluster-name> | -server <server-name>] [-f,--forceLock] -name <web-connection-name> [-num <thread-number>] [-obuf <output-buffer-size>] [-ver <wjp-version>] [-addr <server-address>] [-port <server-port> | -dsocket] [-wbhome <webtob-home>|-ipcport <ipc-base-port>] [-regid <registration-id>] [-sndbuf <send-buffer-size> ] [-rcvbuf <receive-buffer-size> ]
파라미터
파라미터 | 설명 |
---|---|
[-f, --forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
-name <web-connection-name> | WebtoB 커넥터의 이름이다. |
-num <thread-number> | [동적 변경] Thread Pool의 Thread 수이다. 현재 Thread 숫자보다 낮게 설정한 경우 active한 Thread가 종료될 수 있 때문에 요청 처리가 있는 경우에는 사용하지 않도록 권고한다. |
[-obuf <output-buffer-size>] | 서블릿 응답 버퍼 크기다. |
-ver <wjp-version> | WebtoB와 통신할 때 사용하는 프로토콜 버전을 나타낸다. 1 또는 2를 입력한다. |
-addr <server-address> | WebtoB 서버 주소이다. -port 사용할 때 필수 옵션이다. |
-port <server-port> | WebtoB 서버 포트 번호이다. |
-regid <registration-id> | WebtoB와의 등록 ID 이다. |
-dsocket | Unix 도메인 소켓(Pipe)을 이용하여 JEUS와 WebtoB 사이에 통신을 한다. |
-wbhome <webtob-home> | JEUS와 WebtoB가 같은 장비 안에 설치되어 있을 경우 WebtoB가 설치된 절대 경로이다. |
-ipcport <ipc-base-port> | Windows 환경에서 WebtoB의 내부 프로세스간 통신을 할 때 사용하는 기본 포트 번호이다. |
-sndbuf <send-buffer-size> | TCP 소켓이나 Unix 도메인 소켓의 SO_SNDBUF를 설정한다. 0이면 OS의 기본값을 사용한다. |
-rcvbuf <receive-buffer-size> | TCP 소켓이나 Unix 도메인 소켓의 SO_RCVBUF를 설정한다. 0이면 OS의 기본값을 사용한다. |
예제
modify-webtob-connector -name webtob1 -num 30 -sndbuf 1200 -rcvbuf 2400 -server server1
deploy된 웹 컨텍스트의 JSP 파일들을 미리 컴파일한다.
JSP 파일은 보통 웹 브라우저로부터 JSP 파일에 대한 요청이 웹 엔진에 올 때 컴파일된다. 그리하여 JSP 파일에 대한 초기 요청은 많은 파싱과 컴파일 작업을 통해 많은 리소스를 소모하여 응답시간이 길어진다.
개발된 JSP 파일이 많고, 사용자 요구가 빈번한 웹사이트이면 "초기 요청 수행"에 소요되는 시간이나 리소스가 서비스에 크게 영향을 미칠 수 있다. 이런 경우에는 개발된 JSP 소스 파일들을 웹 엔진이 시작해서 서비스가 시작되기 전에 precompile-jsp 명령으로 컴파일을 수행하면 문제를 해결할 수 있다.
precompile-jsp는 JEUS가 부팅된 상태에서 deploy된 모듈에 한해 컴파일을 수행한다. JEUS가 부팅되지 않은 상태에서 사전 컴파일을 수행하기 위해서는 “4.3. appcompiler”를 사용해야 한다.
1. precompile-jsp는 웹 엔진의 다른 명령어와는 다르게 클러스터를 옵션으로 사용하지 않는다.
2. JEUS 6까지는 jspc라는 명령어로 JEUS_HOME/bin 밑에 따로 존재한 배치 컴파일러를 JEUS 7부터는 jeusadmin의 내부 명령어로 통합하였다.
관련 스키마
web-engine.xsd
alias
jspc
사용법
precompile-jsp [-server <server-name>] -ctx <context-name> [-e <excluded-jsp-list-file> | -l <included-jsp-list-file>]
파라미터
파라미터 | 설명 |
---|---|
-ctx <context-name> | 웹 컨텍스트 이름을 설정한다. EAR 안에 있는 경우 ear-name#context-name으로 입력한다. |
[-e <excluded-jsp-list-file>] | 웹 컨텍스트를 기준으로 컴파일하지 않을 path들을 기술한 텍스트 파일을 지정한다. JSP path들은 Context Root에 대한 상대 경로를 가져야 하며 반드시 슬래시( / )로 시작해야 한다. jsp-list-file의 위치는 시스템 절대 경로로 지정한다. |
[-l <included-jsp-list-file>] | 웹 컨텍스트를 기준으로 컴파일할 path들을 기술한 텍스트 파일을 지정한다. JSP path들은 Context Root에 대한 상대 경로를 가져야 하며 반드시 슬래시( / )로 시작해야 한다. jsp-list-file의 위치는 시스템 절대 경로로 지정한다. |
예제
precompile-jsp -server server1 -ctx myctx
참고
본 명령어는 서버에 접속하지 않은 상태에서도 사용할 수 있다.
디스크로부터 지정한 Entity(웹 컨텍스트)를 reload한다. 이미 로드된 서블릿(JSP)들과 클래스들을 Reload한다. 이 명령어는 서블릿이나 클래스의 reload 기능이 비활성화되어 있을 경우 유용하게 사용할 수 있다(enable-reload, check-class-reload).
관련 스키마
jeus-web-dd.xsd
alias
webreload, reloadctx
사용법
reload-web-context [-cluster <cluster-name> | -server <server-name>] -ctx <context-name>
파라미터
파라미터 | 설명 |
---|---|
-ctx <context-name> | reload하려는 컨텍스트이다. 값이 반드시 설정되어야 한다. |
예제
reload-web-context -server server1 -ctx servlets-examples
웹 엔진의 HTTP Cookie Policy 설정을 삭제한다. 단, XML에만 반영하며 실제로 서비스에 적용하려면 서버를 재시작해야 한다.
관련 스키마
web-engine.xsd - web-engine/cookie-policy
alias
rmcp, rmcookie
사용법
remove-web-cookie-policy [-cluster <cluster-name> | -server <server-name>] [-f,--forceLock] [-auer,--apply-url-encoding-rule] [-enc,--charset-encoding] [-vh <virtual-host-name>]
파라미터
파라미터 | 설명 |
---|---|
[-f, --forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-auer,--apply-url-encoding-rule] | URL Encoding Rule 적용 여부를 삭제한다. |
[-enc,--charset-encoding] | URL Encoding Rule을 적용할 때 사용하는 Charset Encoding을 삭제한다. |
[-vh <virtual-host-name>] | 가상 호스트를 지정한다. |
예제
remove-web-cookie-policy -server server1 -auer
웹 엔진의 Encoding을 삭제한다. 단, XML에만 반영하며 실제로 서비스에 적용하려면 서버를 재시작해야 한다.
관련 스키마
web-engine.xsd - web-engine/encoding
alias
rmenc
사용법
remove-web-encoding [-cluster <cluster-name> | -server <server-name>] [-f,--forceLock] [-url] [-req] [-res] [-vh <virtual-host-name>]
파라미터
파라미터 | 설명 |
---|---|
[-f, --forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-url] | Request URL의 Character Set Encoding을 삭제한다. |
[-req] | Request의 Character Set Encoding을 삭제한다. |
[-res] | Response의 Character Set Encoding을 삭제한다. |
[-vh <virtual-host-name>] | 가상 호스트를 지정한다. |
예제
remove-web-encoding -server server1 -url remove-web-encoding -server server1 -req -res
웹 엔진의 프로퍼티 설정을 삭제한다. 삭제되는 프로퍼티는 대소문자를 구별한다. 단, XML에만 반영하며 실제로 서비스에 적용하려면 서버를 재시작해야 한다.
관련 스키마
web-engine.xsd - web-engine/properties
alias
rmwebpr
사용법
remove-web-properties [-cluster <cluster-name> | -server <server-name>] [-f,--forceLock] [-a,--all | -k,--keys <keys>] [-vh <virtual-host-name>]
파라미터
파라미터 | 설명 |
---|---|
[-f, --forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-a,--all | -k,--keys <keys>] |
|
[-vh <virtual-host-name>] | 가상 호스트를 지정한다. |
예제
remove-web-properties -server server1 -k jeus.servlet.jsp.compile-java-source-concurrently1 remove-web-properties -server server1 -a
웹 엔진의 Response Header 설정을 삭제한다. 삭제되는 Response Header는 대소문자를 구별하지 않는다. 단, XML에만 반영하며 실제로 서비스에 적용하려면 서버를 재시작해야 한다.
관련 스키마
web-engine.xsd - web-engine/response-header
alias
rmwebrh
사용법
remove-response-header [-cluster <cluster-name> | -server <server-name>] [-f,--forceLock] [-a,--all | -n,--name <header-name>]
파라미터
파라미터 | 설명 |
---|---|
[-f, --forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-a,--all | -n,--name <header-name>] |
|
예제
remove-response-header -server server1 -n testheader remove-response-header -server server1 -n testheader2,testheader4 remove-response-header -server server1 -a
Tmax 커넥터를 삭제한다. 단, XML에만 반영하며 실제로 서비스에 적용하려면 서버를 재시작해야 한다.
관련 스키마
web-engine.xsd - web-engine/web-connections/tmax-connector
alias
rmtmaxcon
사용법
remove-tmax-connector [-cluster <cluster-name> | -server <server-name>] [-f,--forceLock] <web-connection-name>
파라미터
파라미터 | 설명 |
---|---|
[-f, --forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
<web-connection-name> | Tmax 커넥터의 이름이다. |
예제
remove-tmax-connector -server server1 tmax1
가상 호스트를 삭제한다. 단, XML에만 반영하며 실제로 서비스에 적용하려면 서버를 재시작해야 한다.
관련 스키마
web-engine.xsd - web-engine/virtual-host
alias
rmvh
사용법
remove-virtual-host [-cluster <cluster-name> | -server <server-name>] [-f,--forceLock] <virtual-host-name>
파라미터
파라미터 | 설명 |
---|---|
[-f, --forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
<virtual-host-name> | 가상 호스트의 이름이다. |
예제
remove-virtual-host -server server1 host2
HTTP, TCP, AJP 리스너를 삭제한다. 단, XML에만 반영하며 실제로 서비스에 적용하려면 서버를 재시작해야 한다. ADMIN-HTTP 리스너는 삭제되지 않는다.
관련 스키마
web-engine.xsd - web-engine/web-connections/http-listener, ajp13-listener, tcp-listener
alias
rmwebl
사용법
remove-web-listener [-cluster <cluster-name> | -server <server-name>] [-f,--forceLock] <web-connection-name>
파라미터
파라미터 | 설명 |
---|---|
[-f, --forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
<web-connection-name> | 리스너의 이름이다. |
예제
remove-web-listener -server server1 http1
WebtoB 커넥터를 삭제한다. 단, XML에만 반영하며 실제로 서비스에 적용하려면 서버를 재시작해야 한다.
관련 스키마
web-engine.xsd - web-engine/web-connections/webtob-connector
alias
rmwebtobcon
사용법
remove-webtob-connector [-cluster <cluster-name> | -server <server-name>] [-f,--forceLock] <web-connection-name>
파라미터
파라미터 | 설명 |
---|---|
[-f, --forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
<web-connection-name> | WebtoB 커넥터의 이름이다. |
예제
remove-webtob-connector -server server1 webtob1
일시 중지된 웹 컴포넌트(서블릿)를 재시작한다.
JEUS 6에서는 명령어 webresume과 webtob -r 명령어로 분리되어있던 것을 JEUS 7부터 통합하였다. 또한 JEUS 7부터 웹 컨텍스트에 대한 시작 명령은 별도로 제공되지 않는다. DAS의 start-application를 사용해서 제어해야 한다.
관련 스키마
web-engine.xsd - web-engine/web-connections
alias
webresume
사용법
resume-web-component [-cluster <cluster-name> | -server <server-name>] [-ctx,--context <context>] -svl,--servlet <servlet> ]
파라미터
파라미터 | 설명 |
---|---|
[-ctx, --context <context>] | 시작할 서블릿이 포함된 웹 컨텍스트를 설정해야 한다. 반드시 -svl 옵션과 함께 설정해야 한다. application-information -type 옵션을 사용한 명령어를 사용한 조회 결과 중 Module Name에 해당하는 값을 <context>에 설정한다. |
[-svl,--servlet <servlet>] | 중지된 서블릿 중에서 다시 시작할 서블릿이다. 컨텍스트 옵션이 설정되어 있어야 한다. |
예제
[-svl,--servlet <servlet>] 옵션을 사용한 예
resume-web-component -server server1 -ctx servlets -svl CookieExample
URL 패턴이나 특정 호스트 이름으로 들어온 요청의 처리 흐름을 조회한다.
관련 스키마
web-app_3_0.xsd
alias
reqflow
사용법
show-request-processing-flow [-cluster <cluster-name> | -server <server-name>] -path <url-pattern> [-hostname <host-name>]
파라미터
파라미터 | 설명 |
---|---|
-path <url-pattern> | 슬래시( / )로 시작하는 URL 패턴이다. |
[-hostname <host-name>] | HTTP Host Header에 명시된 호스트 이름이다. |
예제
show-request-processing-flow -server server1 -path /test/index.jsp show-request-processing-flow -server server1 -path /test -hostname examples.com
웹 엔진에 대한 설정 정보를 조회한다. 이 명령어를 실행하여 조회되는 구성 항목과 필드들에 대한 정보는 XML의 웹 엔진 구성 레퍼런스를 참고한다.
출력 항목 중 빈 칸으로 표시되는 항목은 XML에 실제 설정이 되어 있지 않음을 의미한다. 즉, 값이 표시되어 있는 경우가 실제 설정되어 있거나, 기본값이 있는 설정이다.
관련 스키마
web-engine.xsd - web-gine
alias
webcfg, webconf, showwebcfg, showwebconf
사용법
show-web-engine-configuration [-cluster <cluster-name> | -server <server-name>] [-vh,--virtual host] [-cn,--web-connections <connection-type>] [-al,--access-log] [-sc,--session-config] [-rh,--response-header] [-mo,--monitoring] [-enc,--encoding] [-cp,--cookie-policy] [-jsp,--jsp-engine] [-pr,--properties] [-erp,--error-page] [-att,--async-timeout_thread] [-ast,--attach-stacktrace]
파라미터
파라미터 | 설명 |
---|---|
[-vh,--virtual host] | 가상 호스트의 설정 정보를 출력한다. |
[-cn,--web-connections <connection-type>] | 모든 웹 커넥션의 설정 정보를 출력한다. 인자를 줄 경우 해당 타입의 커넥션 설정 정보만 출력한다. |
[-al,--access-log] | 액세스 로그의 설정 정보를 출력한다. |
[-sc,--session-config] | 웹 엔진의 세션 설정 정보를 출력한다. |
[-rh,--response-header] | 응답 헤더의 설정 정보를 출력한다. |
[-mo,--monitoring] | 웹 엔진 모니터링의 설정 정보를 출력한다. |
[-enc,--encoding] | 웹 엔진의 인코딩 설정 정보를 출력한다. |
[-cp,--cookie-policy] | 쿠키의 정책 설정 정보를 출력한다. |
[-jsp,--jsp-engine] | JSP 엔진의 설정 정보를 출력한다. |
[-pr,--properties] | 웹 엔진 프로퍼티의 설정 정보를 출력한다. |
[-erp,--error-page] | 웹 엔진의 기본 오류 페이지 설정 정보를 출력한다. |
[-att,--async-timeout_thread] | 비동기 서블릿의 타임아웃을 처리하는 Thread 설정 정보를 출력한다. |
[-ast,--attach-stacktrace] | 오류가 발생할 때 Stack Trace의 추가 여부 설정 정보를 출력한다. |
예제
웹 엔진 설정 모두 조회
show-web-engine-configuration -server server1
옵션별 웹 엔진 설정 조회
show-web-engine-configuration -erp -att -server server1 show-web-engine-configuration -server server1 -sc
구동 중인 웹 엔진의 JVM에서 사용하는 메모리 정보, 웹 엔진에 속해 있는 각 리스너/커넥터에 대한 Thread Pool의 상태, 컨텍스트에 대한 요청 횟수 및 처리시간 등의 정보를 파라미터 설정에 따라 조회한다.
관련 스키마
web-engine.xsd
alias
webstats, stat, st
사용법
show-web-statistics [-server <server-name>] [-ctx,--context <context-name>] [-t,--thread | -s,--session | -r,--request |-m,--memory]
파라미터
파라미터 | 설명 |
---|---|
[-t,--thread] | 웹 엔진에 속해 있는 각각의 리스너에 대한 Thread Pool의 상태를 조회한다. 조회되는 정보는 현재 할당된 Worker Thread의 수와 Wait-Queue에 적체된 클라이언트의 수 그리고 Thread Pool을 유지하는 최대 Thread의 개수를 포함한다. |
[-s,--session] | 웹 엔진에 구성된 세션 서버의 커넥션에 대한 정보를 출력한다. 정보는 현재 연결되어 있는 세션 서버의 이름, 전체 세션의 수, Pool에서 사용된 세션 서버와 커넥션의 수를 포함한다. |
[-r,--request] | 각 컨텍스트에 대해 처리된 요청의 누적 수치와 평균 처리시간을 출력한다. |
[-m,--memory] | 구동 중인 웹 엔진에서 현재 JVM에서 사용하고 있는 메모리의 상태를 조회한다. |
예제
## 리스너 스레드 풀 정보 조회 show-web-statistics -server server1 -t ## 세션 서버 정보 확인 show-web-statistics -server server1 -s
지정한 서블릿을 중지하여 클라이언트로 에러 페이지를 보여주도록 한다.
JEUS 6에서는 websuspend과 webtob -s 명령어로 분리되어있던 것을 JEUS 7부터 통합하였다. 또한 JEUS 7부터 웹 컨텍스트에 대한 중지 명령은 별도로 제공되지 않는다. DAS의 stop-application을 사용해서 제어해야 한다.
관련 스키마
web-engine.xsd - web-engine/web-connections
alias
websuspend
사용법
suspend-web-component [-cluster <cluster-name> | -server <server-name>] [-ctx,--context <context>] -svl,--servlet <servlet>]
파라미터
파라미터 | 설명 |
---|---|
[-ctx, --context <context>] | 중지할 서블릿이 포함된 웹 컨텍스트를 설정해야한다. 반드시 -svl 옵션과 함께 설정해야 한다. application-information -type 옵션을 이용한 명령어를 사용한 조회 결과 중 Unique Module Name에 해당하는 값을 <context>에 설정한다. |
[-svl,--servlet <servlet>] | 시작된 서블릿 중에서 중지할 서블릿이다. 컨텍스트 옵션이 설정되어 있어야 한다. |
예제
[-svl,--servlet <servlet>] 옵션을 사용한 예
suspend-web-component -svl CookieExample -server server1 -ctx servlets
세션 명령어를 2가지로 구분하여 설명한다.
모니터링 및 제어
세션 상태를 확인하거나 제어하기 위한 명령들이다.
명령어 | 설명 |
---|---|
list-session | idle 시간 기준으로 정렬된 세션들의 정보를 보여준다. |
remove-session | 세션 타임아웃과 무관하게 입력한 타임아웃 동안 access가 없는 세션들을 제거하고자 할 때 사용한다. |
설정 변경 관련 명령어
세션 설정을 추가, 삭제, 수정할 수 있는 명령들이다. 설정 변경 사항들은 XML에는 적용하지만 실제 운영 중인 서비스(메모리 영역)에 적용하지 않는다. XML만 변경되는 것이며 실제로 서비스에 적용하려면 서버를 재시작해야 한다.
명령어 | 설명 |
---|---|
show-session-configuration | 세션 관련 설정 정보를 확인한다. |
modify-session-configuration | 세션 관련 설정 정보를 확인하고 수정한다. |
다음은 세션 관련 명령어에서 공통적으로 적용되는 옵션에 대한 설명이다. 아래 옵션 중 하나만 설정될 수 있다.
[-cluster <cluster_name> ] 옵션
각 명령어가 적용될 클러스터를 지정할 때 사용하는 옵션이다. 옵션을 설정하지 않으면 현재 접속된 서버의 웹 엔진으로 적용된다.
각 명령어의 옵션 설명에서 이 옵션에 대한 설명은 생략한다.
[-server <server_name> ] 옵션
각 명령어가 적용될 서버를 지정할 때 사용하는 옵션이다. 옵션을 설정하지 않으면 현재 접속된 서버의 웹 엔진으로 적용된다.
각 명령어의 옵션 설명에서 이 옵션에 대한 설명은 생략한다.
1. 서버에 즉시 반영이 안되는 설정의 경우 즉, Pending된 설정이 최초의 설정으로 재설정되는 명령을 수행하면, 서버의 재시작이 필요하다는 안내문(Restart the Server)이 출력되지 않는다.
2. DAS의 경우는 위 옵션 중 하나는 반드시 필요하다. 그렇지만 DAS가 아닌 일반 관리 서버에서 해당 명령을 실행할 경우에는 아래 옵션들이 없을 경우 접속한 서버를 기반으로 명령이 수행된다.
idle 시간 기준으로 정렬된 세션들의 정보를 보여준다..
관련 스키마
jeus-session-server.xsd, jeus-session-domain.xsd
alias
lisession, lss
사용법
list-session [-server <server-name>] [-s,--simple ] [-c,--count <int count: default=100>] [-t,--target <String managerName>]
파라미터
파라미터 | 설명 |
---|---|
[-s,--simple ] | 출력되는 결과를 Simple format으로 출력한다. |
[-c,--count <int count: default=100>] | 모니터링으로 확인될 세션들의 갯수를 설정한다. 생략하면 100개가 기본으로 적용된다. |
[-t,--target <String managerName>] | 세션 정보를 보고 싶은 타겟 세션 매니저를 설정한다. 옵션을 주지 않을 경우 서버 내 모든 매니저의 정보를 보여준다. |
예제
별도 옵션을 사용하지 않는 예
list-session -server server1
[-s,--simple ] 옵션을 사용한 예
list-session -server server1 --simple
Idle Time 기준으로 설정한 시간이 지난 세션을 제거한다.
관련 스키마
jeus-session-server.xsd, jeus-session-domain.xsd
alias
rmsession, rms
사용법
remove-session [-server <server-name>] [-time,--timeout <int timeout(min)>]
파라미터
파라미터 | 설명 |
---|---|
[-time,--timeout <int timeout(min)>] | 세션을 제거할 기준이 되는 타임아웃을 설정한다. |
예제
[-time,--timeout <int timeout(min)>]을 사용한 예
remove-session -server server1 --timeout 3
세션 관련 설정 정보를 조회한다.
관련 스키마
jeus-session-server.xsd, jeus-session-domain.xsd
alias
getsc, ssc
사용법
show-session-configuration [-basic] [-common] [-server <server-name>] [-cluster <cluster-name>] [-specific <cluster-name>] [-h, --help]
파라미터
파라미터 | 설명 |
---|---|
[-basic] | 도메인 전체에 적용되는 설정에 대한 옵션이다. Cluster Mode와 Provider 등에 대한 설정이 존재한다. |
[-common] | 공통으로 설정할수 있는 분산식 세션 서버 설정을 확인한다. |
[-server <server-name>] | 웹 엔진에 설정된 세션 설정을 확인한다. |
[-cluster <cluster-name>] | 설정된 클러스터의 분산식 세션 서버 설정을 확인한다. |
[-specific <cluster-name>] | 특별 정의 스코프의 분산식 세션 서버 설정을 확인한다. |
[-h, --help] | 파라미터 없는 명령과 동일하며 전체적인 설정 구조 및 파라미터들을 설명한다. |
예제
[-server <server-name>] 옵션을 사용한 예
show-session-configuration -server server1
[-cluster <cluster-name>] 옵션을 사용한 예
show-session-configuration -cluster cluster1
세션 관련 설정 정보를 수정한다.
관련 스키마
jeus-session-server.xsd, jeus-session-domain.xsd
alias
setsc, msc
사용법
modify-session-configuration [-basic] [-common] [-server <server-name>] [-cluster <cluster-name>] [-specific <cluster-name>] [-f,--forceLock] [-cm,--cluster-mode <String mode(DEFAULT or DOMAIN_WIDE)>] [-sp,--session-provider <String provider>] [-ed,--exclusive-das <boolean exclude>] [-se,--sticky-encoding <String mode(BASE64 or RAW)>] [-to,--timeout <int timeout>] [-mc,--max-session-count <int limit count>] [-sh,--shared <boolean shared>] [-rp,--reload-persistent <boolean reload-persistent>] [-tmc,--tracking-mode.cookie <boolean enable-cookie>] [-tmu,--tracking-mode.url <boolean enable-url>] [-tms,--tracking-mode.ssl <boolean enable-ssl>] [-scn,--session-cookie.cookie-name <string cookie-name>] [-scv,--session-cookie.version <int version(1 or 0)>] [-scd,--session-cookie.domain <string domain-scope>] [-scp,--session-cookie.path <string path-scope>] [-scm,--session-cookie.max-age <int max-age(sec)>] [-scs,--session-cookie.secure <boolean secure] [-sch,--session-cookie.http-only <boolean http-only>] [-scc,--session-cookie.comment <string comment>] [-tn,--reserved-thread-num <int thread-num>] [-ct,--connection-timeout <long connection-timeout (msec)>] [-rt,--read-timeout <long read-timeout (msec)>] [-fb,--allow-fail-back <boolean allow>] [-fc,--ignore-flow-control <boolean ignore>] [-bl,--backup-level <string backup-level>] [-bu,--backup-unit-size <int unit-size>] [-bq,--backup-queue-size <int queue-size>] [-pm,--prevent-migration <boolean prevent>] [-fd,--failover-delay <long failover delays(s)>] [-rd,--restart-delay <long restart delays(s)>] [-lmp,--login-manager.primary <string primary login manager>] [-lms,--login-manager.secondary <string secondary login manager>] [-pfp,--passivation.file-path <string file-path>] [-pto,--passivation.timeout <long passivation-timeout (mesc)>] [-pct,--passivation.count-threshold <int count-threshold>] [-pmt,--passivation.memory-threshold <int memory-threshold (byte)>] [-pfl,--passivation.file-limit <int limit-count>] [-ppr,--passivation.ratio <float passivation-ratio>] [-add,--add-config] [-addScope,--add-specific-scope] [-removeScope,--remove-specific-scope] [-remove,--remove-config]
파라미터
파라미터 | 설명 |
---|---|
[-basic] | 도메인 전체에 적용되는 설정에 대한 옵션이다. Cluster Mode와 Provider 등에 대한 설정을 변경한다. |
[-common] | 공통으로 설정할수 있는 분산식 세션 서버 설정을 변경한다. |
[-server <server-name>] | 웹 엔진에 설정된 세션 설정을 변경한다. |
[-cluster <cluster-name>] | 설정된 클러스터의 분산식 세션 서버 설정을 변경한다. |
[-specific <cluster-name>] | 특별 정의 스코프의 분산식 세션 서버 설정을 변경한다. |
[-f, --forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-cm,--cluster-mode <String mode(DEFAULT or DOMAIN_WIDE)] | 사용할 Cluster Mode를 선택한다.
|
[-sp,--session-provider <String provider] | 사용한 Session Manager Provier를 설정한다. RUNTIME 또는 JEUS를 설정하거나 사용한 Package를 설정한다. |
[-ed,--exclusive-das <boolean exclude] | DAS를 Cluster에 참여하지 않도록 설정한다. DOMAIN_WIDE일 경우 의미가 있다. |
[-se,--sticky-encoding <String mode(BASE64 or RAW)] | Sticky Routing을 수행할 때 ID를 인코딩할 방법을 설정한다.
|
[-to,--timeout <int timeout>] | session-config의 세션 타임아웃을 설정한다. |
[-mc,--max-session-count <int maxCount>] | 저장할 세션의 최대 갯수를 설정한다. |
[-sh,--shared <boolean shared>] | session-config의 SHARED 모드를 설정한다. |
[-rp,--reload-persistent <boolean reload-persistent>] | session-config의 Reload Persistent를 설정한다. |
[-tmc,--tracking-mode.cookie <boolean enable-cookie>] | session-config의 트래킹 모드 중 쿠키를 설정한다. |
[-tmu,--tracking-mode.url <boolean enable-url>] | session-config의 트래킹 모드 중 URL rewriting을 설정한다. |
[-tms,--tracking-mode.ssl <boolean enable-ssl>] | session-config의 트래킹 모드 중 SSL을 설정한다. |
[-scn,--session-cookie.cookie-name <string cookie-name>] | 세션 쿠키의 이름을 설정한다. |
[-scv,--session-cookie.version <int version(1 or 0)>] | 세션 쿠키의 컴파일 버전을 선택한다. |
[-scd,--session-cookie.domain <string domain-scope>] | 세션 쿠키의 도메인 범위를 결정한다. |
[-scp,--session-cookie.path <string path-scope>] | 세션 쿠키의 path 범위를 결정한다. |
[-scm,--session-cookie.max-age <int max-age>] | 브라우저에서 세션 쿠키의 유지 시간을 결정한다. |
[-scs,--session-cookie.secure <boolean secure>] | 브라우저가 쿠키를 SSL에 제한되게 전송할지를 결정한다. |
[-sch,--session-cookie.http-only <boolean http-only>] | 브라우저가 HTTP 요청에 의해서만 세션 쿠키를 사용할지를 결정한다. |
[-scc,--session-cookie.comment <string comment>] | 쿠키 버전이 1일 때에 해당 세션 쿠키의 설명을 설정한다. |
[-tn,--reserved-thread-num <int thread-num>] | 분산식 세션 서버의 요청 처리 Thread 할당 개수의 최솟값을 강제한다. |
[-ct,--connection-timeout <long connection-timeout>] | 분산식 세션 서버의 소켓 커넥션 초기화 타임아웃을 결정한다. |
[-rt,--read-timeout <long read-timeout>] | 분산식 세션 서버의 요청 응답의 타임아웃을 설정한다. |
[-fb,--allow-fail-back <boolean allow>] | 분산식 세션 서버의 fail back기능을 사용한다. |
[-fc,--ignore-flow-control <boolean ignore>] | 백업 큐가 가득 차더라도 세션 유실보다는 서비스가 우선시 되기에 Flow control를 하지 않는다. |
[-bl,--backup-level <string backup-level>] | 분산식 세션 서버의 업데이트 기준을 결정한다. |
[-bu,--backup-unit-size <int unit-size>] | 부하가 있을 경우 최대로 백업을 함께 수행할 세션 갯수를 설정한다. |
[-bq,--backup-queue-size<int queue-size>] | 부하가 있을 경우 최대한 큐에 몇 개의 백업 Unit을 수용할지를 설정한다. |
[-pm,--prevent-migration <boolean prevent>] | 성능상 좋지 않더라도 동시 요청에 의해 세션 유실을 최소화 하기 위해 마이그래이션을 수행하지 않도록 설정한다. |
[-fd,--failover-delay <long failover delays(s)>] | 웹 엔진에 장애가 발생하였을 때 해당 엔진을 제외한 나머지 엔진에서 다시 클러스터링 연결을 맺을 타임아웃 값이다. |
[-rd,--restart-delay <long restart delays(s)>] | 웹 엔진을 정상적으로 다운시켰을 때 해당 엔진을 제외한 나머지 엔진에서 다시 클러스터링 연결을 맺는 타임아웃이다. |
[-lmp,--login-manager.primary <string primary>] | JEUS 로그인 매니저의 Prrimary를 설정한다. |
[-lms,--login-manager.secondary <string secondary>] | JEUS 로그인 매니저의 Secondary를 설정한다. |
[-pfp,--passivation.file-path <string file-path] | Passivation을 설정할 때 해당 파일이 저장된 절대 경로를 설정한다. |
[-pto,--passivation.timeout <long passivation-timeout (mesc)] | Passivation을 수행할 타임아웃을 설정한다. idle time이 해당 타임아웃 보다 클 경우 passivation된다. |
[-pct,--passivation.count-threshold <int count-threshold] | Passivation을 수행하는 Active한 세션 갯수를 설정한다. 해당 갯수가 넘게 되면 오래된 세션부터 passivation된다. |
[-pmt,--passivation.memory-threshold <int memory-threshold (byte)] | Passivation을 수행하는 메모리 크기를 설정한다. 해당 byte size가 넘게 되면 오래된 세션부터 passivation된다. |
[-pfl,--passivation.file-limit <int limit-count] | 한 디렉터리에 저장하는 최대 파일 갯수를 설정한다. |
[-ppr,--passivation.ratio <float passivation-ratio] | 갯수나 메모리 크기를 기준으로 passivation을 수행할 경우 어느 정도를 passivation할지에 대한 비율을 설정한다. |
[-add,--add-config] | Cluster나 Specific cluster의 분산식 세션 서버 설정을 새로 작성한다. 추가할 때 Common 설정은 무시된다. |
[-addScope,--add-specific-scope] | Specific cluster의 Scope만 추가한다. Specific cluster의 세션 서버 설정은 하지 않고 Common 설정이 사용된다. |
[-removeScope,--remove-specific-scope] | Specific cluster의 Scope을 제거한다. Specific Cluster의 세션 서버 설정의 유무와 관계없이 해당 Scope를 제거한다. |
[-remove,--remove-config] | Cluster나 Specific cluster의 분산식 세션 서버 설정을 제거한다. 제거할 때 Common 설정이 사용된다. |
예제
[-server <server-name>] 옵션을 사용한 예
modify-session-configuration -server server1 -to 40 -sh true -scs true
[-cluster <cluster-name>] 옵션을 사용한 예
modify-session-configuration -cluster distribute -tn 1 -ct 3000
JMS 엔진 명령어는 다음과 같다.
명령어 | 설명 |
---|---|
list-jms-connection-factories | Connection Factory 목록을 조회하거나 지정된 Conntection Factory의 정보를 출력한다. |
add-jms-connection-factory | 새로운 Connection Factory를 추가한다. |
remove-jms-connection-factory | 지정된 Connection Factory를 제거한다. |
list-jms-destinations | Destination 목록을 조회하거나 지정된 Destination 정보를 출력한다. |
add-jms-destination | 새로운 Destination를 추가한다. |
remove-jms-destination | 지정된 Destination를 제거한다. |
control-jms-destination | 지정된 Destination의 서비스 상태를 제어한다. |
list-jms-clients | 접속 중인 클라이언트 목록을 조회하고 정보를 출력한다. |
ban-jms-client | 지정된 JMS 클라이언트와의 연결을 강제로 끊는다. |
list-jms-durable-subscriptions | Durable Subscriber 목록을 조회한다. |
list-jms-messages | 지정된 Destination 안의 메시지 정보를 조회한다. |
view-jms-message | 지정된 메시지의 상세한 정보를 조회한다. |
move-jms-messages | 지정된 Destination 안의 지정된 메시지를 주어진 Destination으로 옮긴다. |
delete-jms-messages | 지정된 Destination 안의 지정된 메시지를 삭제한다. |
export-jms-messages | 지정된 Destination 안의 지정된 메시지를 XML 형태로 내보낸다. |
import-jms-messages | 지정된 Destination로 내보내진 XML 형태의 메시지를 가져온다. |
list-jms-pending-transactions | pending 트랜잭션 목록을 출력한다. |
commit-jms-pending-transaction | 지정된 pending 트랜잭션을 강제로 commit한다. |
다음은 JMS 엔진 관련 명령어에서 공통적으로 적용되는 옵션에 대한 설명이다. 아래 옵션 중 하나만 설정될 수 있다.
[-cluster <cluster-name> ] 옵션
각 명령어가 적용될 클러스터를 지정할 때 사용하는 옵션이다. DAS에 연결된 상태에서만 사용 가능하다. MS에 접속된 상태에서는 해당 서버에 명령어가 적용된다.
Destination에 관련된 명령어에서만 지원한다.
[-server <server-name> ] 옵션
각 명령어가 적용될 서버를 지정할 때 사용하는 옵션이다. DAS에 연결된 상태에서만 사용 가능하다. MS에 접속된 상태에서는 해당 서버에 명령어가 적용된다.
Destination에 관련된 것 이외의 명령어에서만 지원한다.
JMS 엔진에 등록되어 있는 모든 Connection Factory들의 정보를 조회하거나 지정된 Connection Factory의 정보를 출력한다.
alias
jmscf, jmsconf
사용법
list-jms-connection-factoryies -server <server-name> [-n, --name <factory-name>]
파라미터
파라미터 | 설명 |
---|---|
-server <server-name> | Connection Factory가 속한 서버를 지정한다. |
[-n, --name <factory-name>] | 정보를 출력할 Connection Factory의 이름이다. 지정하지 않으면 모든 Connection Factory에 관한 간략한 정보가 출력된다. |
예제
[DAS]domain1.adminServer>list-jms-connection-factories -server adminServer Connection Factory Information ================================================================================ +-------------------------------------+--------------------------------+-------+ | Factory Name | Export Name | Type | +-------------------------------------+--------------------------------+-------+ | ConnectionFactory | ConnectionFactory | nonxa | | XAConnectionFactory | XAConnectionFactory | xa | +-------------------------------------+--------------------------------+-------+ ================================================================================ [DAS]domain1.adminServer>list-jms-connection-factories -server adminServer -name ConnectionFactory =================================================================== ConnectionFactory +---------------------------------------------+-------------------+ | Factory Name | ConnectionFactory | | Export Name | ConnectionFactory | | Type | nonxa | | Client ID | not-set | | Max Client Session Threads | 100 | | Clustered | false | | Broker Selection Policy | round-robin | +---------------------------------------------+-------------------+ =================================================================== ================================================================================ +------------------------------------------------------------------------------+ | Addresses | +------------------------------------------------------------------------------+ | 192.168.0.26:9741(JMSServiceChannel-internal) | +------------------------------------------------------------------------------+ ================================================================================
동적으로 JMS 엔진에 새로운 Connection Factory를 추가한다. Queue 또는 Topic Connection Factory를 생성할 수 있다.
alias
add-connection-factory, addconf, createconf
사용법
add-jms-connection-factory -server <server-name> -type <factory-type> -name <factory-name> [-export <export name>] [-clientid <client-id>]
파라미터
파라미터 | 설명 |
---|---|
-server <server-name> | 대상이 되는 서버를 설정한다. |
-type <factory-type> | Connection Factory의 type을 결정한다. 다음 중에 하나를 설정한다.
|
-name <factory-name> | 새로 생성할 Connection Factory의 이름을 입력한다. 이 이름은 JMS 엔진 내에서 다른 Connection Factory와 중복되지 않도록 주의한다. |
[-export <export name>] | 새로 생성할 Connection Factory의 JNDI 이름을 입력한다. 이 이름은 JEUS JNDI 서버 내에서 다른 객체와 중복되지 않도록 주의한다. |
[-clientid <client-id>] | Connection Factory로부터 생성한 커넥션에 부여할 클라이언트 ID를 입력한다. |
예제
[DAS]domain1.adminServer>add-jms-connection-factory -server adminServer -type nonxa -name MyConnectionFactory
Executed Successfully
View the results using 'list-jms-connection-factories -server adminServer -name MyConnectionFactory'
[DAS]domain1.adminServer>list-jms-connection-factories -server adminServer
Connection Factory Information
================================================================================
+-------------------------------------+--------------------------------+-------+
| Factory Name | Export Name | Type |
+-------------------------------------+--------------------------------+-------+
| ConnectionFactory | ConnectionFactory | nonxa |
| MyConnectionFactory | MyConnectionFactory | nonxa |
| XAConnectionFactory | XAConnectionFactory | xa |
+-------------------------------------+--------------------------------+-------+
================================================================================
동적으로 JMS 엔진에서 특정 Connection Factory를 제거한다.
alias
remove-connection-factory, deleteconf, removeconf
사용법
remove-jms-connection-factory -server <server-name> -name <factory-name>
파라미터
파라미터 | 설명 |
---|---|
-server <server-name> | Connection Factory가 속한 서버를 지정한다. |
-name <factory-name> | 제거할 Connection Factory의 이름이다. |
예제
[DAS]domain1.adminServer>list-jms-connection-factories -server adminServer
Connection Factory information
================================================================================
+-------------------------------------+--------------------------------+-------+
| Factory Name | Export Name | Type |
+-------------------------------------+--------------------------------+-------+
| ConnectionFactory | ConnectionFactory | nonxa |
| MyConnectionFactory | MyConnectionFactory | nonxa |
| XAConnectionFactory | XAConnectionFactory | xa |
+-------------------------------------+--------------------------------+-------+
================================================================================
[DAS]domain1.adminServer>remove-jms-connection-factory -server adminServer -name MyConnectionFactory
Executed Successfully
View the results using 'list-jms-connection-factories -server adminServer'
[DAS]domain1.adminServer>list-jms-connection-factories -server adminServer
Connection Factory information
================================================================================
+-------------------------------------+--------------------------------+-------+
| Factory Name | Export Name | Type |
+-------------------------------------+--------------------------------+-------+
| ConnectionFactory | ConnectionFactory | nonxa |
| XAConnectionFactory | XAConnectionFactory | xa |
+-------------------------------------+--------------------------------+-------+
================================================================================
JMS 엔진에 등록되어 있는 모든 Destination의 목록을 조회하거나 지정한 Destination의 정보를 출력한다.
alias
jmsdest, dest
사용법
list-jms-destinations -cluster <cluster-name> | -server <server-name> [-n, --name <destination-name>]
파라미터
파라미터 | 설명 |
---|---|
-cluster <cluster-name> | -server <server-name> | Destination이 속한 클러스터 또는 서버를 지정한다. |
[-n, --name <destination-name>] | 정보를 출력할 Destination의 이름이다. 지정하지 않으면 모든 Destination에 대한 간략한 정보가 출력된다. |
예제
[[DAS]domain1.adminServer>list-jms-destinations -server adminServer Destination information in Server adminServer ================================================================================ +---------+---------+-------+------------+-------------+-----------+-----------+ | Name | Export | Type | Remaining | Dead Letter | Produce | Consume | | | Name | | Messages | Destination | Suspended | Suspended | +---------+---------+-------+------------+-------------+-----------+-----------+ | Examples| Examples| Topic | 0 | JEUSMQ_DLQ | false | false | |Topic |Topic | | | | | | +---------+---------+-------+------------+-------------+-----------+-----------+ | Examples| Examples| Queue | 0 | JEUSMQ_DLQ | false | false | |Queue |Queue | | | | | | +---------+---------+-------+------------+-------------+-----------+-----------+ | JEUSMQ_D| JEUSMQ_D| Queue | 0 | JEUSMQ_DLQ | false | false | |LQ |LQ | | | | | | +---------+---------+-------+------------+-------------+-----------+-----------+ For detailed information, use the -name option ================================================================================ [DAS]domain1.adminServer>list-jms-destinations -server adminServer -name ExamplesQueue Detailed destination information in Server adminServer ================================================================== ExamplesQueue +------------------------------------------------+---------------+ | Export Name | ExamplesQueue | | Type | Queue | | Dead Letter Destination | JEUSMQ_DLQ | | Consumer Count | 0 | | Processed Messages | 0 | | Remaining Messages | 0 | | Pending Messages | 0 | | Dispatched Messages | 0 | | Delivered Messages | 0 | | Expired Messages | 0 | | Moved Messages | 0 | | Memory Usage (current) | 0kb | | Memory Usage (high mark) | 0kb | | Produce Suspended | false | | Consume Suspended | false | +------------------------------------------------+---------------+ ==================================================================
동적으로 JMS 엔진에 새로운 Destination을 추가한다.
alias
add-destination, adddest, createdest
사용법
add-jms-destination -cluster <cluster-name | -server <server-name> -type <destination-type> -name <destination-name> [-export <export-name>]
파라미터
파라미터 | 설명 |
---|---|
-cluster <cluster-name | -server <server-name> | Destination이 속할 클러스터 또는 서버를 지정한다. |
-type <destination-type> | Destination의 type을 결정한다. (queue 또는 topic) |
-name <destination-name> | 새로 생성할 Destination의 이름을 입력한다. 이 이름은 JMS 엔진 내에서 다른 Destination과 중복되지 않도록 주의한다. |
[-export <export-name>] | 새로 생성할 Destination의 JNDI 이름을 입력한다. 이 이름은 JEUS JNDI 서버 내에서 다른 객체와 중복되지 않도록 주의한다. 지정하지 않으면 destination-name과 동일한 값이 지정된다. |
예제
[DAS]domain1.adminServer>add-jms-destination -server adminServer -type queue -name MyQueue
Executed Successfully
View the results using 'list-jms-destinations -server adminServer -name MyQueue'
[DAS]domain1.adminServer>list-jms-destinations -server adminServer
Destination information in Server adminServer
================================================================================
+---------+---------+-------+------------+-------------+-----------+-----------+
| Name | Export | Type | Remaining | Dead Letter | Produce | Consume |
| | Name | | Messages | Destination | Suspended | Suspended |
+---------+---------+-------+------------+-------------+-----------+-----------+
| MyQueue | MyQueue | Queue | 0 | JEUSMQ_DLQ | false | false |
+---------+---------+-------+------------+-------------+-----------+-----------+
| Examples| Examples| Topic | 0 | JEUSMQ_DLQ | false | false |
|Topic |Topic | | | | | |
+---------+---------+-------+------------+-------------+-----------+-----------+
| Examples| Examples| Queue | 0 | JEUSMQ_DLQ | false | false |
|Queue |Queue | | | | | |
+---------+---------+-------+------------+-------------+-----------+-----------+
| JEUSMQ_D| JEUSMQ_D| Queue | 0 | JEUSMQ_DLQ | false | false |
|LQ |LQ | | | | | |
+---------+---------+-------+------------+-------------+-----------+-----------+
For detailed information, use the -name option
==============================================================================
동적으로 JMS 엔진에서 특정 Destination을 제거한다.
alias
remove-destination, deletedest, removedest
사용법
remove-jms-destination -cluster <cluster-name | -server <server-name> -name <destination-name>
파라미터
파라미터 | 설명 |
---|---|
-cluster <cluster-name | -server <server-name> | Destination이 속한 클러스터 또는 서버를 지정한다. |
-name <destination-name> | 제거할 Destination의 이름이다. |
예제
[DAS]domain1.adminServer>list-jms-destinations -server adminServer
Destination information in Server adminServer
================================================================================
+---------+---------+-------+------------+-------------+-----------+-----------+
| Name | Export | Type | Remaining | Dead Letter | Produce | Consume |
| | Name | | Messages | Destination | Suspended | Suspended |
+---------+---------+-------+------------+-------------+-----------+-----------+
| MyQueue | MyQueue | Queue | 0 | JEUSMQ_DLQ | false | false |
+---------+---------+-------+------------+-------------+-----------+-----------+
| Examples| Examples| Topic | 0 | JEUSMQ_DLQ | false | false |
|Topic |Topic | | | | | |
+---------+---------+-------+------------+-------------+-----------+-----------+
| Examples| Examples| Queue | 0 | JEUSMQ_DLQ | false | false |
|Queue |Queue | | | | | |
+---------+---------+-------+------------+-------------+-----------+-----------+
| JEUSMQ_D| JEUSMQ_D| Queue | 0 | JEUSMQ_DLQ | false | false |
|LQ |LQ | | | | | |
+---------+---------+-------+------------+-------------+-----------+-----------+
For detailed information, use the -name option
==============================================================================
[DAS]domain1.adminServer>remove-jms-destination -server adminServer -name MyQueue
Executed Successfully
View the results using 'list-jms-destinations -server adminServer'
[DAS]domain1.adminServer>list-jms-destinations -server adminServer
Destination information in Server adminServer
================================================================================
+---------+---------+-------+------------+-------------+-----------+-----------+
| Name | Export | Type | Remaining | Dead Letter | Produce | Consume |
| | Name | | Messages | Destination | Suspended | Suspended |
+---------+---------+-------+------------+-------------+-----------+-----------+
| Examples| Examples| Topic | 0 | JEUSMQ_DLQ | false | false |
|Topic |Topic | | | | | |
+---------+---------+-------+------------+-------------+-----------+-----------+
| Examples| Examples| Queue | 0 | JEUSMQ_DLQ | false | false |
|Queue |Queue | | | | | |
+---------+---------+-------+------------+-------------+-----------+-----------+
| JEUSMQ_D| JEUSMQ_D| Queue | 0 | JEUSMQ_DLQ | false | false |
|LQ |LQ | | | | | |
+---------+---------+-------+------------+-------------+-----------+-----------+
For detailed information, use the -name option
==============================================================================
JMS 엔진에서 특정 Destination의 상태를 제어한다.
alias
destctrl
사용법
control-jms-destination -cluster <cluster-name | -server <server-name> -dest <destination-name> -suspend | -resume [-produce] [-consume]
파라미터
파라미터 | 설명 |
---|---|
-cluster <cluster-name | -server <server-name> | Destination이 속한 클러스터 또는 서버를 지정한다. |
-dest <destination-name> | 제어할 Destination의 이름이다. |
-suspend| -resume | 제어할 Destination의 상태이다.
|
[-produce] | 지정된 Destination에 produce를 제어할지를 지정한다. |
[-consume] | 지정된 Destination에서의 consume을 제어할지를 지정한다. |
예제
[DAS]domain1.adminServer>control-jms-destination -server adminServer -dest ExamplesQueue -suspend -produce Controlling destination is successful in ExamplesQueue : [production] is suspended [DAS]domain1.adminServer>control-jms-destination -server adminServer -dest ExamplesQueue -resume -produce Controlling destination is successful in ExamplesQueue : [production] is resumed
현재 접속해 있는 모든 클라이언트의 목록을 조회한다.
alias
jmsclient, jmsentry
사용법
list-jms-clients -server <server-name>
파라미터
파라미터 | 설명 |
---|---|
-server <server-name> | 클라이언트의 목록을 조회할 서버를 지정한다. |
예제
[DAS]domain1.adminServer>list-jms-clients -server adminServer
JEUS MQ client information
================================================================================
+---------------+----------------------+------------------+----------+---------+
| Entry Name | Remote Address | Start Time |Connection| Session |
| | | | Count | Count |
+---------------+----------------------+------------------+----------+---------+
| JMSClient-RE63| 192.168.34.33/192.168| Tue Nov 07 | 1 | 1 |
|675900002 |.34.33:49490 |16:14:32 KST 2016 | | |
+---------------+----------------------+------------------+----------+---------+
| JMSClient-RE63| 192.168.34.33/192.168| Tue Nov 07 | 1 | 1 |
|675900001 |.34.33:49484 |16:14:23 KST 2016 | | |
+---------------+----------------------+------------------+----------+---------+
================================================================================
JMS 클라이언트와의 연결을 강제로 끊는다.
alias
killentry, banentry
사용법
ban-jms-client -server <server-name> -name <entry-name>
파라미터
파라미터 | 설명 |
---|---|
-server <server-name> | 대상이 되는 서버를 설정한다. |
-name <entry-name> | 강제로 연결을 끊을 JMS 클라이언트의 이름을 설정한다. 이 이름은 list-jms-clients 명령으로 확인할 수 있다. |
JMS 엔진에 등록되어 있는 모든 Durable Subscriber들의 정보를 조회하거나 지정된 Durable Subscriber의 정보를 출력한다.
alias
durable, dur
사용법
list-jms-durable-subscriptions -cluster <cluster-name> | -server <server-name>
파라미터
파라미터 | 설명 |
---|---|
-cluster <cluster-name> | -server <server-name> | Durable Subscriber의 목록을 조회할 클러스터나 서버를 지정한다. |
예제
[DAS]domain1.adminServer>list-jms-durable-subscriptions -server adminServer
Durable Subscription information
==============================================================================
+----------------+-----------+---------------------+-------------------------+
| Durable Name | Client ID | Message Selector | Remaining Messages |
+----------------+-----------+---------------------+-------------------------+
| testDurable | testClient| | 5 |
+----------------+-----------+---------------------+-------------------------+
==============================================================================
Destination의 메시지들의 정보를 출력한다.
alias
message, msg
사용법
list-jms-messages -cluster <cluster-name> | -server <server-name> -dest <destination-name> | -durable <<client-id>_<durable-name>> [-s,--selector <message-selector>] [-offset <offset>] [-size <size>] [-id <message-id-pattern>] [-type <message-type>] [-from <YYYY:MM:DD:HH:MM:SS>] [-to <YYYY:MM:DD:HH:MM:SS>]
파라미터
파라미터 | 설명 |
---|---|
-cluster <cluster-name> | -server <server-name> | Destination이나 Durable subscriber가 속한 클러스터나 서버를 지정한다. |
-dest <destination-name> | -durable <<client-id>_<durable-name>> | 출력할 메시지가 있는 Destination이나 Durable subscriber의 이름이다. |
[-s, --seletor <message-selector>] | 출력할 메시지를 선택할 수 있는 Message selector를 지정한다. |
[-offset <offset>] | 메시지를 나누어 출력할 때 몇 번째 메시지부터 출력할지를 지정한다. |
[-size <size>] | 메시지를 나누어 출력할 때 한 번에 출력할 메시지의 개수를 지정한다. |
[-id <message-id-pattern>] | 출력할 메시지를 선택할 수 있는 message id의 패턴을 지정한다. |
[-type <message-type>] | 출력할 메시지를 선택할 수 있는 메시지의 타입을 지정한다. |
[-from <YYYY:MM:DD:HH:MM:SS>] | 특정 시점 이후에 들어온 메시지를 선택할 때 그 시점을 지정한다. |
[-to <YYYY:MM:DD:HH:MM:SS>] | 특정 시점 이전에 들어온 메시지를 선택할 때 그 시점을 지정한다. |
예제
[DAS]domain1.adminServer>list-jms-messages -server adminServer -dest ExamplesQueue
Messages in Destination ExamplesQueue.
==================================================================================
+-----------------------------+-------------+------------------------------------+
| Message ID | Message Type| Created Time |
+-----------------------------+-------------+------------------------------------+
| ID:7968865177000001:1:1 | Text | Mon Nov 07 20:10:01 KST 2016 |
| ID:7968865177000001:1:2 | Text | Mon Nov 07 20:10:03 KST 2016 |
| ID:7968865177000001:1:3 | Text | Mon Nov 07 20:10:04 KST 2016 |
| ID:7968865177000001:1:4 | Text | Mon Nov 07 20:10:06 KST 2016 |
+-----------------------------+-------------+------------------------------------+
==================================================================================
Destination 안의 특정 메시지의 상세한 정보를 출력한다.
alias
viewmsg
사용법
view-jms-messages -cluster <cluster-name> | -server <server-name> -dest <destination-name> | -durable <<client-id>_<durable-name>> -id <message-id>
파라미터
파라미터 | 설명 |
---|---|
-cluster <cluster-name> | -server <server-name> | Destination이나 Durable subscriber가 속한 클러스터나 서버를 지정한다. |
-dest <destination-name> | -durable <<client-id>_<durable-name>> | 정보를 출력할 Destination이나 Durable subscriber의 이름이다. |
-id <message-id> | 출력할 메시지의 messsage id를 지정한다. |
예제
[DAS]domain1.adminServer>list-jms-messages -server adminServer -dest ExamplesQueue
Messages in Destination ExamplesQueue
==================================================================================
+--------------------+--------------+--------------------------------------------+
| Message ID | Message Type | Created Time |
+--------------------+--------------+--------------------------------------------+
| ID:1242976880:1:0 | Text | Tue Nov 19 15:53:17 KST 2016 |
| ID:1242976880:1:1 | Text | Tue Nov 19 15:53:17 KST 2016 |
| ID:1242976880:1:2 | Text | Tue Nov 19 15:53:17 KST 2016 |
| ID:1242976880:1:3 | Text | Tue Nov 19 15:53:17 KST 2016 |
| ID:1242976880:1:4 | Text | Tue Nov 19 15:53:17 KST 2016 |
+--------------------+--------------+--------------------------------------------+
==================================================================================
[DAS]domain1.adminServer>view-jms-message -server adminServer -dest ExamplesQueue -id ID:1242976880:1:0
Message ID:1242976880:1:0
================================================================================
+------------------+-----------------------------------------------------------+
| Attribute name | Value |
+------------------+-----------------------------------------------------------+
| Message ID | ID:1242976880:1:0 |
| Destination Name | ExamplesQueue |
| Delivery Mode | 2 |
| Message Type | Text |
| Correlation ID | |
| Created Time | Tue Nov 19 15:53:17 KST 2016 |
| Expiration Time | - |
| Time-to-live | 0 |
| Priority | 4 |
| Redelivered | false |
| Delivery Time | Tue Nov 19 15:53:17 KST 2016 |
| Redelivery Limit | 4 |
| Reply To | |
| Message Body | Test Message |
+------------------+-----------------------------------------------------------+
================================================================================
지정된 메시지를 클러스터나 서버내의 다른 Destination으로 이동한다.
alias
mvmsg
사용법
move-jms-message -cluster <cluster-name> | -server <server-name> -dest <destination-name> | -durable <<client-id>_<durable-name>> -id <message-id> | -all -target <destination-name>
파라미터
파라미터 | 설명 |
---|---|
-cluster <cluster-name> | -server <server-name> | Destination이나 Durable subscriber가 속한 클러스터나 서버를 지정한다. |
-dest <destination-name> | -durable <<client-id>_<durable-name>> | 정보를 출력할 Destination이나 Durable subscriber의 이름이다. |
-id <message-id> | -all | 이동할 메시지를 지정한다. 개별 message id를 지정하거나 전체를 지정할 수 있다. |
-target <destination-name> | 이동할 메시지가 들어갈 대상 Destination을 지정한다. |
예제
[DAS]domain1.adminServer>list-jms-destinations -server adminServer
Destination information in Server adminServer
================================================================================
+---------+---------+-------+------------+-------------+-----------+-----------+
| Name | Export | Type | Remaining | Dead Letter | Produce | Consume |
| | Name | | Messages | Destination | Suspended | Suspended |
+---------+---------+-------+------------+-------------+-----------+-----------+
| MyQueue | MyQueue | Queue | 0 | JEUSMQ_DLQ | false | false |
+---------+---------+-------+------------+-------------+-----------+-----------+
| Examples| Examples| Topic | 0 | JEUSMQ_DLQ | false | false |
|Topic |Topic | | | | | |
+---------+---------+-------+------------+-------------+-----------+------- ----+
| Examples| Examples| Queue | 5 | JEUSMQ_DLQ | false | false |
|Queue |Queue | | | | | |
+---------+---------+-------+------------+-------------+-----------+-----------+
| JEUSMQ_D| JEUSMQ_D| Queue | 0 | JEUSMQ_DLQ | false | false |
|LQ |LQ | | | | | |
+---------+---------+-------+------------+-------------+-----------+-----------+
For detailed information, use the -name option
================================================================================
[DAS]domain1.adminServer>move-jms-messages -server adminServer -dest ExamplesQueue -all -target MyQueue
Successfully moved all messages from ExamplesQueue to MyQueue is successful
[DAS]domain1.adminServer>list-jms-destinations -server adminServer
Destination information in Server adminServer
================================================================================
+---------+---------+-------+------------+-------------+-----------+-----------+
| Name | Export | Type | Remaining | Dead Letter | Produce | Consume |
| | Name | | Messages | Destination | Suspended | Suspended |
+---------+---------+-------+------------+-------------+-----------+-----------+
| MyQueue | MyQueue | Queue | 5 | JEUSMQ_DLQ | false | false |
+---------+---------+-------+------------+-------------+-----------+-----------+
| Examples| Examples| Topic | 0 | JEUSMQ_DLQ | false | false |
|Topic |Topic | | | | | |
+---------+---------+-------+------------+-------------+-----------+-----------+
| Examples| Examples| Queue | 0 | JEUSMQ_DLQ | false | false |
|Queue |Queue | | | | | |
+---------+---------+-------+------------+-------------+-----------+-----------+
| JEUSMQ_D| JEUSMQ_D| Queue | 0 | JEUSMQ_DLQ | false | false |
|LQ |LQ | | | | | |
+---------+---------+-------+------------+-------------+-----------+-----------+
For detailed information, use the -name option
================================================================================
Queue나 Durable subscriber에 쌓여있는 특정 메시지 또는 메시지 전체를 삭제한다.
alias
deletemsg, deletemessage, removemsg, removemessage, rmmsg
사용법
delete-jms-message -cluster <cluster-name> | -server <server-name> -dest <destination-name> | -durable <<client-id>_<durable-name>> -id <message-id> | -all
파라미터
파라미터 | 설명 |
---|---|
-cluster <cluster-name> | -server <server-name> | 삭제할 메시지가 있는 Destination이나 Durable subscriber가 속한 클러스터나 서버를 지정한다. |
-dest <destination-name> | -durable <<client-id>_<durable-name>> | 삭제할 메시지가 있는 Destination이나 Durable subscriber의 이름이다. |
-id <message-id> | -all | 삭제할 메시지를 지정한다. 개별 ID를 지정하거나 모든 메시지를 지정할 수 있다. |
지정된 Destination의 특정 메시지들을 XML 형태로 내보낸다.
alias
exmsg
사용법
export-jms-message -cluster <cluster-name> | -server <server-name> -dest <destination-name> | -durable <<client-id>_<durable-name>> -path <file-path> -id <message-id> | -all
파라미터
파라미터 | 설명 |
---|---|
-cluster <cluster-name> | -server <server-name> | 내보낼 메시지가 있는 Destination이나 Durable subscriber가 속한 클러스터나 서버를 지정한다. |
-dest <destination-name> | -durable <<client-id>_<durable-name>> | 내보낼 메시지가 있는 Destination이나 Durable subscriber의 이름이다. |
-path <file-path> | 내보낼 메시지가 저장될 파일의 경로를 지정한다. |
-id <message-id> | -all | 내보낼 메시지를 지정한다. 개별 ID를 지정하거나 모든 메시지를 지정할 수 있다. |
예제
[DAS]domain1.adminServer>export-jms-messages -server adminServer -dest ExamplesQueue -all -path exported.xml
Successfully exported 5 messages.
Destination에 내보내진 XML 파일로부터 메시지들을 가져온다.
alias
immsg
사용법
import-jms-message -cluster <cluster-name> | -server <server-name> -dest <destination-name> -path <file-path> [-overwrite]
파라미터
파라미터 | 설명 |
---|---|
-cluster <cluster-name> | -server <server-name> | 메시지를 가져올 Destination이 속한 클러스터나 서버를 지정한다. |
-dest <destination-name> | 메시지를 가져올 Destination의 이름이다. |
-path <file-path> | 가져올 메시지가 저장된 파일의 경로를 지정한다. |
[-overwrite] | 가져올 메시지의 JMSMessageID를 새로 발급하지 않는다. 같은 ID가 존재하는 경우 덮어 쓴다. |
예제
[DAS]domain1.adminServer>list-jms-messages -server adminServer -dest ExamplesQueue
There are no messages in ExamplesQueue.
[DAS]domain1.adminServer>import-jms-messages -server adminServer -dest ExamplesQueue -path exported.xml
Successfully imported 5 of 5 messages.
[DAS]domain1.adminServer>list-jms-messages -server adminServer -dest ExamplesQueue
Messages in Destination ExamplesQueue
====================================================================================
+----------------------------+--------------+--------------------------------------+
| Message ID | Message Type | Created Time |
+----------------------------+--------------+--------------------------------------+
| ID:796886517700001:1:5 | Text | Tue Nov 19 19:52:54 KST 2016 |
| ID:796886517700001:1:6 | Text | Tue Nov 19 19:52:54 KST 2016 |
| ID:796886517700001:1:7 | Text | Tue Nov 19 19:52:54 KST 2016 |
| ID:796886517700001:1:8 | Text | Tue Nov 19 19:52:54 KST 2016 |
| ID:796886517700001:1:9 | Text | Tue Nov 19 19:52:54 KST 2016 |
+----------------------------+--------------+--------------------------------------+
====================================================================================
indoubt 상태의 트랜잭션 목록들을 조회한다.
alias
jmspt, pt
사용법
list-jms-pending-transactions -server <server-name>
파라미터
파라미터 | 설명 |
---|---|
-server <server-name> | indoubt 상태인 트랜잭션을 조회할 서버를 지정한다. |
Pending 트랜잭션을 강제로 commit한다.
alias
jmsptcommit, ptcommit
사용법
commit-jms-pending-transaction -server <server-name> -id <tx-id>
파라미터
파라미터 | 설명 |
---|---|
-server <server-name> | 대상이 되는 서버를 설정한다. |
-id <tx-id> | 강제로 commit할 트랜잭션의 ID이다. ID는 list-jms-pending-transactions 명령으로 확인할 수 있다. |
데이터소스 관리 및 설정 변경, 설정 확인 등의 기능을 제공한다. 명령어들의 목록은 다음과 같다.
명령어 | 설명 |
---|---|
add-data-source | 데이터소스를 도메인에 동적으로 추가한다. |
remove-data-source | 데이터소스를 도메인으로부터 동적으로 삭제한다. |
modify-data-source | 데이터소스의 설정을 변경한다. 일부 설정은 동적으로 변경 가능하다. |
list-data-sources | 도메인에 존재하는 모든 데이터소스의 목록을 조회한다. 특정 데이터소스의 ID를 명시할 경우 해당 데이터소스의 설정을 자세히 조회한다. |
test-data-sources-config | 데이터소스의 설정이 올바른지 확인한다. |
add-cluster-data-source | 클러스터 데이터소스를 도메인에 동적으로 추가한다. |
remove-cluster-data-source | 클러스터 데이터소스를 도메인으로부터 동적으로 삭제한다. |
modify-cluster-data-source | 클러스터 데이터소스의 설정을 변경한다. 대부분의 설정이 동적으로 변경 가능하다. |
list-cluster-data-sources | 도메인에 존재하는 모든 클러스터 데이터소스의 목록을 조회한다. 특정 데이터소스의 ID를 명시할 경우 해당 클러스터 데이터소스의 설정을 자세히 조회한다. |
데이터소스를 도메인에 동적으로 추가한다.
alias
addds
사용법
add-data-source [-id,--dataSourceID <data-source-id>] [-ac,--autoCommit <auto-commit-value>] [-sqt,--stmtQueryTimeout <statement-query-timeout>] [-aocl,--actionOnConnectionLeak <action-on-connection-leak>] [-min,--min <minimum-size>] [-max,--max <maximum-size>] [-step,--step <resizing-step>] [-period,--period <resizing-period>] [-ew,--enableWait <enable-wait>] [-wt,--waitTime <wait-time>] [-dds,--delegationDataSource <delegation-data-source>] [-muc,--maxUseCount <max-use-count>] [-cq,--checkQuery <check-query>] [-cqt,--checkQueryTimeout <check-query-timeout>] [-nvi,--nonValidationInterval <non-validation-interval>] [-cqp,--checkQueryPeriod <check-query-period>] [-cqrc,--checkQueryRetrialCount <check-query-retrial-count>] [-dpocq,--destroyPolicyOnCheckQuery <destroy-policy-on-check-query>] [-scs,--stmtCachingSize <stmt-caching-size>] [-sfs,--stmtFetchSize <stmt-fetch-size>] [-ct,--connectionTrace <connection-trace>] [-gct,--getConnectionTrace <get-connection-trace>] [-act,--autoCommitTrace <auto-commit-trace>] [-ust,--useSqlTrace <use-sql-trace>] [-kcho,--keepConnectionHandleOpen <keep-connection-handle-open>] [-en,--exportName <export-name>] [-dscn,--dataSourceClassName <data-source-class-name>] [-dst,--dataSourceType <data-source-type>] [-vendor,--vendor <vendor>] [-desc,--description <description>] [-sn,--serverName <server-name>] [-pn,--portNumber <port-number>] [-dn,--databaseName <database-name>] [-user,--user <user>] [-pw,--password <password>] [-lt,--loginTimeout <login-timeout>] [-il,--isolationLevel <isolation-level>] [-pdt,--poolDestroyTimeout <pool-destroy-timeout>] [-prop,--property <property>] [-sxe,--supportXaEmulation <support-xa-emulation>] [-ddba,--delegationDba <delegation-dba>] [-dbat,--dbaTimeout <dba-timeout>] [-cqc,--checkQueryClass <check-query-class>] [-is,--initSql <init-sql>] [-f,--forceLock] [-detail]
파라미터
파라미터 | 설명 |
---|---|
[-id,--dataSourceID <data-source-id>] | 데이터소스의 ID이다. 하나의 도메인에서 데이터소스 ID는 데이터소스의 유일한 식별자로서 동작하도록 설정해야 한다. |
[-ac,--autoCommit <auto-commit-value>] | 데이터소스의 기본 auto-commit 설정으로 다음 중에 하나를 설정한다.
|
[-sqt,--stmtQueryTimeout <statement-query-timeout> ] | 데이터소스로부터 얻은 커넥션을 통해 생성된 java.sql.Statement 객체에 지정될 쿼리 타임아웃을 설정한다. JEUS는 JDBC API를 통해 정의되고 JDBC 드라이버 벤더에서 구현한 쿼리 타임아웃 설정 메소드(java.sql.Statement#setQueryTimeout)를 호출할 뿐이다. JDBC 드라이버 벤더별로 쿼리 타임아웃 적용에 약간의 차이가 있다. (단위: ms) |
[-aocl,--actionOnConnectionLeak <action-on-connection-leak>] | 애플리케이션(주로 stateless 컴포넌트 - Servelet/JSP, stateless Session Bean, MDB)에서 사용하고 제대로 반환하지 않은 JDBC 커넥션을 감지했을 때 JEUS가 취하는 액션을 정의한다. 다음의 값 중에 하나를 설정한다. 설정하지 않을 경우 서버의 설정을 따른다.
|
[-min,--min <minimum-size>] | Connection Pool에 Pooling되는 커넥션의 최솟값을 지정한다. |
[-max,--max <maximum-size>] | Connection Pool에 Pooling되는 커넥션의 최댓값을 지정한다. |
[-step,--step <resizing-step>] | Connection Pool에 커넥션이 부족할 때 현재 커넥션의 개수가 최댓값 이하인 경우 DB로부터 커넥션을 새로 받아와 채우는 데, 이때 새로 받아오는 커넥션의 개수를 지정한다. |
[-period,--period <resizing-period>] | Connection Pool의 크기를 최솟값에 맞춰 조정하는 주기를 설정한다. Connection Pool의 크기가 최솟값을 초과하는 경우에는 사용하지 않는 커넥션들을 닫아주고 Connection Pool의 크기가 최솟값에 미치지 못하는 경우에는 DB로 붙일 커넥션을 새로 받아와 채운다. (단위: ms) |
[-ew,--enableWait <enable-wait>] | Connection Pool에 사용 가능한 커넥션이 없고 커넥션도 더 이상 늘릴 수 없을 때 커넥션 요청을 처리하는 방법을 결정한다.
|
[-wt,--waitTime <wait-time>] | --enable-wait이 true인 경우에만 유효한 설정으로 커넥션을 얻기 위해 대기하는 한계 시간을 나타낸다. 만약 이 시간이 지나도 커넥션을 얻지 못하면 JEUS는 타임아웃 예외를 발생시킨다. (단위: ms) |
[-dds,--delegationDataSource <delegation-data-source>] | 트랜잭션과 연동하지 않은 상태에서는 XA 데이터소스를 통해 커넥션을 얻기보다 Connection Pool 데이터소스를 통해 커넥션을 얻는 것이 낫다. 기능상 차이도 없고, 트랜잭션 연동을 위한 기능을 포함하고 있는 XA 커넥션은 시스템에 부담을 더 주기 때문이다. 이를 위해 XA 데이터소스인 경우 이 설정을 통하여 트랜잭션과 연동하지 않은 상태에서의 커넥션 요청을 위임할 Connection Pool 데이터소스를 지정한다. 한편 Oracle, DB2 등에서 XA 커넥션을 트랜잭션 없이도 사용한다. 트랜잭션에 연동하면서 사용하다 보면 XA를 시작할 수 없는 예외가 발생하기도 하는데 정확한 원인은 알 수 없기 때문에 이를 회피하기 위한 방편으로서도 이 설정을 이용한다. |
[-muc,--maxUseCount <max-use-count>] | 커넥션의 최대 사용 횟수이다. 이 사용 횟수 이상이 되면 새로운 커넥션으로 교체한다. (기본값: 0, 커넥션을 교체하지 않겠다는 의미) |
[-cq,--checkQuery <check-query>] | 커넥션 상태 점검에 사용될 쿼리(check-query)를 설정한다. 보통 DB와의 연결 유효성만을 확인하면 되므로 간단한 select 쿼리를 사용할 것을 권장한다. |
[-cqt,--checkQueryTimeout <check-query-timeout>] | 커넥션 점검을 위해 check-query를 수행했을 때 DB가 응답이 없어 드라이버가 계속 기다리는 상황이 발생할 수 있다. 이런 경우를 피하기 위해 check-query에 대해 쿼리 타임아웃을 적용한다. 이것은 JDBC API에서 정의한 java.sql.Statement#setQueryTimeout 메소드 호출을 통해 가능하다. 1000ms보다 작을 경우 0으로 설정되므로 주의한다. (단위: ms) |
[-nvi,--nonValidationInterval <non-validation-interval>] | 커넥션 점검이 너무 잦아서 오버헤드가 발생하는 경우 설정한다. 커넥션 점검을 수행하기 직전의 시각과 가장 최근의 커넥션 점검 시각과의 차이가 설정한 시간 간격 이내면 커넥션 점검을 생략한다. (단위: ms) 예를 들어 이 설정값이 5000ms인 경우 어떤 커넥션의 마지막 커넥션 점검 시간으로부터 아직 5초가 지나지 않았다면 해당 커넥션에 대한 점검이 생략된 채 애플리케이션에 전달된다. |
[-cqp,--checkQueryPeriod <check-query-period>] | Connection Pool의 커넥션들을 설정한 주기마다 체크하여 문제가 있는 커넥션을 제거한다. (단위: ms) 클러스터 데이터소스에 속한 데이터소스는 자신의 상태 체크에 사용하므로 반드시 설정해야 한다. |
[-cqrc,--checkQueryRetrialCount <check-query-retrial-count>] | 커넥션 점검은 기본적으로 --destroyPolicyOnCheckQuery가 FAILED_CONNECTION_ONLY로 설정된 경우 한 번 수행된다. --destroyPolicyOnCheckQuery가 ALL_CONNECTIONS으로 설정된 경우에는 최초의 커넥션 점검에서 커넥션 이상이 확인되면 또 다른 커넥션에 대해서 한 번 더 커넥션 점검이 이루어져 총 두 번의 커넥션 점검이 수행될 수 있다. 이 설정값이 이러한 기본 커넥션 점검 수행 횟수에 더해져 최종 커넥션 점검 수행 횟수가 정해진다. |
[-dpocq,--destroyPolicyOnCheckQuery <destroy-policy-on-check-query>] | 커넥션이 유효하지 않은 것으로 확인되었을 때 Connection Pool에 있는 다른 커넥션들에 대한 처리 정책을 설정한다.
|
[-scs,--stmtCachingSize <stmt-caching-size>] | JDBC 드라이버는 애플리케이션에서 prepared statement를 요청할 때마다 파라미터로 넘어온 SQL 문장을 파싱한다. 이 파싱 작업이 성능에 영향을 줄 수 있기 때문에 이를 피하기 위해서 JEUS 내부적으로 prepared statement를 캐시하는 기능을 제공한다. 이 설정은 캐싱할 prepared statement의 개수를 지정한다. 이 기능을 사용하면 커넥션을 항상 열어둔 채로 사용하기 때문에 커넥션을 닫았을 때 드라이버가 수행하는 클리어 작업이 이뤄지지 않는다. 예를 들어 Oracle JDBC 드라이버의 경우 auto-commit을 false로 설정해서 사용하다가 commit이나 rollback을 하지 않고 커넥션을 닫으면 무조건 commit을 하도록 되어 있는데 이러한 처리가 되지 않는다. 만약 JDBC 드라이버에서 statement 캐시 기능을 제공한다면 그것을 사용하기를 권장한다. |
[-sfs,--stmtFetchSize <stmt-fetch-size>] | JDBC 드라이버 statement의 fetch 사이즈를 설정한다. |
[-ct,--connectionTrace <connection-trace>] | 커넥션과 관련된 부가 정보 제공 여부를 결정한다.
|
[-gct,--getConnectionTrace <get-connection-trace>] | 애플리케이션이 java.sql.DataSource#getConnection을 호출했을 때의 Stack Trace를 확인할 수 있도록 한다. |
[-act,--autoCommitTrace <auto-commit-trace>] | java.sql.Connection#setAutoCommit이 호출되었을 때 관련 로그와 Stack Trace를 서버 로그에 기록한다. 단, jeus.jdbc.connection-trace 로거의 로그 레벨을 FINE으로 설정해야 한다. |
[-ust,--useSqlTrace <use-sql-trace>] | 커넥션별로 사용하고 있는 SQL 쿼리를 보여주는 기능이다. jeus.jdbc.sql 로거의 레벨을 FINE으로 설정할 경우 서버 로그를 통해서 SQL 쿼리 히스토리를 확인할 수 있다. 이 기능을 사용할 경우 JDBC 드라이버의 statement 구현체를 JEUS의 것으로 감싸게되므로 JDBC 드라이버의 statement 객체를 캐스팅해서 사용하는 애플리케이션은 이 기능을 사용할 수 없다. |
[-kcho,--keepConnectionHandleOpen <keep-connection-handle-open>] | true로 설정하면 XA 커넥션을 사용하고 Pool에 반납할 때 그에 대한 핸들(또는 논리적 커넥션)을 닫지 않고 열어둔다. DB2 universal 드라이버의 경우에 사용할 필요가 있다. 이 기능을 사용하면 커넥션 핸들이 닫히지 않으므로 커넥션을 닫을 때 드라이버가 수행하는 클리어 작업이 이뤄지지 않는다. 예를 들어 Oracle JDBC 드라이버의 경우 auto-commit을 false로 설정해서 사용하다가 commit이나 rollback을 하지 않고 커넥션을 닫으면 무조건 commit을 하도록 되어 있는데 이러한 처리가 되지 않는다. |
[-en,--exportName <export-name>] | 데이터소스의 JNDI 이름을 설정한다. 서로 다른 두 데이터소스가 서로 다른 서버에 JNDI 바인드되는 것을 보장할 수 있으면 해당 데이터소스들은 서로 같은 JNDI 이름을 가질 수 있다. 이는 임의의 서버에서 동일한 JNDI 이름을 가지는 서로 다른 데이터소스를 허용하지 않음을 의미한다. 설정되지 않으면 데이터소스 ID를 JNDI 이름으로 사용한다. |
[-dscn,--dataSourceClassName <data-source-class-name>] | JDBC 드라이버 데이터소스 클래스의 이름을 설정한다. 패키지 이름을 포함하는 완전한 형태로 적는다. |
[-dst,--dataSourceType <data-source-type>] | 데이터소스의 타입을 설정한다.
|
[-vendor,--vendor <vendor>] | JDBC 드라이버 벤더의 이름을 설정한다. |
[-desc,--description <description>] | 데이터소스에 대한 설명이다. |
[-sn,--serverName <server-name>] | 데이터베이스가 실행되는 호스트 이름 또는 IP를 설정한다. |
[-pn,--portNumber <port-number>] | 데이터베이스 리스너의 포트 번호를 설정한다. |
[-dn,--databaseName <database-name>] | 데이터베이스의 이름을 설정한다. Oracle의 경우 데이터베이스의 SID를 설정한다. |
[-user,--user <user>] | 데이터베이스 사용자의 ID를 설정한다. 트랜잭션 처리 등을 위해서는 충분한 권한을 가지고 있어야 한다. |
[-pw,--password <password>] | 데이터베이스 사용자의 패스워드를 설정한다. 패스워드를 암호화해서 저장할 때에는 '{algorithm}ciphertext' 와 같은 형식으로 쓴다. |
[-lt,--loginTimeout <login-timeout>] | 데이터베이스와 커넥션을 맺을 때 로그인 단계에서 기다리는 최대 시간이다. (단위: 초) |
[-il,--isolationLevel <isolation-level>] | java.sql.Connection에서 정의하는 트랜잭션 isolation을 설정한다. |
[-pdt,--poolDestroyTimeout <pool-destroy-timeout>] | Connection Pool destroy 완료를 기다리는 시간이다. (단위: ms) 데이터소스를 정의한 애플리케이션을 undeploy하거나 서버가 내려갈 때 Connection Pool을 destroy하게 되는데, 커넥션을 제거하면서 DB와 네트워크 통신을 할 경우 블록될 가능성이 존재하여 Connection Pool destory를 마냥 기다리는 문제가 발생할 수 있다. 이와 같은 문제를 피하기 위해 이 설정을 사용한다. 설정한 시간 만큼만 Connection Pool destroy 완료를 기다려보고 undeploy 또는 서버 다운을 이어서 진행한다. |
[-prop,--property <property>] | JDBC 드라이버별로 제각각일 수 있는 속성들의 설정을 모두 수용하기 위해 제공되는 통일된 설정 방법이다. 한 개의 속성에 대하여 "이름:타입=값"의 형태로 입력한다. 한 개 이상의 속성이 설정될 경우 콤마(,)로 구분한다. |
[-sxe,--supportXaEmulation <support-xa-emulation>] | Connection Pool 데이터소스 타입의 데이터소스에만 유효한 설정으로 이 설정을 적용할 경우 Connection Pool 데이터소스의 커넥션이 글로벌 트랜잭션(XA)에 참여하도록 에뮬레이션한다. JEUS 6까지의 LocalXADataSource의 대체 옵션으로 ConnectionPoolDataSource 타입의 Connection Pool에 사용한다. 하나의 트랜잭션에는 하나의 Connection Pool 데이터소스만 참여할 수 있다는 점에 유의해야 한다. |
[-ddba,--delegationDba <delegation-dba>] | 데이터베이스의 세션을 강제로 죽일 수 있는 권한(DBA 권한)을 가진 데이터소스(이하 DBA 위임 데이터소스)의 JNDI 이름을 설정한다. 이 설정을 한 데이터소스로부터 얻어진 커넥션을 이용한 쿼리 수행이 일정 시간 이상 지체되면 JEUS는 위임 DBA 데이터소스를 통해 해당 커넥션과 연관된 DB 세션을 강제로 제거하도록 하는 쿼리를 DB에 보낸다. 이후 애플리케이션이 사용 불가능해진 커넥션으로 인해 발생한 예외를 처리하고 커넥션을 닫아주게 되면 JEUS는 그 커넥션을 제거하고 DB로부터 새로운 커넥션을 얻어 Connection Pool에 넣는다. 현재 Tibero, Oracle, Sybase에 대해서 이 기능을 지원한다. 이 기능은 JDBC 2.0 이하 JDBC 드라이버에서 쿼리 수행이 지나치게 오래 걸릴 때 그것을 중단시킬 방법으로서 고안된 것이다. 그러나 JDBC 3.0 또는 그 이상의 버전을 구현한 JDBC 드라이버는 java.sql.Statement#setQueryTimeout을 구현하므로 이 기능을 통해 강제로 DB 세션을 제거하기보다는 Statement Query Timeout 설정을 이용하는 것을 권장한다. 특히, XA 데이터소스의 경우 XA가 정상적으로 진행하는 도중에 DB 세션이 제거되면 XA 처리에 문제가 발생할 수 있기 때문에 Statement Query Timeout과 트랜잭션 타임아웃을 적절하게 설정하여 사용하도록 한다. |
[-dbat,--dbaTimeout <dba-timeout>] | 위임 DBA 데이터소스는 이 설정으로 지정한 시간 동안만 커넥션의 쿼리 수행을 기다린다. 설정한 시간이 경과하면 해당 커넥션과 연관된 DB 세션을 강제로 제거하도록 하는 쿼리를 DB로 보낸다. --delegationDba가 설정된 경우에만 유효하다. (단위: ms) |
[-cqc,--checkQueryClass <check-query-class>] | 사용자나 개발자가 커넥션 점검 기능을 커스터마이즈할 경우 그것을 위해 구현한 클래스의 패키지 이름을 포함한 이름을 적어준다. 이때 그 클래스는 반드시 jeus.jdbc.connectionpool.JEUSConnectionChecker 인터페이스를 구현해야 한다. |
[-is,--initSql <init-sql>] | 커넥션을 생성한 후 가장 처음으로 수행할 SQL 쿼리를 설정한다. |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-detail] | 변경 결과에 대한 상세 정보가 출력된다. |
예제
[DAS]domain1.adminServer>addds -id ds1 -dst ConnectionPoolDataSource -dscn
oracle.jdbc.pool.OracleConnectionPoolDataSource -sn 61.77.153.4 -pn 1521 -
dn orcl -user scott -password tiger -property driverType;java.lang.String;thin
Successfully performed the ADD operation for data source [ds1] to domain.
Check the results using "add-data-source"
데이터소스를 도메인으로부터 동적으로 삭제한다.
alias
rmds
사용법
remove-data-source [-id,--dataSourceID <data-source-id>] [-f,--forceLock] [-detail]
파라미터
파라미터 | 설명 |
---|---|
[-id,--dataSourceID <data-source-id>] | 데이터소스 ID를 설정한다. |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-detail] | 변경 결과에 대한 상세한 정보가 출력된다. |
예제
[DAS]domain1.adminServer>rmds -id ds1
Successfully performed the REMOVE operation for data source [ds1] from the domain.
Check the results using "remove-data-source"
데이터소스의 설정을 변경한다. 일부 설정은 동적으로 변경 가능하다.
alias
modifyds
사용법
modify-data-source -id,--dataSourceID <data-source-id> [-ac,--autoCommit <auto-commit-value>] [-sqt,--stmtQueryTimeout <statement-query-timeout>] [-aocl,--actionOnConnectionLeak <action-on-connection-leak>] [-min,--min <minimum-size>] [-max,--max <maximum-size>] [-step,--step <resizing-step>] [-period,--period <resizing-period>] [-ew,--enableWait <enable-wait>] [-wt,--waitTime <wait-time>] [-dds,--delegationDataSource <delegation-data-source>] [-muc,--maxUseCount <max-use-count>] [-cq,--checkQuery <check-query>] [-cqt,--checkQueryTimeout <check-query-timeout>] [-nvi,--nonValidationInterval <non-validation-interval>] [-cqp,--checkQueryPeriod <check-query-period>] [-cqrc,--checkQueryRetrialCount <check-query-retrial-count>] [-dpocq,--destroyPolicyOnCheckQuery <destroy-policy-on-check-query>] [-scs,--stmtCachingSize <stmt-caching-size>] [-sfs,--stmtFetchSize <stmt-fetch-size>] [-ct,--connectionTrace <connection-trace>] [-gct,--getConnectionTrace <get-connection-trace>] [-act,--autoCommitTrace <auto-commit-trace>] [-ust,--useSqlTrace <use-sql-trace>] [-kcho,--keepConnectionHandleOpen <keep-connection-handle-open>] [-en,--exportName <export-name>] [-dscn,--dataSourceClassName <data-source-class-name>] [-dst,--dataSourceType <data-source-type>] [-vendor,--vendor <vendor>] [-desc,--description <description>] [-sn,--serverName <server-name>] [-pn,--portNumber <port-number>] [-dn,--databaseName <database-name>] [-user,--user <user>] [-pw,--password <password>] [-lt,--loginTimeout <login-timeout>] [-il,--isolationLevel <isolation-level>] [-pdt,--poolDestroyTimeout <pool-destroy-timeout>] [-prop,--property <property>] [-sxe,--supportXaEmulation <support-xa-emulation>] [-ddba,--delegationDba <delegation-dba>] [-dbat,--dbaTimeout <dba-timeout>] [-cqc,--checkQueryClass <check-query-class>] [-is,--initSql <init-sql>] [-f,--forceLock] [-detail]
파라미터
파라미터 | 설명 |
---|---|
[-id,--dataSourceID <data-source-id>] | 데이터소스의 ID를 설정한다. 하나의 도메인에서 데이터소스 ID는 데이터소스의 유일한 식별자로서 동작하도록 설정해야 한다. |
[-ac,--autoCommit <auto-commit-value>] | [동적 변경] 데이터소스의 기본 auto-commit 설정으로 다음 중에 하나를 설정한다.
XA 에뮬레이션 기능을 사용하는 Connection Pool 데이터소스 또는 XA 데이터소스의 경우 트랜잭션이 연동되어 있지 않을 때만 이 설정값이 유효하다. |
[-sqt,--stmtQueryTimeout <statement-query-timeout>] | [동적 변경] 데이터소스로부터 얻은 커넥션을 통해 생성된 java.sql.Statement 객체에 지정될 쿼리 타임아웃을 설정한다. JEUS는 JDBC API를 통해 정의되고 JDBC 드라이버 벤더에서 구현한 쿼리 타임아웃 설정 메소드(java.sql.Statement#setQueryTimeout)를 호출할 뿐이다. JDBC 드라이버 벤더별로 쿼리 타임아웃 적용에 약간의 차이를 보인다. (단위: ms) |
[-aocl,--actionOnConnectionLeak <action-on-connection-leak>] | [동적 변경] 애플리케이션(주로 stateless 컴포넌트 - Servelet/JSP, stateless Session Bean, MDB)에서 사용하고 제대로 반환하지 않은 JDBC 커넥션을 감지했을 때 JEUS가 취하는 액션을 정의한다. 다음의 값 중에 하나를 설정한다.
설정하지 않을 경우 서버의 설정을 따른다.설정을 해제하려면 옵션 값으로 "unset"을 입력한다. |
[-min,--min <minimum-size>] | [동적 변경] Connection Pool에 Pooling되는 커넥션의 최솟값을 지정한다. |
[-max,--max <maximum-size>] | [동적 변경] Connection Pool에 Pooling되는 커넥션의 최댓값을 지정한다. |
[-step,--step <resizing-step>] | [동적 변경] Connection Pool에 커넥션이 부족할 때 현재 커넥션의 개수가 최댓값 이하인 경우 DB로부터 커넥션을 새로 받아와 채우는 데 이때 새로 받아오는 커넥션의 개수를 지정한다. |
[-period,--period <resizing-period>] | [동적 변경] Connection Pool의 크기를 최솟값에 맞춰 조정하는 주기를 설정한다. Connection Pool의 크기가 최솟값을 초과하는 경우에는 사용하지 않는 커넥션들을 닫아주고 Connection Pool의 크기가 최솟값에 미치지 못하는 경우에는 DB로 붙여 커넥션을 새로 받아와 채운다. (단위: ms) |
[-ew,--enableWait <enable-wait>] | [동적 변경] Connection Pool에 사용 가능한 커넥션이 없고 커넥션도 더 이상 늘릴 수 없을 때 커넥션 요청을 처리하는 방법을 결정한다.
|
[-wt,--waitTime <wait-time>] | [동적 변경] --enable-wait이 true인 경우에만 유효한 설정으로 커넥션을 얻기 위해 대기하는 한계 시간을 나타낸다. 만약 이 시간이 지나도 커넥션을 얻지 못하면 JEUS는 타임아웃 예외를 발생시킨다. (단위: ms) |
[-dds,--delegationDataSource <delegation-data-source>] | [동적 변경] 트랜잭션과 연동하지 않은 상태에서는 XA 데이터소스를 통해 커넥션을 얻기보다 Connection Pool 데이터소스를 통해 커넥션을 얻는 것이 낫다. 기능의 차이도 없고, 트랜잭션 연동을 위한 기능을 포함하고 있는 XA 커넥션은 시스템에 부담을 더 주기 때문이다. 이를 위해 XA 데이터소스인 경우 이 설정을 통하여 트랜잭션과 연동하지 않은 상태에서의 커넥션 요청을 위임할 Connection Pool 데이터소스를 지정한다. 한편 Oracle, DB2 등에서 XA 커넥션을 트랜잭션 없이도 사용하고, 트랜잭션에 연동도 하면서 사용하다 보면 XA를 시작할 수 없는 예외가 발생하기도 하는데 정확한 원인은 알 수 없기 때문에 이를 회피하기 위한 방편으로서도 이 설정을 이용한다. 설정을 해제하려면 옵션 값으로 "unset"을 입력한다. |
[-muc,--maxUseCount <max-use-count>] | [동적 변경] 커넥션의 최대 사용 횟수이다. 이 사용 횟수 이상이 되면 새로운 커넥션으로 교체한다. 기본값은 0으로 이는 커넥션을 교체하지 않겠다는 의미다. |
[-cq,--checkQuery <check-query>] | [동적 변경] 커넥션 상태 점검에 사용될 쿼리(check-query)를 설정한다. 보통 DB와의 연결 유효성만을 확인하면 되므로 간단한 select 쿼리를 사용하는 것을 권장한다. 설정을 해제하려면 옵션 값으로 "unset"을 입력한다. |
[-cqt,--checkQueryTimeout <check-query-timeout>] | [동적 변경] 커넥션 점검을 위해 check-query를 수행했을 때 DB가 응답이 없어 드라이버가 계속 기다리는 상황이 발생할 수 있다. 이런 경우를 피하기 위해 check-query에 대해 쿼리 타임아웃을 적용한다. 이것은 JDBC API에서 정의한 java.sql.Statement#setQueryTimeout 메소드의 호출을 통해 가능하다. 1000ms보다 작을 경우 0으로 설정되므로 주의한다. (단위: ms) |
[-nvi,--nonValidationInterval <non-validation-interval>] | [동적 변경] 커넥션 점검이 너무 잦아서 오버헤드가 발생하는 경우 설정한다. 커넥션 점검을 수행하기 직전의 시각과 가장 최근의 커넥션 점검 시각과의 차이가 설정한 시간 간격 이내면 커넥션 점검을 생략하도록 하는 설정이다. (단위: ms) 예를 들어 이 설정값이 5000ms인 경우 어떤 커넥션의 마지막 커넥션 점검 시간으로부터 아직 5초가 지나지 않았다면 그 커넥션에 대한 점검이 생략된 채 애플리케이션에 전달되게 된다. |
[-cqp,--checkQueryPeriod <check-query-period>] | [동적 변경] Connection Pool의 커넥션들을 설정한 주기마다 체크하여 문제가 있는 커넥션을 제거한다. (단위: ms) 클러스터 데이터소스에 속한 데이터소스는 자신의 상태 체크에 사용하므로 반드시 설정해야 한다. |
[-cqrc,--checkQueryRetrialCount <check-query-retrial-count>] | [동적 변경] 커넥션 점검은 기본적으로 --destroyPolicyOnCheckQuery가 FAILED_CONNECTION_ONLY로 설정된 경우 한 번 수행된다. --destroyPolicyOnCheckQuery가 ALL_CONNECTIONS로 설정되어 있을 경우에는 최초의 커넥션 점검에서 커넥션 이상이 확인되면 또 다른 커넥션에 대해서 한 번 더 커넥션 점검이 이루어져 총 두 번의 커넥션 점검이 수행될 수 있다. 이 설정값이 이러한 기본 커넥션 점검 수행 횟수에 더해져 최종 커넥션 점검 수행 횟수가 정해진다. |
[-dpocq,--destroyPolicyOnCheckQuery <destroy-policy-on-check-query>] | [동적 변경] 커넥션이 유효하지 않은 것으로 확인되었을 때 Connection Pool에 있는 다른 커넥션들에 대한 처리 정책을 설정한다.
|
[-scs,--stmtCachingSize <stmt-caching-size>] | [동적 변경] JDBC 드라이버는 애플리케이션에서 prepared statement를 요청할 때마다 파라미터로 넘어온 SQL 문장을 파싱한다. 이 파싱 작업이 성능에 영향을 줄 수 있기 때문에 이를 피하기 위해서 JEUS 내부적으로 prepared statement를 캐시하는 기능을 제공한다. 이 설정은 캐싱할 prepared statement의 개수를 지정한다. 이 기능을 사용하면 커넥션을 항상 열어둔 채로 사용하기 때문에 커넥션을 닫았을 때 드라이버가 해주는 클리어 작업이 이뤄지지 않는다. 예를 들어 Oracle JDBC 드라이버의 경우 auto-commit을 false로 설정해서 사용하다가 commit이나 rollback을 하지 않고 커넥션을 닫으면 무조건 commit을 하도록 되어 있는데 이러한 처리가 되지 않는다. 만약 JDBC 드라이버에서 statement 캐시 기능을 제공한다면 그것을 사용하기 바란다. |
[-sfs,--stmtFetchSize <stmt-fetch-size>] | [동적 변경] JDBC 드라이버 statement의 fetch 사이즈를 설정한다. |
[-ct,--connectionTrace <connection-trace>] | [동적 변경] 커넥션 관련 부가 정보 제공 여부를 결정한다.
|
[-gct,--getConnectionTrace <get-connection-trace>] | [동적 변경] 애플리케이션이 java.sql.DataSource#getConnection을 호출했을 때의 Stack Trace를 확인할 수 있도록 한다. |
[-act,--autoCommitTrace <auto-commit-trace>] | [동적 변경] java.sql.Connection#setAutoCommit이 호출되었을 때 관련 로그와 Stack Trace를 서버 로그에 기록하도록 한다. 단, jeus.jdbc.connection-trace 로거의 로그 레벨을 FINE으로 설정해야 한다. |
[-ust,--useSqlTrace <use-sql-trace>] | [동적 변경] Connection별로 사용하고 있는 SQL 쿼리를 보여주는 기능이다. jeus.jdbc.sql 로거의 레벨을 FINE으로 설정할 경우 서버 로그를 통해서 SQL 쿼리 히스토리를 확인할 수 있다. 이 기능을 사용할 경우 JDBC 드라이버의 statement 구현체를 JEUS의 것으로 감싸게되므로 JDBC 드라이버의 statement 객체를 캐스팅해서 사용하는 애플리케이션은 이 기능을 사용할 수 없다. |
[-kcho,--keepConnectionHandleOpen <keep-connection-handle-open>] | [동적 변경] true로 설정하면 XA 커넥션을 사용하고 Pool에 반납할 때 그에 대한 핸들(또는 논리적 커넥션)을 닫지 않고 열어둔다. DB2 universal 드라이버의 경우에 사용할 필요가 있다. 이 기능을 사용하면 커넥션 핸들이 닫히지 않으므로 커넥션을 닫을 때 드라이버가 해주는 클리어 작업이 이뤄지지 않는다. 예를 들어 Oracle JDBC 드라이버의 경우 auto-commit을 false로 설정해서 사용하다가 commit이나 rollback을 하지 않고 커넥션을 닫으면 무조건 commit을 하도록 되어 있는데 이러한 처리가 되지 않는다. |
[-en,--exportName <export-name>] | 데이터소스의 JNDI 이름을 설정한다. 서로 다른 두 데이터소스가 서로 다른 서버에 JNDI 바인드되는 것을 보장할 수 있으면 해당 데이터소스들은 서로 같은 JNDI 이름을 가질 수 있다. 이는 임의의 서버에서 동일한 JNDI 이름을 가지는 서로 다른 데이터소스를 허용하지 않음을 의미한다. 설정되지 않으면 데이터 소스 ID를 JNDI 이름으로 사용한다. 설정을 해제하려면 옵션 값으로 "unset"을 입력한다. |
[-dscn,--dataSourceClassName <data-source-class-name>] | JDBC 드라이버 데이터소스 클래스의 이름을 설정한다. 패키지 이름을 포함하는 완전한 형태로 적는다. |
[-dst,--dataSourceType <data-source-type>] | 데이터소스의 타입을 설정한다.
|
[-vendor,--vendor <vendor>] | JDBC 드라이버 벤더의 이름를 설정한다. 설정을 해제하려면 옵션 값으로 "unset"을 입력한다. |
[-desc,--description <description>] | 데이터소스에 대한 설명이다. 설정을 해제하려면 옵션 값으로 "unset"을 입력한다. |
[-sn,--serverName <server-name>] | 데이터베이스가 실행되는 호스트 이름 또는 IP를 설정한다. 설정을 해제하려면 옵션 값으로 "unset"을 입력한다. |
[-pn,--portNumber <port-number>] | 데이터베이스 리스너의 포트 번호를 설정한다. 설정을 해제하려면 옵션 값으로 "unset"을 입력한다. |
[-dn,--databaseName <database-name>] | 데이터베이스의 이름을 설정한다. Oracle의 경우 데이터베이스의 SID를 설정한다. 설정을 해제하려면 옵션 값으로 "unset"을 입력한다. |
[-user,--user <user>] | 데이터베이스 사용자의 ID를 설정한다. 트랜잭션 처리 등을 위해서는 충분한 권한을 가지고 있어야 한다. 설정을 해제하려면 옵션 값으로 "unset"을 입력한다. |
[-pw,--password <password>] | 데이터베이스 사용자의 패스워드를 설정한다. 패스워드는 '{algorithm}ciphertext' 와 같은 형식으로 암호화해서 저장한다. 설정을 해제하려면 옵션 값으로 "unset"을 입력한다. |
[-lt,--loginTimeout <login-timeout>] | 데이터베이스와 커넥션을 맺을 때 로그인 단계에서 기다리는 최대 시간을 설정한다. (단위: 초) |
[-il,--isolationLevel <isolation-level>] | java.sql.Connection에서 정의하는 트랜잭션 isolation을 설정한다. 설정하지 않은 경우 JDBC 드라이버의 기본 설정을 따른다. 설정을 해제하려면 옵션 값으로 "unset"을 입력한다. |
[-pdt,--poolDestroyTimeout <pool-destroy-timeout>] | Connection Pool destroy 완료를 기다리는 시간이다. (단위: ms) 데이터소스를 정의한 애플리케이션을 undeploy하거나 서버가 내려갈 때 Connection Pool을 destroy하게 되는데, 커넥션을 제거하면서 DB와 네트워크 통신을 할 경우 블록될 가능성이 존재하여 Connection Pool destory를 마냥 기다리는 문제가 발생할 수 있다. 이와 같은 문제를 피하기 위해 이 설정을 사용한다. 설정한 시간 만큼만 Connection Pool destroy 완료를 기다려보고 undeploy 또는 서버 다운을 이어서 진행한다. |
[-prop,--property <property>] | JDBC 드라이버별로 제각각일 수 있는 속성들의 설정을 모두 수용하기 위해 제공되는 통일된 설정 방법이다.
|
[-sxe,--supportXaEmulation <support-xa-emulation>] | Connection Pool 데이터소스 타입의 데이터소스에만 유효한 설정으로 이 설정을 적용할 경우 Connection Pool 데이터소스의 Connection이 글로벌 트랜잭션(XA)에 참여하도록 에뮬레이션한다. JEUS 6까지의 LocalXADataSource의 대체 옵션으로 ConnectionPoolDataSource 타입의 Connection Pool에 사용한다. 하나의 트랜잭션에는 하나의 Connection Pool 데이터소스만 참여할 수 있다는 점에 유의해야 한다. |
[-ddba,--delegationDba <delegation-dba>] | 데이터베이스의 세션을 강제로 죽일 수 있는 권한(DBA 권한)을 가진 데이터소스(이하 DBA 위임 데이터소스)의 JNDI 이름을 설정한다. 이 설정을 한 데이터소스로부터 얻어진 커넥션을 이용한 쿼리 수행이 일정 시간 이상 지체되면 JEUS는 위임 DBA 데이터소스를 통해 해당 커넥션과 연관된 DB 세션을 강제로 제거하도록 하는 쿼리를 DB에 날린다. 이후 애플리케이션이 사용 불가능해진 커넥션으로 인해 발생한 예외를 처리하고 커넥션을 닫아주게 되면 JEUS는 그 커넥션을 제거하고 DB로부터 새로운 커넥션을 얻어 Connection Pool에 넣는다. 현재 Tibero, Oracle, Sybase에 대해서 이 기능을 지원한다. 이 기능은 JDBC 2.0 이하 JDBC 드라이버에서 쿼리 수행이 지나치게 오래 걸릴 때 그것을 중단시킬 방법으로서 고안된 것이다. 그러나 JDBC 3.0 또는 그 이상의 버전을 구현한 JDBC 드라이버는 java.sql.Statement#setQueryTimeout을 구현하므로 이 기능을 통해 강제로 DB 세션을 제거하기보다는 Statement Query Timeout 설정을 이용하는 것을 권장한다. 특히나 XA 데이터소스의 경우 XA가 정상적으로 진행하는 도중에 DB 세션이 제거되면 XA 처리에 문제가 발생할 수 있기 때문에 Statement Query Timeout과 트랜잭션 타임아웃을 적절하게 설정하여 사용하도록 한다. 설정을 해제하려면 옵션 값으로 "unset"을 입력한다. |
[-dbat,--dbaTimeout <dba-timeout>] | 위임 DBA 데이터소스는 이 설정으로 지정한 시간 동안만 커넥션의 쿼리 수행을 기다려준다. 설정한 시간이 경과하면 해당 커넥션과 연관된 DB 세션을 강제로 제거하는 쿼리를 DB로 보낸다. --delegationDba가 설정된 경우에만 유효하다. (단위: ms) |
[-cqc,--checkQueryClass <check-query-class>] | 사용자나 개발자가 커넥션 점검 기능을 커스터마이즈할 경우 그것을 위해 구현한 클래스의 패키지 이름을 포함한 이름을 적어준다. 이때 그 클래스는 반드시 jeus.jdbc.connectionpool.JEUSConnectionChecker 인터페이스를 구현해야 한다. 설정을 해제하려면 옵션 값으로 "unset"을 입력한다. |
[-is,--initSql <init-sql>] | 커넥션을 생성한 후 가장 처음으로 수행할 SQL 쿼리를 설정한다. 설정을 해제하려면 옵션 값으로 "unset"을 입력한다. |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-detail] | 변경 결과에 대한 상세 정보가 출력된다. |
예제
[DAS]domain1.adminServer>modifyds -id ds1 -min 10 -max 50
Successfully performed the MODIFY operation for configuration of the data source [ds1].
Check the results using "modify-data-source -id ds1"
도메인에 존재하는 모든 데이터소스의 목록을 조회한다. 특정 데이터소스의 ID를 명시할 경우 해당 데이터소스의 설정을 자세히 조회한다.
alias
listds, lsds
사용법
list-data-sources [-id,--dataSourceID <data-source-id>]
파라미터
파라미터 | 설명 |
---|---|
[-id,--dataSourceID <data-source-id>] | 데이터소스 ID이다. |
예제
[DAS]domain1.adminServer>lsds The list of data sources ================================================================================ +----------------+----------------------+--------------------------------------+ | Data source ID | JNDI export name | Data source type | +----------------+----------------------+--------------------------------------+ | ds1 | ds1 | ConnectionPoolDataSource | | ds2 | ds2 | ConnectionPoolDataSource | | ds3 | ds3 | ConnectionPoolDataSource | +----------------+----------------------+--------------------------------------+ ================================================================================ [DAS]domain1.adminServer>lsds -id ds1 The configuration of the data source [ds1] ================================================================================ +----------------------------+-------------------------------------------------+ | Configuration name | Configuration value | +----------------------------+-------------------------------------------------+ | id | ds1 | | export-name | ds1 | | data-source-class-name | oracle.jdbc.pool.OracleConnectionPoolDataSource | | data-source-type | ConnectionPoolDataSource | | vendor | oracle | | server-name | 61.77.153.4 | | port-number | 1521 | | database-name | orcl | | user | scott | | password | tiger | | login-timeout | 0 | | auto-commit | DRIVER | | stmt-query-timeout | 0 | | pool-destroy-timeout | 10000 | | property | [driverType;java.lang.String;thin] | | action-on-connection-leak | Warning | | support-xa-emulation | false | | min | 10 | | max | 50 | | step | 1 | | period | 3600000 | | enable-wait | false | | wait-time | 10000 | | max-use-count | 0 | | dbaTimeout | -1 | | stmt-caching-size | -1 | | stmt-fetch-size | -1 | | connection-trace | false | | get-connection-trace | true | | auto-commit-trace | false | | use-sql-trace | false | | keep-connection-handle-open| false | +----------------------------+-------------------------------------------------+ ================================================================================
데이터소스의 설정이 올바른지 확인한다.
alias
testdsconf, testdscfg
사용법
test-data-source-config -id <data-source-id>
파라미터
파라미터 | 설명 |
---|---|
-id <data-source-id> | 데이터소스 ID이다. |
예제
[DAS]domain1.adminServer>testdscfg -id ds1
The data source [ds1] is properly configured and can be used.
클러스터 데이터소스를 도메인에 동적으로 추가한다.
alias
addcds
사용법
add-cluster-data-source [-id,--dataSourceID <data-source-id>] [-en,--exportName <export-name>] [-dss,--dataSourceSelector <data-source-selector>] [-lb,--loadBalance <load-balance>] [-ipc,--isPreConn <is-pre-conn>] [-ufb,--useFailback <use-failback>] [-cds,--componentDataSources <component-data-sources>] [-f,--forceLock] [-detail]
파라미터
파라미터 | 설명 |
---|---|
[-id,--dataSourceID <data-source-id>] | 클러스터 데이터소스의 ID이다. 하나의 도메인에서 클러스터 데이터소스 ID는 클러스터 데이터소스의 유일한 식별자로서 동작하도록 설정해야 한다. |
[-en,--exportName <export-name>] | 클러스터 데이터소스의 JNDI 이름을 설정한다. 서로 다른 두 데이터소스가 서로 다른 서버에 JNDI 바인드되는 것을 보장할 수 있으면 해당 데이터소스들은 서로 같은 JNDI 이름을 가질 수 있다. 이는 임의의 서버에서 동일한 JNDI 이름을 가지는 서로 다른 데이터소스를 허용하지 않음을 의미한다. 설정되지 않으면 클러스터 데이터소스 ID를 JNDI 이름으로 사용한다. |
[-dss,--dataSourceSelector <data-source-selector>] | 클러스터 데이터소스로부터 커넥션을 얻을 때 사용자나 개발자가 특정 컴포넌트 데이터소스 선택에 대한 정책을 직접 정의할 수 있다. jeus.jdbc.helper.DataSourceSelector 추상 클래스를 상속하여 구현하고 그 구현 클래스의 패키지 이름을 포함하는 이름을 적어준다. 이것을 설정하면 --loadBalance 설정은 아무런 기능을 하지 않으며 failover와 failback을 무조건 시도한다.
|
[-lb,--loadBalance <load-balance>] | load balancing 여부를 설정한다.
|
[-ipc,--isPreConn <is-pre-conn>] | 클러스터 데이터소스에 속한 컴포넌트 데이터소스들의 Connection Pool을 미리 생성할지 여부를 결정한다. 컴포넌트 데이터소스들의 Connection Pool을 미리 생성해 놓으면 성능상으로 이점이 있으나 리소스가 낭비되어 효율이 떨어진다. |
[-ufb,--useFailback <use-failback>] | 이전 버전의 JEUS에서는 failover만을 지원했으므로 이에 대한 호환성을 위해 제공하는 옵션이다. 보조 데이터소스로 failover한 후에 주 데이터소스로 failback할 것인지의 여부를 설정한다. 기본적으로 failback을 시도한다. failback을 위해서는 반드시 주 데이터소스에 대하여 --checkQuery 및 --checkQueryPeriod를 설정해야 한다. |
[-cds,--componentDataSources <component-data-sources>] | 클러스터 데이터소스에 속한 컴포넌트 데이터소스들의 데이터소스 ID를 명시한다. |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-detail] | 변경 결과에 대한 상세 정보가 출력된다. |
예제
[DAS]domain1.adminServer>addcds -id cds1 -cds ds1,ds2
Successfully performed the ADD operation for cluster data source [cds1] to domain.
Check the results using "add-cluster-data-source"
클러스터 데이터소스를 도메인으로부터 동적으로 삭제한다.
alias
rmcds
사용법
remove-cluster-data-source [-id,--dataSourceID <data-source-id>] [-f,--forceLock] [-detail]
파라미터
파라미터 | 설명 |
---|---|
[-id,--dataSourceID <data-source-id>] | 클러스터 데이터소스 ID이다. |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-detail] | 변경 결과에 대한 상세 정보가 출력된다. |
예제
[DAS]domain1.adminServer>rmcds -id cds1
Successfully performed the REMOVE operation for cluster data source [cds1] from domain.
Check the results using "remove-cluster-data-source"
클러스터 데이터소스의 설정을 변경한다. 대부분의 설정이 동적으로 변경 가능하다.
alias
modifycds
사용법
modify-cluster-data-source -id,--dataSourceID <data-source-id> [-en,--exportName <export-name>] [-dss,--dataSourceSelector <data-source-selector>] [-lb,--loadBalance <load-balance>] [-ipc,--isPreConn <is-pre-conn>] [-ufb,--useFailback <use-failback>] [-cds,--componentDataSources <component-data-sources>] [-oc,--onsConfig <ons-config>] [-xa,--xaAffinity <xa-affinity>] [-f,--forceLock] [-detail]
파라미터
파라미터 | 설명 |
---|---|
-id,--dataSourceID <data-source-id>] | 클러스터 데이터소스의 ID을 설정한다. 하나의 도메인에서 클러스터 데이터소스 ID는 클러스터 데이터 소스의 유일한 식별자로서 동작하도록 설정해야 한다. |
[-en,--exportName <export-name>] | 클러스터 데이터소스의 JNDI 이름을 설정한다. 서로 다른 두 데이터소스가 서로 다른 서버에 JNDI 바인드되는 것을 보장할 수 있으면 해당 데이터소스들은 서로 같은 JNDI 이름을 가질 수 있다. 이는 임의의 서버에서 동일한 JNDI 이름을 가지는 서로 다른 데이터소스를 허용하지 않음을 의미한다. 설정되지 않으면 클러스터 데이터소스 ID를 JNDI 이름으로 사용한다. 설정을 해제하려면 옵션 값으로 "unset"을 입력한다. |
[-dss,--dataSourceSelector <data-source-selector>] | [동적 변경] 클러스터 데이터 소스로부터 커넥션을 얻을 때 사용자나 개발자가 특정 컴포넌트 데이터소스 선택에 대한 정책을 직접 정의할 수 있다. jeus.jdbc.helper.DataSourceSelector 추상 클래스를 상속하여 구현하고 그 구현 클래스의 패키지 이름을 포함하는 이름을 적어준다. 이것을 설정하면 --loadBalance 설정은 아무런 기능을 하지 않으며 failover와 failback을 무조건 시도한다.
설정을 해제하려면 옵션 값으로 "unset"을 입력한다. |
[-lb,--loadBalance <load-balance>] | [동적 변경] load balancing 여부를 설정한다.
|
[-ipc,--isPreConn <is-pre-conn>] | [동적 변경] 클러스터 데이터소스에 속한 컴포넌트 데이터소스들의 Connection Pool을 미리 생성할지 여부를 결정한다. 컴포넌트 데이터소스들의 Connection Pool을 미리 생성해 놓으면 성능상으로 이점이 있으나 리소스의 절약면에서는 좋지 못하다. |
[-ufb,--useFailback <use-failback>] | [동적 변경] 이전 버전의 JEUS에서는 failover만을 지원했으므로 이에 대한 호환성을 위해 제공하는 옵션이다. 보조 데이터소스로 failover한 후에 주 데이터소스로 failback할 것인지의 여부를 설정한다. 기본적으로 failback을 시도한다. failback을 위해서는 반드시 주 데이터소스에 대하여 --checkQuery 및 --checkQueryPeriod를 설정해야 한다. |
[-cds,--componentDataSources <component-data-sources>] | [동적 변경] 클러스터 데이터소스에 속한 컴포넌트 데이터소스들의 데이터소스 ID를 명시한다. |
[-oc,--onsConfig <ons-config>] | ONS와 결합된 클러스터 데이터소를 사용하고자 할 때 설정한다. ONS상의 각 RAC 노드들이 ONS 통신에 사용하는 IP, 포트를 적는다. 클러스터 데이터소스는 설정된 IP, 포트들에 소켓 연결을 맺어 ONS 클라이언트로 동작하게 된다. 다음과 같은 형식으로 적는다. nodes=host1:6200,host2:6200 |
[-xa,--xaAffinity <xa-affinity>] | 글로벌 트랜잭션 Affinity 설정 여부를 정한다. 이 설정이 켜지면 글로벌 트랜잭션 처리가 하나의 RAC 인스턴스에 한정하여 이루어져 글로벌 트랜잭션 처리 성능 향상을 꾀할 수 있다. |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-detail] | 변경 결과에 대한 상세 정보가 출력된다. |
예제
[DAS]domain1.adminServer>modifycds -id cds1 -cds ds1
Successfully performed the MODIFY operation for configuration of the cluster data source [cds1].
Check the results using "modify-cluster-data-source -id cds1"
도메인에 존재하는 모든 클러스터 데이터소스의 목록을 조회한다. 특정 데이터소스의 ID를 명시할 경우 해당 클러스터 데이터소스의 설정을 자세히 조회한다.
alias
listcds, lscds
사용법
list-cluster-data-sources [-id,--dataSourceID <data-source-id>]
파라미터
파라미터 | 설명 |
---|---|
[-id,--dataSourceID <data-source-id>] | 클러스터 데이터소스 ID이다. |
예제
[DAS]domain1.adminServer>lscds The list of cluster data sources ================================================================================ +--------------------+-----------------------+---------------------------------+ | Data source ID | JNDI export name | Component data sources | +--------------------+-----------------------+---------------------------------+ | cds1 | cds1 | [ds1, ds2] | | cds2 | cds2 | [ds3, ds4] | +--------------------+-----------------------+---------------------------------+ ================================================================================ [DAS]domain1.adminServer>lscds -id cds1 The configuration of cluster data source [cds1] ================================================================================ +------------------------------------------+-----------------------------------+ | Configuration name | Configuration value | +------------------------------------------+-----------------------------------+ | id | cds1 | | export-name | cds1 | | load-balance | false | | is-pre-conn | false | | use-failback | true | | component-data-sources | [ds1, ds2] | +------------------------------------------+-----------------------------------+ ================================================================================
JDBC나 JCA Connection Pool에 대한 모니터링 및 제어 기능을 제공한다. 명령어들의 목록은 다음과 같다.
명령어 | 설명 |
---|---|
create-connection-pool | JDBC Connection Pool을 생성한다. JCA Connection Pool에 대해서는 동작하지 않는다. |
enable-connection-pool | JDBC Connection Pool을 활성화한다. JCA Connection Pool에 대해서는 동작하지 않는다. |
disable-connection-pool | JDBC Connection Pool을 비활성화한다. JCA Connection Pool에 대해서는 동작하지 않는다. |
refresh-connection-pool | JDBC Connection Pool의 커넥션들을 새로운 커넥션으로 교체한다. JCA Connection Pool에 대해서는 동작하지 않는다. |
shrink-connection-pool | JDBC Connection Pool의 커넥션 개수를 설정된 커넥션 최솟값으로 조정한다. JCA Connection Pool에 대해서는 동작하지 않는다. |
control-connection-pool | JDBC나 JCA Connection Pool을 제어한다. Connection Pool 생성, Connection Pool 활성화, Connection Pool 비활성화, Connection Pool refresh, Connection Pool shrink가 가능하다. |
connection-pool-info | JDBC나 JCA Connection Pool을 모니터링한다. 특정 Connection Pool의 ID를 명시할 경우 해당 Connection Pool의 정보를 자세히 조회한다. |
control-cluster-data-source | 클러스터 데이터소스를 제어한다. 클러스터 데이터소스에 속한 컴포넌트 데이터소스의 목록을 보여주거나 failback을 수행할 수 있다. |
JDBC Connection Pool을 생성한다. JCA Connection Pool에 대해서는 동작하지 않는다.
alias
createcp
사용법
create-connection-pool -id <connection-pool-id> [-server <server-name>]
파라미터
파라미터 | 설명 |
---|---|
-id <connection-pool-id> | JDBC Connection Pool ID이다. |
[-server <server-name>] | 서버 이름이다. |
예제
[DAS]domain1.adminServer>createcp -id ds1 -server server1
Servers that successfully created a connection pool : server1
Servers that failed to create a connection pool : none.
JDBC Connection Pool을 활성화한다. JCA Connection Pool에 대해서는 동작하지 않는다.
alias
enablecp
사용법
enable-connection-pool -id <connection-pool-id> [-server <server-name>]
파라미터
파라미터 | 설명 |
---|---|
-id <connection-pool-id> | JDBC Connection Pool ID이다. |
[-server <server-name>] | 서버 이름이다. |
예제
[DAS]domain1.adminServer>enablecp -id ds1 -server server1
Servers that successfully enabled a connection pool : server1
Servers that failed to enable a connection pool : none.
JDBC Connection Pool을 비활성화한다. JCA Connection Pool에 대해서는 동작하지 않는다.
alias
disablecp
사용법
disable-connection-pool -id <connection-pool-id> [-server <server-name>]
파라미터
파라미터 | 설명 |
---|---|
-id <connection-pool-id> | JDBC Connection Pool ID이다. |
[-server <server-name>] | 서버 이름이다. |
예제
[DAS]domain1.adminServer>disablecp -id ds1 -server server1
Servers that successfully disabled a connection pool : server1
Servers that failed to disable a connection pool : none.
JDBC Connection Pool의 커넥션들을 새로운 커넥션으로 교체한다. JCA Connection Pool에 대해서는 동작하지 않는다.
alias
refreshcp
사용법
refresh-connection-pool -id <connection-pool-id> [-server <server-name>]
파라미터
파라미터 | 설명 |
---|---|
-id <connection-pool-id> | JDBC Connection Pool ID이다. |
[-server <server-name>] | 서버 이름이다. |
예제
[DAS]domain1.adminServer>refreshcp -id ds1 -server server1
Servers that successfully refreshed a connection pool : server1
Servers that failed to refresh a connection pool : none.
JDBC Connection Pool의 커넥션 개수를 설정된 커넥션 최솟값으로 조정한다. JCA Connection Pool에 대해서는 동작하지 않는다.
alias
shrinkcp
사용법
shrink-connection-pool -id <connection-pool-id> [-server <server-name>]
파라미터
파라미터 | 설명 |
---|---|
-id <connection-pool-id> | JDBC Connection Pool ID이다. |
[-server <server-name>] | 서버 이름이다. |
예제
[DAS]domain1.adminServer>shrinkcp -id ds1 -server server1
Servers that successfully shrank a connection pool : server1
Servers that failed to shrink a connection pool : none.
JDBC나 JCA Connection Pool을 제어한다. Connection Pool 생성, Connection Pool 활성화, Connection Pool 비활성화, Connection Pool refresh, Connection Pool shrink가 가능하다.
alias
controlcp, ctrlcp
사용법
control-connection-pool -id <connection-pool-id> [-server <server-name>] [-enable | -shrink | -disable | -refresh | -create]
파라미터
파라미터 | 설명 |
---|---|
-id <connection-pool-id> | Connection Pool ID이다. |
[-server <server-name>] | 서버 이름이다. |
-enable | Connection Pool을 활성화한다. |
-shrink | Connection Pool의 커넥션 개수를 설정된 커넥션 최솟값으로 조정한다. |
-disable | Connection Pool을 비활성화한다. |
-refresh | Connection Pool의 커넥션들을 새로운 커넥션으로 교체한다. |
-create | Connection Pool을 생성한다. |
예제
[DAS]domain1.adminServer>ctrlcp -id ds1 -server server1 -enable Servers that successfully enabled a connection pool : server1 Servers that failed to enable a connection pool : none. [DAS]domain1.adminServer>ctrlcp -id ds1 -server server1 -shrink Servers that successfully shrank a connection pool : server1 Servers that failed to shrink a connection pool : none. [DAS]domain1.adminServer>ctrlcp -id ds1 -server server1 -disable Servers that successfully disabled a connection pool : server1 Servers that failed to disable a connection pool : none. [DAS]domain1.adminServer>ctrlcp -id ds1 -server server1 -refresh Servers that successfully refreshed a connection pool : server1 Servers that failed to refresh a connection pool : none. [DAS]domain1.adminServer>ctrlcp -id ds1 -server server1 -create Servers that successfully created a connection pool : server1 Servers that failed to create a connection pool : none.
JDBC나 JCA Connection Pool을 모니터링한다. 특정 Connection Pool의 ID를 명시할 경우 해당 Connection Pool의 정보를 자세히 조회한다.
alias
cpinfo
사용법
connection-pool-info -server <server-name> [-id <connection-pool-id>] [-jca | -jdbc] [-jndi] [-active] [-t] [-stmt]
파라미터
파라미터 | 설명 |
---|---|
-server <server-name> | 서버 이름이다. |
[-id <connection-pool-id>] | Connection Pool ID이다. |
[-jca] | JCA Connection Pool의 정보만 표시한다. |
[-jdbc] | JDBC Connection Pool의 정보만 표시한다. |
[-jndi] | Connection Pool의 JNDI 이름을 표시한다. |
[-active] | 현재 서버에 생성된 Connection Pool만 표시한다. |
[-t] | 커넥션을 가장 최근에 사용한 Thread의 이름을 표시한다. -id 옵션이 설정된 경우에만 유효하다. |
[-stmt] | 각 커넥션별 Statement Cache의 정보를 표시한다. |
예제
[DAS]domain1.adminServer>cpinfo -server server1 -jndi -jdbc The connection pool information on the server [server1]. ================================================================================ +------------+------------+-----+-----+-----+------+--------+-----+-----+------+ | Connection | JNDI export| Min | Max | Acti| Idle | Disposa|Total| Wait| Enabl| | Pool ID | name | | | ve | | ble | | | ed | +------------+------------+-----+-----+-----+------+--------+-----+-----+------+ | ds1 | ds1 | 2 | 30 | 0 | 2 | 0 | 2 |false| true | +------------+------------+-----+-----+-----+------+--------+-----+-----+------+ | ds2 * | ds2 | 2 | 30 | 0 | 0 | 0 | 0 |false| false| +------------+------------+-----+-----+-----+------+--------+-----+-----+------+ * : has not been created, total = active + idle + disposable ================================================================================ [DAS]domain1.adminServer>cpinfo -server server1 -id ds1 -t -jdbc Information about connections in the server [server1]'s connection pool [ds1]. ================================================================================ +---------------+-------+-------------------+-----------+--------+-------------+ | Connection ID | State | State time(sec.) | Use count | Type | Thread name | +---------------+-------+-------------------+-----------+--------+-------------+ | ds1-1 | active| 1105.954 | 1 | pooled | http-w1 | | ds1-2 | idle | 1105.923 | 0 | pooled | | +---------------+-------+-------------------+-----------+--------+-------------+ ================================================================================ [DAS]domain1.adminServer>cpinfo -server server1 -id ds1 -stmt -jdbc Information about statement caches in the server [server1]'s connection pool [ds1]. ================================================================================ +--------------+-----------+--------+---------+--------+-----------+-----------+ | Connection ID| Access | Hit | Miss | Add | Remove | Current | | | Count | Count | Count | Count | Count | Size | +--------------+-----------+--------+---------+--------+-----------+-----------+ | ds1-1 | 5 | 0 | 5 | 5 | 0 | 5 | +--------------+-----------+--------+---------+--------+-----------+-----------+ | ds1-2 | 5 | 2 | 3 | 3 | 0 | 3 | +--------------+-----------+--------+---------+--------+-----------+-----------+ ================================================================================
클러스터 데이터소스를 제어한다. 클러스터 데이터소스에 속한 컴포넌트 데이터소스의 목록을 보여주거나 failback을 수행한다.
alias
controlcds, ctrlcds
사용법
control-cluster-data-source -server <server-name> -id <data-source-id> [-failback]
파라미터
파라미터 | 설명 |
---|---|
-server <server-name> | 서버 이름이다. |
-id <data-source-id> | 클러스터 데이터소스 ID이다. |
[-failback] | 클러스터 데이터소스에 대하여 failback을 수행한다. |
예제
[DAS]domain1.adminServer>ctrlcds -server server1 -id cds1 Component data sources of the cluster data source [cds1] : ds1, ds2 [DAS]domain1.adminServer>ctrlcds -server server1 -id cds1 -failback The failback for the cluster data source [cds1] succeeded.
트랜잭션 관련 명령어의 목록은 다음과 같다.
명령어 | 설명 |
---|---|
modify-transaction-manager | 지정 서버의 트랜잭션 매니저 설정을 변경한다. |
recover-transactions | 지정 서버의 리소스 매니저를 복구한다. 복구할 특정 리소스를 선택할 수 있다. |
show-transaction-manager | 지정 서버의 트랜잭션 매니저 설정을 확인한다. |
transaction-info | 지정 서버의 트랜잭션을 상태별로 확인한다. |
지정 서버의 트랜잭션 매니저 설정을 변경한다.
alias
modify-tm, modifytm, tmconfig, tmconf
사용법
modify-transaction-manager <server-name> [-at,--activeTimeout <active timeout>] [-pt,--prepareTimeout <prepare timeout>] [-pdt,--preparedTimeout <prepared timeout>] [-ct,--commitTimeout <commit timeout>] [-rt,--recoveryTimeout <recovery timeout>] [-it,--incompleteTimeout <incomplete timeout>] [-d,--txLogDir <transaction log directory>] [-a,--automaticRecovery <automatic recovery enable/disable>] [-f,--forceLock] [-detail]
파라미터
파라미터 | 설명 |
---|---|
<server-name> | 트랜잭션 설정을 변경할 서버의 이름이다. |
[-at,--activeTimeout <active timeout>] | 트랜잭션을 시작하고 commit까지의 최대 시간이다. 시간을 초과한 트랜잭션은 강제로 rollback된다. |
[-pt,--prepareTimeout <prepare timeout>] | 루트 코디네이터가 prepare를 보내고 하위 코디네이터로부터 그 응답을 기다리는 최대 시간이다. |
[-pdt,--preparedTimeout <prepared timeout>] | 하위 코디네이터가 prepare 응답을 보내고 루트 코디네이터의 Global decision을 기다리는 최대 시간이다. 시간을 초과한 경우 루트에 prepare 응답을 다시 보낸다. |
[-ct,--commitTimeout <commit timeout>] | 루트 코디네이터가 하위 코디네이터로 commit을 보내고 그 응답을 기다리는 최대 시간이다. 시간을 초과한 경우 incomplete 트랜잭션으로 취급한다. |
[-rt,--recoveryTimeout <recovery timeout>] | recovery 정보를 뽑아내는 데 기다리는 최대 시간이다. 시간을 초과하는 경우 사용자에게 recovery를 맡긴다. |
[-it,--incompleteTimeout <incomplete timeout>] | Incomplete 트랜잭션이 recover되기까지 기다리는 최대 시간이다. 시간을 초과할 경우 Incomplete 트랜잭션이라는 정보를 삭제한다. |
[-d,--txLogDir <transaction log directory>] | recovery를 위한 트랜잭션 로그를 남기는 디렉터리이다. 자세한 설명은 “JEUS Server 안내서”의 “7.5.2. 복구 관련 로그 파일”을 참고한다. |
[-a,--automaticRecovery <automatic recovery enable/disable>] | [동적 변경] 서버에 이상이 있을 때 다른 서버가 해당 서버의 Incomplete 트랜잭션을 recovery할지 여부를 설정한다. 자세한 설명은 “JEUS Server 안내서”의 “7.5. 트랜잭션의 복구”를 참고한다. |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
[-detail] | 결과를 자세하게 조회한다. |
예제
현재 설정 확인
[DAS]domain1.adminServer>modify-transaction-manager server1
Shows the current configuration.
transaction of server (server1)
================================================================================
+---------------------+--------------------------------------------------------+
| Active Timeout | 600000 |
| Prepare Timeout | 120000 |
| Prepared Timeout | 60000 |
| Commit Timeout | 240000 |
| Recovery Timeout | 120000 |
| Incomplete Timeout | 86400000 |
| Tx Log Dir | ${SERVER_HOME}/.workspace/tmlog |
| Automatic Recovery | false |
+---------------------+--------------------------------------------------------+
================================================================================
동적 설정인 트랜잭션 자동 복구 기능 켜기
[DAS]domain1.adminServer>modify-transaction-manager server1 -automaticRecovery true
Successfully performed the MODIFY operation for transaction of server (server1).
Check the results using "show-transaction-manager server1 or modify-transaction-manager sever1"
서버 재시작으로 반영되는 타임아웃 설정 변경
[DAS]domain1.adminServer>modify-transaction-manager server1 -activeTimeout 20000
Successfully performed the MODIFY operation for transaction of server (server1),
but all changes were non-dynamic. They will be applied after restarting.
Check the results using "show-transaction-manager server1 or modify-transaction-manager server1"
동적 반영 설정과 서버 재시작으로 반영되는 설정 함께 변경
[DAS]domain1.adminServer>modify-transaction-manager server1 -automaticRecovery true -activeTimeout 20000
Successfully performed the MODIFY operation for transaction of server (server1),
but some changes were non-dynamic. They will be applied after restarting.
Check the results using "show-transaction-manager server1 or modify-transaction-manager server1"
지정 서버의 리소스 매니저를 복구한다. 복구할 특정 리소스를 선택할 수 있다.
alias
recovertx, tmresync
사용법
recover-transactions -server <server-name> <resource-type> <export-name> [<connector-module-name>]
파라미터
파라미터 | 설명 |
---|---|
-server <server-name> | 서버의 이름이다. |
<resource-type> | 복구할 리소스 타입을 지정한다.
|
<export-name> | 리소스의 <export-name>을 지정한다. |
[<connector-module-name>] | 리소스가 Connector인 경우에는 해당 Connector Module의 이름을 지정한다. |
예제
[DAS]domain1.adminServer>recover-transactions -server server1 sql jdbc/derby/XADataSource
The recover-transactions command was executed on the server1 server.
지정 서버의 트랜잭션 매니저 설정을 확인한다.
alias
show-tm, showtm
사용법
show-transaction-manager <server-name>
파라미터
파라미터 | 설명 |
---|---|
<server-name> | 서버의 이름이다. |
예제
[DAS]domain1.adminServer>show-transaction-manager server1
Shows the current configuration.
transaction of server (server1)
================================================================================
+---------------------+--------------------------------------------------------+
| Active Timeout | 600000 |
| Prepare Timeout | 120000 |
| Prepared Timeout | 60000 |
| Commit Timeout | 240000 |
| Recovery Timeout | 120000 |
| Incomplete Timeout | 86400000 |
| Tx Log Dir | ${SERVER_HOME}/.workspace/tmlog |
| Automatic Recovery | false |
+---------------------+--------------------------------------------------------+
================================================================================
지정 서버의 트랜잭션을 상태별로 확인한다.
alias
transactioninfo, txinfo
사용법
transaction-info -server <server-name> [-i,--inflight] [-d,--indoubt] [-r,--retrying]
파라미터
파라미터 | 설명 |
---|---|
-server <server-name> | 서버의 이름이다. |
[-i,--inflight] | 진행 중인 트랜잭션을 확인한다. commit 또는 rollback 단계까지 진행되지 않은 메모리 상의 트랜잭션이다. |
[-d,--indoubt] | 미완료 트랜잭션을 확인한다. 불완전한 상태의 끝나지 않은 것으로 복구가 필요하거나 현재 결정을 받지 못한 트랜잭션이다. |
[-r,--retrying] | 재시도할 트랜잭션을 확인한다. 리소스 매니저의 문제로 one-phase-commit 또는 two-phase-commit을 제대로 처리하지 못해 JEUS 자체적으로 재시도 중인 트랜잭션이다. |
예제
[DAS]domain1.adminServer>transaction-info -server server1
<transactions of server1>
In-Flight Transaction Information
================================================================================
+------------------+---------+-------+--------+---------+---------+------------+
| XID | Coordina| Extern| Status | Timeout | Elapse | XAResources|
| | tor |al XID | | | | |
+------------------+---------+-------+--------+---------+---------+------------+
| 049FE5.00C0A80011| 192.168.| | STATUS | 5000(ms)| 7418(ms)| jdbc/derby/|
|2608221CC3D6B40000|0.17:9736| |_MARKED_| | |XADataSource|
|000000000011.00 | | |ROLLBACK| | | |
+------------------+---------+-------+--------+---------+---------+------------+
================================================================================
In-doubt Transaction Information
==========================================================================
+----+----------------+--------------------+-------+------------+--------+
| XID| Coordinator | External XID | Status| Decision | Sub-XID|
+----+----------------+--------------------+-------+------------+--------+
(No data available)
==========================================================================
Retrying Transaction Information
=============================================================
+----+-----+------------------------------+-------+---------+
| XID| Name| Failuere Count | Status| Decision|
+----+-----+------------------------------+-------+---------+
(No data available)
=============================================================
본 절에서는 보안과 관련된 명령어에 대해 설명한다. 보안과 관련 명령어는 각각 사용자, 그룹 및 Policy 관리 명령어로 분류되고, 목록은 다음과 같다.
사용자 관리 명령어
사용자 관리 명령어는 사용자를 추가, 수정, 삭제할 때 사용한다.
명령어 | 설명 |
---|---|
add-user | 새로운 사용자를 추가한다. |
remove-user | 사용자를 삭제한다. |
list-user-names | 로그인된 사용자 이름 목록과 각 사용자의 Lock 상태를 조회한다. |
show-user | 사용자에 대한 정보를 조회한다. |
modify-default-password-validator | Default Password Validator를 새로 설정하거나 기존 설정을 변경 또는 삭제한다. |
show-default-password-validator | Default Password Validator 설정을 조회한다. |
add-custom-password-validator | Custom Password Validator에 새로운 클래스를 동록한다. |
remove-custom-password-validator | Custom Password Validator에 등록된 클래스를 삭제한다. |
show-custom-password-validator | Custom Password Validator에 등록된 클래스 목록을 조회한다. |
set-password | 패스워드를 설정한다. |
lock-user | 특정 사용자에 Lock을 설정한다. |
unlock-user | 특정 사용자에 설정된 Lock을 해제한다. |
그룹 관리 명령어
그룹 관리 명령어는 그룹을 추가, 수정, 삭제할 때 사용한다.
명령어 | 설명 |
---|---|
add-goup | 새로운 그룹을 추가한다. |
add-user-to-group | 특정 그룹에 사용자를 추가한다. |
remove-user-from-group | 특정 그룹의 사용자를 삭제한다. |
remove-group | 그룹을 삭제한다. |
list-group-names | 그룹의 목록을 조회한다. |
show-group | 특정 그룹에 대한 정보를 조회한다. |
check-group-member | 특정 그룹에 사용자 등록 여부를 조회한다. |
Policy 관리 명령어
Policy 명령어는 보안 시스템에서 Policy와 관련된 사항을 관리할 때 사용한다. 이 명령어를 통해서 Principal-Role 매핑, Role-Resource 매핑을 추가하거나 삭제할 수 있다.
Policy 명령어는 보안 시스템에서 권한 체크와 관련된 전반적인 사항을 관리할 수 있다.
명령어 | 설명 |
---|---|
show-policy | 특정 Context ID를 포함한 policy를 조회한다. |
assign-role | 특정 Role에 Principal을 할당한다. |
unassign-role | 특정 Role에 Principal을 삭제한다. |
assign-resource | 특정 리소스에 Role을 할당한다. |
unassign-resource | 특정 리소스를 삭제한다. |
본 절에서 소개하는 명령어는 민감한 사안을 다루므로, 이 명령어를 실행하기에 적절한 권한을 가진 사용자로 로그인해야 한다.
다음은 보안 관련 명령어에서 공통적으로 적용되는 옵션에 대한 설명이다.
[-domain <domain-name>] 옵션
JEUS에서 보안이 적용되는 범위인 보안 도메인을 지정한다. (기본값: SYSTEM_DOMAIN) 도메인에 대한 자세한 내용은 "JEUS Security 안내서"를 참고한다.
각 명령어의 옵션 설명에서 위 옵션에 대한 설명은 생략한다.
동적으로 보안 시스템에 새로운 사용자를 추가한다. 주어진 사용자 이름은 현재 도메인 내에서 유일해야 한다("list-user-names" 명령어로 확인 가능). 사용자 이름은 일련의 호출 과정에서 특정 사용자를 참조하기 위해 사용한다. 즉, 사용자에 대한 ID에 해당된다.
alias
adduser
사용법
add-user <user-name> [-domain <domain-name>] [-f,--forceLock]
파라미터
파라미터 | 설명 |
---|---|
<user-name> | 사용자 이름이다. |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
예제
[DAS]domain1.adminServer> add-user user1
The user [user1] has been successfully added.
동적으로 현재 도메인에서 이미 존재하고 있는 사용자를 삭제한다.
alias
removeuser
사용법
remove-user <user-name> [-domain <domain-name>] [-f,--forceLock]
파라미터
파라미터 | 설명 |
---|---|
<user-name> | 사용자 이름이다. |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
예제
[DAS]domain1.adminServer> remove-user user1
The user [user1] has been successfully removed.
현재 도메인에 로그인된 모든 사용자 이름 목록과 각 사용자의 lock상태를 조회한다.
alias
listusernames, getusernames
사용법
list-user-names [-domain <domain-name>]
예제
[DAS]domain1.adminServer> list-user-names
======================================================
+-----------+----------------------------------------+
| User Name | Lock State |
+-----------+----------------------------------------+
| jeus | unlocked |
| admin | locked |
+-----------+----------------------------------------+
======================================================
주어진 사용자에 대한 자세한 정보를 조회한다.
alias
showuser, getuser
사용법
show-user <user-name> [-domain <domain-name>]
파라미터
파라미터 | 설명 |
---|---|
<user-name> | 사용자 이름이다. |
예제
[DAS]domain1.adminServer> show-user user1
[SUBJECT]
Description: No description
Domain: SYSTEM_DOMAIN
Main principal: Principal user1
Principals: [Principal user1,Administrators(members:Principal admin,Principal user1)]
Public credentials: []
동적으로 Default Password Validator 설정을 추가, 변경 또는 삭제한다. Password Validation은 “JEUS Security 안내서”의 “2.5.4. 패스워드 보안 설정”를 참고한다.
alias
modify-password-validator
사용법
modify-default-password-validator [-disable] [-min <min-length>] [-max <max-length>] [-special <is-special-character-included>] [-digit <is-digit-character-included>] [-capital <is-capital-character-included>] [-small <is-small-character-included>] [-excludeID <is-user-id-excluded>]
파라미터
파라미터 | 설명 |
---|---|
[-disable] | [동적 변경] Default Password Validator를 사용 안함으로 설정하고 기존 설정 값들을 모두 삭제한다. |
[-min <min-length>] | [동적 변경] 패스워드의 최소 자릿수를 설정한다. (기본값: 1) |
[-max <max-length>] | [동적 변경] 패스워드의 최대 자릿수를 설정한다. (기본값: 255) |
[-special <is-special-character-included>] | [동적 변경] 패스워드에 반드시 특수문자가 들어가도록 할지 설정한다. (기본값: false) |
[-digit <is-digit-character-included>] | [동적 변경] 패스워드에 반드시 숫자가 들어가도록 할지 설정한다. (기본값: false) |
[-capital <is-capital-character-included>] | [동적 변경] 패스워드에 반드시 대문자가 들어가도록 할지 설정한다. (기본값: false) |
[-small <is-small-character-included>] | [동적 변경] 패스워드에 반드시 소문자가 들어가도록 할지 설정한다. (기본값: false) |
[-excludeID <is-user-id-excluded>] | [동적 변경] 패스워드에 사용자의 id가 들어가지 못하도록 할지 설정한다. (기본값: false) |
예제
[DAS]domain1.adminServer> modify-default-password-validator -min 4 -special true
Default password validator is updated successfully.
Check the results using "show-default-password-validator or modify-default-password-validator".
현재의 Default Password Validator 설정을 조회한다. Password Validation은 “JEUS Security 안내서”의 “2.5.4. 패스워드 보안 설정”를 참고한다.
alias
show-password-validator
사용법
show-default-password-validator
예제
[DAS]domain1.adminServer> show-default-password-validator
================================================================================
+----------------------------------------------------------------------+-------+
| property | value |
+----------------------------------------------------------------------+-------+
| min length | 4 |
| max length | 255 |
| include special characters | true |
| include digit characters | false |
| include capital characters | false |
| include small characters | false |
| exclude user id | false |
+----------------------------------------------------------------------+-------+
================================================================================
Custom Password Validator에 새로운 클래스를 추가 등록한다. Password Validation은 “JEUS Security 안내서”의 “2.5.4. 패스워드 보안 설정”를 참고한다.
alias
add-custom-validator
사용법
add-custom-password-validator [-class <class-name> ]
파라미터
파라미터 | 설명 |
---|---|
<class-name> | Custom Password Validator로 등록하기 위해 사용자가 DOMAIN_HOME/lib/application에 jar 파일 형태로 넣어놓은 클래스의 이름이다. 해당 클래스는 eus.util.PasswordValidator 인터페이스를 implement해야 한다. |
예제
[DAS]domain1.adminServer> add-custom-password-validator -class MyValidator
Custom password validator [MyValidator] is added successfully.
Check the results using show-custom-password-validator.
Custom Password Validator에 등록된 클래스를 삭제한다. Password Validation은 “JEUS Security 안내서”의 “2.5.4. 패스워드 보안 설정”를 참고한다.
alias
remove-custom-validator
사용법
remove-custom-password-validator [-class <class-name> ]
파라미터
파라미터 | 설명 |
---|---|
<class-name> | 사용자가 DOMAIN_HOME/lib/application에 jar 파일 형태로 넣고 add-custom-password-validator 명령어로 Custom Password Validator에 등록한 클래스의 이름이다. |
예제
[DAS]domain1.adminServer> remove-custom-password-validator -class MyValidator
Custom password validator [MyValidator] is removed successfully.
Check the results using show-custom-password-validator.
현재의 Default Password Validator 설정을 조회한다. Password Validation은 “JEUS Security 안내서”의 “2.5.4. 패스워드 보안 설정”를 참고한다.
alias
show-custom-validator
사용법
show-custom-password-validator
예제
[DAS]domain1.adminServer> show-custom-password-validator
================================================================================
+------------------------------------------------------------------------------+
| custom password validator class names |
+------------------------------------------------------------------------------+
| MyValidator |
+------------------------------------------------------------------------------+
================================================================================
동적으로 주어진 사용자에 대한 패스워드를 설정한다. 패스워드는 어떤 암호화나 인코딩 없는 일반 문자로 설정해야 한다. - algorithm 옵션을 통해 패스워드를 암호화할 수 있다. 설정 후에는 새 패스워드로 다시 로그인하여야 한다.
이 명령어는 해당 사용자에 이전에 설정되었던 모든 패스워드를 삭제한다.
alias
setpassword
사용법
set-password <user-name> <password> [-algorithm <algorithm>] [-domain <domain-name>] [-f,--forceLock]
파라미터
파라미터 | 설명 |
---|---|
<user-name> | 사용자 이름이다. |
<password> | [동적 변경] 사용자 패스워드이다. |
[-algorithm <algorithm>] | [동적 변경] 패스워드 암호화에 사용할 알고리즘의 이름이다. 다음의 알고리즘을 선택할 수 있다.
|
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
예제
[DAS]domain1.adminServer> set-password user1 pass1 -algorithm AES
The password is set for [user1].
동적으로 특정 사용자에 Lock을 설정한다. "SubjectLockoutValidationService"가 서버에 제대로 구성되어 있다면, 해당 사용자에 대한 모든 로그인 시도는 "unlock-user"가 호출되기 전에 모두 실패로 끝난다.
Subjcet validation은 “JEUS Security 안내서”의 “5.4.1. SubjectValidationService SPI”를 참고한다.
alias
lockuser
사용법
lock-user <user-name> [-domain <domain-name>]
파라미터
파라미터 | 설명 |
---|---|
<user-name> | 사용자 이름이다. |
예제
[DAS]domain1.adminServer> lock-user user2
The user [user2] has been locked out.
동적으로 lock-user로 설정했던 Lock을 해제한다.
alias
unlockuser
사용법
unlock-user <user-name> [-domain <domain-name>]
파라미터
파라미터 | 설명 |
---|---|
<user-name> | 사용자 이름이다. |
예제
[DAS]domain1.adminServer> unlock-user user2
The user [user2] has been successfully unlocked.
동적으로 보안 시스템에 새로운 그룹를 추가한다. 설정된 그룹 이름은 현재 도메인 내에서 유일해야 한다(list-group-names 명령어로 확인 가능). 그룹 이름은 일련의 호출 과정에서 특정 그룹를 참조하기 위해 사용한다. 즉, 그룹에 대한 ID에 해당된다.
alias
addgroup
사용법
add-group <group-name> [-domain <domain-name>] [-f,--forceLock]
파라미터
파라미터 | 설명 |
---|---|
<group-name> | 그룹 이름이다. |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
예제
[DAS]domain1.adminServer> add-group group1
The group [group1] has been successfully added.
동적으로 보안 시스템에 등록된 특정 그룹에 새로운 사용자 멤버를 추가한다.
alias
addusertogroup
사용법
add-user-to-group <group-name> <user-name> [-domain <domain-name>] [-f,--forceLock]
파라미터
파라미터 | 설명 |
---|---|
<group-name> | 그룹 이름이다. |
<user-name> | 사용자 이름이다. |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
예제
[DAS]domain1.adminServer> add-user-to-group group1 user1
The user [user1] has been successfully added to the group [group1].
동적으로 현재 도메인에서 존재하는 특정 그룹의 특정 사용자 멤버를 삭제한다.
alias
removeuserfromgroup
사용법
remove-user-from-group <group-name> <user-name> [-domain <domain-name>] [-f,--forceLock]
파라미터
파라미터 | 설명 |
---|---|
<group-name> | 그룹 이름이다. |
<user-name> | 사용자 이름이다. |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
예제
[DAS]domain1.adminServer> remove-user-from-group group1 user1
The user [user1] has been successfully removed from the group [group1].
동적으로 현재 도메인에서 이미 존재하고 있는 그룹을 삭제한다. 그룹에 속한 사용자가 존재하지 않을 경우에만 삭제 가능하다.
alias
removegroup
사용법
remove-group <group-name> [-domain <domain-name>] [-f,--forceLock]
파라미터
파라미터 | 설명 |
---|---|
<group-name> | 그룹 이름이다. |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
예제
[DAS]domain1.adminServer> remove-group group1
The group [group1] has been successfully removed.
현재 도메인의 모든 그룹에 대한 목록을 조회한다.
alias
listgroupnames, getgroupnames
사용법
list-group-names [-domain <domain-name> ]
예제
[DAS]domain1.adminServer> list-group-names
================================================================================
+------------------------------------------------------------------------------+
| Group Name |
+------------------------------------------------------------------------------+
| Administrators |
+------------------------------------------------------------------------------+
| group1 |
+------------------------------------------------------------------------------+
================================================================================
주어진 특정 그룹에 대한 자세한 정보를 조회한다.
alias
showgroup, getgroup
사용법
show-group <group-name> [-domain <domain-name>]
파라미터
파라미터 | 설명 |
---|---|
<group-name> | 그룹 이름이다. |
예제
[DAS]domain1.adminServer> show-group Administrators
Administrators(members:Principal admin,Principal user1)
특정 그룹에 해당 사용자가 등록되었는지 여부를 조회한다.
alias
checkgroupmember, ismember
사용법
check-group-member <group-name> <user-name> [-domain <domain-name>]
파라미터
파라미터 | 설명 |
---|---|
<group-name> | 그룹 이름이다. |
<user-name> | 사용자 이름이다. |
예제
[DAS]domain1.adminServer> check-group-member group1 user1
The user [user1] is a member of the group [group1].
특정 Context ID를 포함하고 있는 Policy를 조회한다. 만약 context-id가 설정되지 않았다면, "default"로 설정된다.
alias
showpolicy, getpolicy
사용법
show-policy [-contextid <context-id>] [-domain <domain-name>]
파라미터
파라미터 | 설명 |
---|---|
[-contextid <context-id>] | Policy를 구분하는 컨텍스트 이름이다. |
예제
[DAS]domain1.adminServer> show-policy
______________POLICY_______________
ROLE PERMISSIONS:
PERMISSION MAP
--------------
Excluded permissions:
(none)
Unchecked permissions:
(jeus.security.resource.RolePermission jndiUser)
Checked permissions:
Permission owner:
Principal user1
Permissions of owner:
(jeus.security.resource.RolePermission AdministratorsRole)
Permission owner:
Principal anonymous
Permissions of owner:
(jeus.security.resource.RolePermission jndiUser)
RESOURCE PERMISSIONS:
Context id: default
PERMISSION MAP
--------------
Excluded permissions:
(none)
Unchecked permissions:
(none)
Checked permissions:
Permission owner:
Role jndiUser
Permissions of owner:
(jeus.security.resource.ResourcePermission jeus.jndi.* lookup)
Permission owner:
Role AdministratorsRole
Permissions of owner:
(jeus.security.resource.ResourcePermission jeus.* *)
동적으로 특정 Role을 Principal에 할당한다. -classname으로 설정한 클래스는 java.security.Permission 추상 클래스를 확장한 Java 클래스여야 하며 최소한 하나의 String 타입의 "role"을 받아 들이는 생성자를 가지고 있어야 한다. 디폴트 클래스는 jeus.security.resource.RolePermission이다. 단, anonymous의 경우 해당 target role이 unchecked permission을 가지고 있을 경우에만 할당이 가능하다.
alias
assignrole
사용법
assign-role <principal> <role-name> [-classname <classname>] [-domain <domain-name>] [-f,--forceLock]
파라미터
파라미터 | 설명 |
---|---|
<principal-name> | Principal 이름이다. |
<role-name> | [동적 변경] Role 이름이다. |
[-classname <classname>] | [동적 변경] Permission 클래스 이름이다. |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
예제
[DAS]domain1.adminServer> assign-role user1 AdministratorsRole
The role [AdministratorsRole] is assigned to the principal [user1].
동적으로 Principal에 할당된 특정 Role을 삭제한다.
alias
unassignrole
사용법
unassign-role <principal> <role-name> [-domain <domain-name>] [-f,--forceLock]
파라미터
파라미터 | 설명 |
---|---|
<principal> | Principal 이름이다. |
<role-name> | [동적 변경] Role 이름이다. |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
예제
[DAS]domain1.adminServer> unassignrole jeus jndiuser
The role [jndiuser] has been successfully unassigned from the principal [jeus].
동적으로 Role에 특정 리소스와 Action을 할당한다.
alias
assignresource, assignres
사용법
assign-resource <role-name> <resource-name> -actions <actions> [-contextid <context-id>] [-classname <classname>] [-domain <domain-name>] [-f,--forceLock]
파라미터
파라미터 | 설명 |
---|---|
<role-name> | Role 이름이다. |
<resource-name> | [동적 변경] 리소스 이름이다. 리소스 이름은 보통 "jeus.server"와 같은 리스스를 나타내는 Java 클래스명이다. |
-actions <actions> | [동적 변경] Role에 부여된 Action 목록이다. Actions는 리스스에 대한 Action 목록이며, 각 Action은 공백으로 구분된다. 예를 들어 jeus.server resource의 경우 "boot", "down"과 같은 Action이 있다. -actions 파라미터를 설정한 경우 -classname으로 설정한 클래스에 두 번째 생성자 파라미터로 "actions"를 전달할 때 사용한다. 디폴트 클래스명은 jeus.security.resource.ResourcePermission이고, 이는 "resouce"와 "actions"를 생성자 파라미터로 차례로 받아 들인다. |
[-contextid <context-id>] | [동적 변경] Policy를 구분하는 컨텍스트 이름이다. contextid는 "default" 이외의 컨텍스트를 지정할 때 사용한다. |
[-classname <classname>] | [동적 변경] Permission 클래스 이름이다. -classname으로 설정한 클래스는 java.security.Permission 추상 클래스를 확장한 Java 클래스여야 하며 최소한 하나의 String 타입의 "resource"를 받아 들이는 생성자를 가지고 있어야 한다. Resource Permission에 대한 자세한 정보는 jeus.security.resource.ResourcePermission 클래스를 참고한다. JEUS가 어떤 Resource Permission을 체크하는지에 관한 정보는 “JEUS Security 안내서”의 “Appendix B. JEUS Server Permissions”을 참고한다. |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
예제
[DAS]domain1.adminServer> assign-resource deployRole jeus.* -actions deploy-applications
The resource [jeus.*] is assigned to the role [deployRole].
동적으로 Role로부터 리소스를 삭제할 때 사용한다. Role은 더 이상 해당 리소스에 접근이 불가능하다.
alias
unassignresource, usassignres
사용법
unassign-resource <role-name> <resource-name> -actions <actions> [-contextid <context-id>] [-domain <domain-name>] [-f,--forceLock]
파라미터
파라미터 | 설명 |
---|---|
<role-name> | Role 이름이다. |
<resource-name> | [동적 변경] 리소스 이름이다. |
-actions <actions> | [동적 변경] Role에 부여된 action 목록이다. |
[-contextid <context-id>] | [동적 변경] Policy를 구분하는 컨텍스트 이름이다. |
[-f,--forceLock] | 설정 변경을 강제로 진행하여 반영한다. |
예제
[DAS]domain1.adminServer> unassign-resource deployRole jeus.* -actions deploy-applications
The resource [jeus.*] has been successfully unassigned from the role [deployRole].
본 절에서는 노드 관리와 관련된 명령어에 대해 설명한다. 노드는 하나의 머신에 존재하는 하나의 JEUS 설치본을 의미한다. DAS의 원격 서버 관리를 위한 기능으로 DAS에 접속했을 때만 명령어 사용이 가능하다. 노드에 대한 자세한 설명은 "JEUS Node Manager 안내서"를 참고한다.
노드 관리 관련 명령어의 목록은 다음과 같다.
명령어 | 설명 |
---|---|
add-java-node | 동적으로 Java 노드를 추가한다. |
add-ssh-node | 동적으로 SSH 노드를 추가한다. |
apply-patch | 해당 노드에 패치를 적용한다. |
check-jeus-installed | 해당 노드에 JEUS가 설치되어 있는지 확인한다. |
check-ssh-node | 해당 SSH 노드의 SSH 설정이 제대로 동작하는지 확인한다. |
install-jeus | 해당 노드에 현재 도메인 구성을 포함하여 JEUS를 설치한다. |
list-nodes | 노드의 목록을 확인한다. |
modify-java-node | 저장된 Java 노드를 수정한다. |
modify-node | 저장된 노드를 수정한다. |
modify-ssh-node | 저장된 SSH 노드를 수정한다. |
patch-info | 해당 노드에 적용된 패치정보를 확인한다. |
remove-node | 저장된 노드를 삭제한다. |
remove-patch | 해당 노드에 적용된 패치를 삭제한다. |
show-node | 해당 노드의 설정을 확인한다. |
uninstall-jeus | 해당 노드에서 JEUS를 삭제한다. |
동적으로 새로운 Java 노드를 추가한다. 각 옵션에 대해 알맞는 값을 입력하여 노드에 설정된 Java NodeManager 접속에 문제가 없도록 한다.
alias
addjavanode
사용법
add-java-node <node-name> -host <host-name> [-port <port-number>] [-ssl] [-truststore <truststore-path>] [-truststorepassword <truststore-password>]
파라미터
파라미터 | 설명 |
---|---|
<node-name> | 추가할 노드의 이름이다. ID로 사용되는 값이므로 유일해야 한다. |
-host <host-name> | 해당 노드의 노드 매니저에서 사용할 호스트 주소이다. |
[-port <port-number>] | 해당 노드의 노드 매니저에서 사용할 포트 번호이다. (기본값: 7730) |
[-ssl] | SSL을 사용할 지 여부를 설정한다. |
[-truststore <truststore-path>] | Truststore file의 경로를 설정한다. |
[-truststorepassword <truststore-password>] | Truststore file의 password를 설정한다. |
예제
[DAS]domain1.adminServer> add-java-node node1 -host 192.168.34.55 -port 7730
The node [node1] was successfully added.
동적으로 새로운 SSH 노드를 추가한다. 각 옵션에 대해 알맞는 값을 입력하여 SSH 접속에 문제가 없도록 한다. SSH 접속 가능 여부는 check-ssh-node 명령을 통해 가능하며, 생성된 SSH 노드는 modify-ssh-node를 통해 수정 가능하다.
alias
addsshnode
사용법
add-ssh-node <node-name> -host <host-name> [-dir <install-dir>] [-port <port-number>] [-user <user-name>] [-privatekey <file-path>]
파라미터
파라미터 | 설명 |
---|---|
<node-name> | 추가할 원격 노드의 이름이다. ID로 사용되는 값이므로 유일해야 한다. |
-host <host-name> | 해당 원격 노드의 호스트 주소이다. |
[-dir <install-dir>] | 해당 원격 노드의 JEUS 설치 디렉터리이다. |
[-port <port-number>] | SSH 접속 포트 번호이다. (기본값: 22) |
[-user <user-name>] | SSH 접속 사용자명이다. |
[-privatekey <file-path>] | SSH 접속을 위한 개인키 파일 경로이다. |
예제
[DAS]domain1.adminServer> add-ssh-node node1 -host 192.168.34.55 -dir /home/sshUser/jeus -user sshUser
The node [node1] was successfully added.
설정한 노드에 패치 파일을 적용한다.
alias
applypatch
사용법
apply-patch [<file-name>] [-nodes <node-name>] [-rolling] [-nodas] [-action <action-on-error>]
파라미터
파라미터 | 설명 |
---|---|
[<file-name>] | 적용할 패치 파일을 설정한다. 설정하지 않은 경우 JEUS_HOME/lib/jext 디렉터리 전체를 전송한다. |
[-nodes <node-name>] | 패치를 적용할 노드 리스트를 설정한다. 설정하지 않은 경우 모든 도메인 내에 존재하는 노드에 적용한다. |
[-rolling] | 패치 파일 전송 후 서버를 재기동해 적용할지 여부를 설정한다. |
[-nodas] | DAS는 재기동하지 않는다. |
[-action <action-on-error>] | 패치 파일 적용에 실패하는 경우 액션에 대해 설정한다. 다음 중에 하나를 설정한다.
|
예제
[DAS]domain1.adminServer>apply-patch -nodes node2 jext.jar
The patch was successfully applied to the nodes [node1].
특정 노드에 JEUS가 설치되었는지를 확인한다. 결과값으로 해당 노드의 JEUS 버전 정보가 나온다.
alias
checkjeusinstalled, isjeusinstalled
사용법
check-jeus-installed <node-name>
파라미터
파라미터 | 설명 |
---|---|
<node-name> | 노드의 이름이다. |
예제
[DAS]domain1.adminServer> check-jeus-installed node1
The JEUS version on the node [node1]: JEUS 8
특정 SSH 노드에 Java 명령을 수행해서 SSH 설정이 제대로 되어있는지 확인한다.
alias
checksshnode, checknode
사용법
check-ssh-node <node-name>
파라미터
파라미터 | 설명 |
---|---|
<node-name> | 노드의 이름이다. |
예제
[DAS]domain1.adminServer> check-ssh-node node1
The Domain Administration Server can execute the "java" process via SSH.
특정 노드에 현재 도메인의 설정을 포함하여 JEUS를 설치한다. 파일 압축 및 복사 작업이 이루어지므로 환경에 따라 시간이 오래 필요할 수 있다.
alias
installjeus
사용법
install-jeus <node-name>
파라미터
파라미터 | 설명 |
---|---|
<node-name> | 노드의 이름이다. |
예제
[DAS]domain1.adminServer> install-jeus node1
JEUS was successfully installed on the node [node1].
현재 구성되어 있는 노드의 목록을 조회한다. 노드의 이름, 종류, 제어 가능 여부, JEUS 설치 버전이 결과값으로 출력된다.
alias
listnodes, nodelist
사용법
list-nodes [-onlyname]
파라미터
파라미터 | 설명 |
---|---|
[-onlyname] | 노드의 이를만을 나열하여 보여준다. |
예제
[DAS]domain1.adminServer> list-nodes
========================================================================
+-------------+-----+---------------------+----------------------------+
| Node name | Type| Under control | JEUS version |
+-------------+-----+---------------------+----------------------------+
| node1 | SSH | Y | - |
| node2 | SSH | Y | JEUS 8 |
| node3 | JAVA| N | - |
+-------------+-----+---------------------+----------------------------+
========================================================================
특정 Java 노드의 설정을 변경한다.
alias
modifyjavanode
사용법
modify-java-node <node-name> [-host <host-name>] [-port <port-number>] [-ssl <enable-SSL>] [-truststore <truststore-path>] [-truststorepassword <truststore-password>]
파라미터
파라미터 | 설명 |
---|---|
<node-name> | 노드의 이름이다. |
[-host <host-name>] | 해당 노드의 노드 매니저에서 사용할 호스트 주소이다. |
[-port <port-number>] | 해당 노드의 노드 매니저에서 사용할 포트 번호이다. (기본값: 7736) |
[-ssl <enable-SSL>] | SSL을 사용할지 여부를 설정한다. |
[-truststore <truststore-path>] | Truststore file의 경로를 설정한다. |
[-truststorepassword <truststore-password>] | Truststore file의 password를 설정한다. |
예제
[DAS]domain1.adminServer> modify-java-node node1 -port 7731
The node [node1] was modified successfully. Check the results using "show-node"
특정 노드의 설정을 변경한다. 노드 매니저 타입을 변경할 수 있다.
alias
modifyjavanode
사용법
modify-node <node-name> [-type <node-type>] [-host <host-name>] [-port <port-number>] [-ssl] [-truststore <truststore-path>] [-truststorepassword <truststore-password>] [-dir <install-dir>] [-user <user-name>] [-privatekey <file-path>]
파라미터
파라미터 | 설명 |
---|---|
<node-name> | 노드의 이름이다. |
[-type <host-name>] | 해당 노드의 타입을 변경한다. java 또는 ssh 중 하나의 값을 입력할 수 있다. |
[-host <host-name>] | 해당 노드의 노드 매니저에서 사용할 호스트 주소이다. |
[-port <port-number>] | 해당 노드의 노드 매니저에서 사용할 포트 번호이다. (기본값: JAVA 타입의 경우 7730, SSH 타입의 경우 22) |
[-ssl] | SSL을 사용할지 여부를 설정한다. |
[-truststore <truststore-path>] | Truststore file의 경로를 설정한다. |
[-truststorepassword <truststore-password>] | Truststore file의 password를 설정한다. |
[-dir <install-dir>] | 해당 노드에 JEUS가 설치된 경로를 설정한다. |
[-user <user-name>] | SSH 접속 사용자명이다. |
[-privatekey <file-path>] | SSH 접속을 위한 개인키 파일 경로이다. |
예제
[DAS]domain1.adminServer> modify-node node1 -type ssh -port 23
The node [node1] was modified successfully. Check the results using "show-node"
특정 SSH 노드의 설정을 변경한다.
alias
modifysshnode, modifynode
사용법
modify-ssh-node <node-name> [-host <host-name>] [-dir <install-dir>] [-port <port-number>] [-user <user-name>] [-privatekey <file-path>]
파라미터
파라미터 | 설명 |
---|---|
<node-name> | 노드의 이름이다. |
[-host <host-name>] | 해당 원격 노드의 호스트 주소이다. |
[-dir <install-dir>] | 해당 원격 노드의 JEUS 설치 디렉터리이다. |
[-port <port-number>] | SSH 접속 포트 번호이다. (기본값: 22) |
[-user <user-name>] | SSH 접속 사용자명이다. |
[-privatekey <file-path>] | SSH 접속을 위한 개인키 파일 경로이다. |
예제
[DAS]domain1.adminServer> modify-ssh-node node1 -port 23
The node [node1] was modified successfully. Check the results using "show-node"
노드에 적용된 패치를 확인한다.
alias
patchinfo, patch-list, patchlist, list-patch, listpatch
사용법
patch-info [<node-names>]
파라미터
파라미터 | 설명 |
---|---|
[<node-names>] | 노드의 이름이다. 노드가 한 개 이상인 경우는 콤마(,)로 구분한다. |
예제
[DAS]domain1.adminServer>patch-info
Successfully got patch information for the nodes.
==========================================================
Node Name[node1]
+---------------------------------------+----------------+
| Patch File Name | Patch Contents |
+---------------------------------------+----------------+
(No data available)
Unable to get patch information to SSH NodeManager
==========================================================
===============================================================
Node Name[node2]
+--------------------------------------------+----------------+
| Patch File Name | Patch Contents |
+--------------------------------------------+----------------+
| jext_patch_test.jar | patch test |
+--------------------------------------------+----------------+
===============================================================
특정 노드를 삭제한다.
alias
removenode, rmnode, rm-node
사용법
remove-node <node-name>
파라미터
파라미터 | 설명 |
---|---|
<node-name> | 노드의 이름이다. |
예제
[DAS]domain1.adminServer>remove-node node1
The node [node1] was successfully removed.
설정한 노드에 적용된 패치 파일을 삭제한다.
alias
removepatch, rmpatch, rm-patch
사용법
remove-patch [<file-name>] [-nodes <node-name>] [-rolling] [-nodas] [-action <action-on-error>]
파라미터
파라미터 | 설명 |
---|---|
[<file-name>] | 삭제할 패치 파일을 설정한다. 설정하지 않은 경우 JEUS_HOME/lib/jext 디렉터리 전체를 삭제한다. |
[-nodes <node-name>] | 패치를 삭제할 노드 리스트를 설정한다. 설정하지 않은 경우 모든 도메인 내에 존재하는 노드에서 삭제한다. |
[-rolling] | 패치 파일 삭제 후 서버를 재기동할 때 삭제 내용을 적용할지 여부를 설정한다. |
[-nodas] | DAS는 재기동하지 않는다. |
[-action <action-on-error>] | 패치 파일가 삭제 실패하는 경우의 액션에 대해 설정한다. 다음 중에 하나를 설정한다.
|
예제
[DAS]domain1.adminServer>remove-patch -nodes node2 jext.jar
The nodes [node2] have successfully removed patch file.
특정 노드의 정보를 조회한다. 노드의 기본 정보 외에 해당 노드에 매핑된 서버의 정보도 조회한다.
기본 SSH 노드 정보는 modify-ssh-node 명령을 통해 변경 가능하다. 매핑된 서버의 정보는 modify-server 명령을 통해 변경 가능하다.
alias
shownode, nodeinfo
사용법
show-node <node-name>
파라미터
파라미터 | 설명 |
---|---|
<node-name> | 노드의 이름이다. |
예제
[DAS]domain1.adminServer> show-node node1
================================================================================
+------------------+-----------------------------------------------------------+
| Property | Value |
+------------------+-----------------------------------------------------------+
| Node Name | node1 |
| Host | 192.168.34.55 |
| Mapped Servers | adminServer server1 |
| Node Type | JAVA |
| NodeManager Port | 7730 |
| Use SSL | false |
+------------------+-----------------------------------------------------------+
================================================================================
본 절에서는 노드 매니저에 접속해서 사용할 수 있는 명령어에 대해 설명한다. 노드는 하나의 머신에 존재하는 하나의 JEUS 설치본을 의미한다. Java 타입의 노드 매니저에 접속해서 서버를 시작시키거나 상태를 확인할 수 있다. Java 타입의 노드 매니저에 대한 자세한 설명은 “JEUS Node Manager 안내서”의 "JEUS Node Manager 안내서"를 참고한다.
노드 관리 관련 명령어의 목록은 다음과 같다.
명령어 | 설명 |
---|---|
connect-nodemanager | 노드 매니저에 접속한다. |
disconnect-nodemanager | 노드 매니저와 접속을 끊는다. 노드 매니저와 접속한 상태에서만 사용가능한 명령이다. |
nm-start-server | 노드 매니저를 통해 서버를 시작한다. 노드 매니저와 접속한 상태에서만 사용가능한 명령이다. |
nm-state-server | 노드 매니저를 통해 기동한 서버의 상태를 확인한다. 노드 매니저와 접속한 상태에서만 사용가능한 명령이다. |
nm-stop-server | 노드 매니저를 통해 시작한 서버를 종료한다. 노드 매니저와 접f속한 상태에서만 사용가능한 명령이다. |
stop-nodemanager | 노드 매니저를 종료한다. 노드 매니저와 접속한 상태에서만 사용가능한 명령이다. |
노드 매니저에 접속한다.
alias
connect-nm, connectnm, nm-connect, nmconnect
사용법
connect-nodemanager [-domain <domain-name>] [-h,--host <host-address>] [-p,--port <port>] [-t,--type <connect-type>] [-ts,--truststoreFile <truststore-file>] [-tsp,--truststorePass <truststore-password>]
파라미터
파라미터 | 설명 |
---|---|
[-domain <domain-name>] | 노드 매니저에서 다룰 도메인 이름이다. |
[-h,--host <host-address>] | 접속하려고 하는 노드 매니저의 호스트 주소이다. |
[-p,--port <port>] | 접속하려고 하는 노드 매니저의 포트 번호이다. |
[-t,--type <connect-type>] | 노드 매니저에 접속할 때 SSL을 사용할지 여부를 설정한다. 다음 중에 하나를 설정한다.
|
[-ts,--truststoreFile <truststore-file>] | SSL을 사용할 때 Truststore file 경로를 설정한다. |
[-tsp,--truststorePass <truststore-password>] | SSL을 사용할 때 Truststore file의 password를 설정한다. |
예제
offline>connect-nodemanager -host 192.168.34.55 -port 7730 -domain domain1
The connection to the node manager domain1 has been established.
참고
본 명령어는 서버에 접속하지 않은 상태에서도 사용할 수 있다.
노드 매니저와 접속을 끊는다.
alias
disconnect-nm, disconnectnm, disconnm, nm-disconnect, nmdisconnect
사용법
disconnect-nodemanager
예제
[NodeManager]domain1>disconnect-nodemanager
disconnect to node manager.
참고
본 명령어는 서버에 접속하지 않은 상태에서도 사용할 수 있다.
노드 매니저를 통해 서버를 시작한다.
alias
nmstart, nmstartserver
사용법
nm-start-server [-domain <domain-name>] -server <server-name> -u,--user <user-name> -p,--password <password> [-dasurl <dasurl>] [-f,--force] [-s,--standby] [-host <nm-host>] [-port <nm-port>] [-t,--type <connect-type>] [-ts,--truststoreFile <truststore-file>] [-tsp,--truststorePass <truststore-password>]
파라미터
파라미터 | 설명 |
---|---|
[-domain <domain-name>] | 시작시킬 서버가 속한 도메인 이름이다. |
-server <server-name> | 시작시킬 서버의 이름이다. |
-u,--user <user-name> | 서버를 기동할 때 필요한 계정정보이다. |
-p,--password <password> | 서버를 기동할 때 필요한 계정의 password이다. |
[-dasurl <dasurl>] | MS를 시작시킬 때 필요한 DAS의 URL정보이다. |
[-f, --force] | MS를 시작시킬 때 애플리케이션 디플로이가 실패하더라도 RUNNING으로 만들기 위한 설정이다. |
[-s, --standby] | MS를 시작시킬 때 STANDBY 상태까지만 만들기 위한 설정이다. |
[-host <nm-host>] | 노드 매니저에 접속이 되지 않은 상태라면 노드 매니저의 호스트 정보를 옵션으로 주어 노드 매니저에 접속한 후 서버를 시작시킬 수 있다. |
[-port <nm-port>] | 노드 매니저에 접속이 되지 않은 상태라면 노드 매니저의 포트 정보를 옵션으로 주어 노드 매니저에 접속한 후 서버를 시작시킬 수 있다. |
[-t --type <connect-type>] | 노드 매니저에 접속할 때 SSL을 사용할지 여부를 설정한다. 다음 중에 하나를 설정한다.
|
[-ts,--truststoreFile <truststore-file>] | SSL을 사용할 때 Truststore file 경로를 설정한다. |
[-tsp,--truststorePass <truststore-password>] | SSL을 사용할 때 Truststore file의 password를 설정한다. |
예제
[NodeManager]domain1>nm-start-server -server server1 -u jeus -p jeus
succeed to start server[server1].
RUNNING
참고
본 명령어는 서버에 접속하지 않은 상태에서도 사용할 수 있다.
노드 매니저를 통해 시작한 서버의 상태를 확인한다.
alias
nmstate-server, nmstateserver
사용법
nm-state-server [-domain <domain-name>] -server <server-name> -u,--user <user-name> -p,--password <password>
파라미터
파라미터 | 설명 |
---|---|
[-domain <domain-name>] | 상태를 알려고 하는 서버가 속한 도메인 이름이다. |
-server <server-name> | 상태를 알려고 하는 서버의 이름이다. |
-u,--user <user-name> | 서버의 상태를 알기 위해 서버에 접속하는 경우 계정 정보이다. |
-p,--password <password> | 서버의 상태를 알기 위해 서버에 접속하는 경우 계정의 password이다. |
예제
[NodeManager]domain1>nm-state-server -server server1 -u jeus -p jeus
server[server1] : RUNNING
참고
본 명령어는 서버에 접속하지 않은 상태에서도 사용할 수 있다.
노드 매니저를 통해 시작한 서버의 상태를 확인한다.
alias
nmstop-server, nmstopserver
사용법
nm-stop-server [-domain <domain-name>] -server <server-name> -u,--user <user-name> -p,--password <password>
파라미터
파라미터 | 설명 |
---|---|
[-domain <domain-name>] | down시킬 서버가 속한 도메인 이름이다. |
-server <server-name> | down시킬 서버의 이름이다. |
-u,--user <user-name> | 서버를 down시키기 위해 서버에 접속하는 경우 계정 정보이다. |
-p,--password <password> | 서버를 down시키기 위해 서버에 접속하는 경우 계정의 password이다. |
예제
[NodeManager]domain1>nm-stop-server -server server1 -u jeus -p jeus
succeed to stop server[server1].
참고
본 명령어는 서버에 접속하지 않은 상태에서도 사용할 수 있다.
노드 매니저를 종료한다.
alias
stop-nm, stopnm, nm-stop, nmstop
사용법
stop-nodemanager [-host <host-address>] [-port <port>] [-p --properties <properties-file>] [-t, --type <connect-type>] [-ts, --truststoreFile <truststore-file>] [-tsp, --truststorePass <truststore-password>] [-stopServer] [-verbose]
파라미터
파라미터 | 설명 |
---|---|
[-host <host-address>] | 종료하려고 하는 노드 매니저의 호스트 정보이다. |
[-port <port>] | 종료하려고 하는 노드 매니저의 포트 정보이다. |
[-p --properties <properties-file>] | 커맨드 실행에 필요한 설정값들을 담은 파일을 설정한다. |
[-t,--type <connect-type>] | 노드 매니저에 접속할 때 SSL을 사용할지 여부를 설정한다. 다음 중에 하나를 설정한다.
|
[-ts,--truststoreFile <truststore-file>] | SSL을 사용할 때 Truststore file 경로를 설정한다. |
[-tsp,--truststorePass <truststore-password>] | SSL을 사용할 때 Truststore file의 password를 설정한다. |
[-stopServer] | 노드 매니저가 관리하고 있는 서버도 같이 종료하도록 한다. |
[-verbose] | 실행 결과를 상세하게 출력한다. |
예제
[NodeManager]domain1>stop-nodemanager
Succeed to stop the node manager.
참고
본 명령어는 서버에 접속하지 않은 상태에서도 사용할 수 있다.
본 절에서는 JEUS의 설정을 편집하는 명령어들에 대해 설명한다. 이 명령어들을 사용하면 콘솔을 통해 JEUS의 동적 설정 변경 기능을 이용할 수 있다.
동적 설정 변경 기능에 대한 기본적인 사항은 “JEUS Domain 안내서”의 “제3장 도메인 설정변경”을 참고한다.
다음은 개별 명령어를 설명하기 전에 먼저 알아두어야 할 사항들에 대한 설명이다.
설정 편집 명령어로 편집하는 JEUS 설정에 대해
설정 편집 명령어를 사용해서 편집하는 대상은 JEUS 서버가 설정을 저장하기 위해 사용하는 java 객체로, 이 객체는 JEUS 설정을 표현하는 domain.xml을 정의한 XML schema를 JAXB를 사용하여 자바 객체 형태로 변환한 것이다. 그렇기 때문에 객체의 구조나 각 항목의 이름등이 domain.xml의 그것과 유사하나, 몇몇 부분들에 대해서는 다르게 표현될 수도 있다.
Simple Type
설정 항목 중 자식 항목을 갖지 않는 것을 말한다.
Complex Type
자식 항목을 갖는 설정 항목을 complex type이라고 한다. 자식으로는 simple type이나 complex type, simple type을 포함하는 목록이나 complex type을 포함하는 목록을 가질 수 있다.
목록(List)
simple type이나 complex type을 원소로 갖는 목록(List) 형태의 설정 항목도 존재한다.
경로(Path)
설정 편집 명령어에서는 JEUS 설정에서 각 항목의 위치를 경로로 표현한다. 경로는 설정 항목의 이름이나 complex type의 식별자, 목록에서 대상의 위치를 표시하기 위한 색인 번호(index)로 구성된다. 각 항목은 슬래시(/)로 구분한다.
최상위 경로(root)는 슬래시 하나로 표현한다.
현재 위치는 점(dot) 1개로 표현한다.
현재 위치의 부모 항목은 점(dot) 2개로 표현한다. 예를 들어 '/servers'항목의 부모에 대한 경로명은 '/servers/..'으로 표현한다.
대부분의 경우 설정 항목의 이름이 해당 항목의 경로명이 된다. 예를 들어 최상위 경로인 root 아래에 있는 servers라는 항목에 대한 경로는 '/servers'로 표현한다. servers 항목이 자식 항목들을 가지고 있고, 그 항목 중 하나의 이름이 server라고 하면, server 항목을 가리키는 경로는 '/servers/server'이다.
complex type을 원소로 갖는 목록의 경우 해당 complex type의 식별자의 값을 경로명으로 사용한다. 여기서 식별자란, 여러 개의 동일한 형식의 complex type이 존재할 때 특정 complex type을 식별할 수 있도록 해주는 각각 고유한 값을 갖는 자식 항목을 말한다. 예를 들어 '/servers/server'는 domain 설정에서 각 서버들의 설정을 담은 여러 개의 complex type으로 이루어진 목록이다. 서버 설정을 담는 complex type에서 식별자는 서버 이름을 사용하도록 지정되어 있다. 따라서 server1에 대한 설정 항목에 대한 경로명은 '/servers/server/server1'로 표현할 수 있다.
simple type을 원소로 갖는 목록의 경우 complex type과 달리 식별자가 존재할 수 없기 때문에 해당 목록에서 몇 번째 원소인지를 나타내는 색인 번호(index)를 경로명으로 사용한다. 색인 번호는 대괄호 사이에 0 이상의 정수가 들어간 형태로 지정한다. 예를 들어 '/a/b'라는 경로명이 있고, b가 simple type으로 이루어진 목록이라고 하면 해당 목록의 첫 번째 원소는 '/a/b/[0]'으로 표현한다.
simple type 목록에 대한 경로를 표기할 때 첫 번째 원소는 [1]이 아니라 [0]으로 표기하는 점을 유의하도록 한다.
각 설정 편집 명령어는 현재 경로를 지정하거나 수정하는 경우가 존재한다. 현재 경로는 서버에 저장되기 때문에 만약 jeusadmin을 여러 개 실행하여 동시에 여러 곳에서 편집을 수행할 경우 현재 경로가 의도하지 않게 변경되어 명령어가 오동작할 수 있다. 따라서 설정 편집 시에는 가급적이면 하나의 jeusadmin만 사용하는 것을 권장한다.
아래는 설정 편집을 위해 사용하는 명령어들을 목록으로 나열한 것이다. 모든 명령어는 서버에 접속한 상태에서만 사용할 수 있다.
명령어 | 설명 |
---|---|
start-configuration-editing | 서버에 요청을 보내 동적 설정 변경에 대한 Lock을 요청한다. |
change-current-path | 현재 경로를 변경하거나 확인한다. |
show-element | 지정한 경로에 위치한 항목에 대한 정보를 출력한다. |
create-empty-element | 지정한 항목에 빈 complex type을 생성하거나, complex type를 원소로 갖는 목록에 새로운 항목을 추가한다. |
set-element-value | 지정한 simple type에 값을 변경하거나, simple type을 원소로 갖는 목록에 새로운 항목을 추가한다. |
delete-element | 지정한 경로에 위치한 항목을 삭제한다. |
activate-configuration | 수정한 설정을 서버에 반영하고 결과를 출력한다. |
cancel | 동적 설정 변경에 대한 Lock을 해제하고, 서버에 저장되어 있는 수정 내역을 삭제한다. 이 명령어는 Lock을 갖고 있지 않은 상태에서도 사용할 수 있다. |
서버에 요청을 하여 동적 설정 변경 작업에 대한 Lock을 얻는다. Lock을 얻는데 성공한 경우 서버의 현재 경로를 초기화한다. Lock을 얻지 못한 경우 이후에 cancel을 제외한 명령어는 동작하지 않으므로, 설정 편집을 하고자 하는 경우 반드시 이 명령어를 먼저 수행하여 Lock을 얻어야 한다.
alias
lock-and-edit, edit
사용법
start-configuration-editing [-f]
파라미터
파라미터 | 설명 |
---|---|
[-f] | 다른 사용자가 동적 설정 변경에 대한 Lock을 갖고 있더라도 이를 무시하고 강제로 Lock을 얻으려고 시도한다. |
예제
[DAS]domain1.adminServer>start-configuration-editing
Successfully acquired a configuration lock from Domain Administration Server.
지정한 경로를 현재 경로로 변경한다. 변경할 경로를 지정하지 않은 경우 현재 경로를 표시한다.
alias
cd
사용법
change-current-path [<path>]
파라미터
파라미터 | 설명 |
---|---|
[<path>] | 변경하고자 하는 경로를 지정한다. 경로 지정은 상대 경로나 절대 경로 방식을 모두 사용할 수 있다. |
예제
[DAS]domain1.adminServer>change-current-path servers/server/adminServer Current path is changed to /servers/server/adminServer [DAS]domain1.adminServer>change-current-path .. Current path is changed to /servers/server [DAS]domain1.adminServer>change-current-path . Current path is changed to /servers/server [DAS]domain1.adminServer>change-current-path / Current path is changed to / [DAS]domain1.adminServer>change-current-path servers/server/server1/../.././server/adminServer Current path is changed to /servers/server/adminServer [DAS]domain1.adminServer>cd /servers/server/adminServer
지정한 경로에 위치한 항목에 대한 정보를 표시한다. 출력되는 정보는 항목의 이름, 값, 형식(type) 등이다. 경로를 지정하지 않은 경우 현재 위치에 대한 경로를 표시한다.
alias
ls
사용법
show-element [<path>]
파라미터
파라미터 | 설명 |
---|---|
[<path>] | 정보를 조회할 항목의 경로를 지정한다. |
예제
complex type에 대한 정보를 출력한 예제이다. 항목의 이름, 값(존재하는 경우), 값의 형식을 출력하는 것을 알 수 있다.
[DAS]domain1.adminServer>show-element
name adminServer
nodeName node1
listeners complex type
logHome Not specified (string )
group Not specified (string )
jvmConfig complex type
userInterceptor Not specified (complex type)
userLogging Not specified (complex type)
systemLogging list of [systemLogging]
logStdoutToRawFormat true
actionOnResourceLeak WARNING (enum[NO_ACTION, WARNING, AUTO_CLOSE])
tmConfig complex type
externalResource list of [externalResource]
managedExecutorService list of [string]
managedScheduledExecutorService list of [string]
contextService list of [string]
managedThreadFactory list of [string]
scheduler Not specified (complex type)
namingServer complex type
jmxManager Not specified (complex type)
systemThreadPool complex type
dataSourceRemoteLookup false
engineInitOnStartup true
useWebEngine true
useEjbEngine true
useJmsEngine true
webEngine complex type
ejbEngine complex type
jmsEngine complex type
useMEJB false
classFtp true
enableInterop Not specified (complex type)
lifecycleInvocation list of [lifecycleInvocation]
resRef complex type
jmsResource complex type
dataSources Not specified (complex type)
customResourceRefs Not specified (complex type)
externalResourceRefs Not specified (complex type)
autoGenerated Not specified (boolean )
complex type를 원소로 갖는 목록 항목에 대한 정보를 출력하는 예제이다. 각 항목의 이름은 식별자의 값으로 표시되며, 해당 목록에 들어갈 수 있는 값의 형식과 식별자가 표시되는 것을 알 수 있다.
[DAS]domain1.adminServer>show-element /servers/server
adminServer
server1
Current list can contain the following type of elements:
[server]
The name of the identifier element of [server] element is [name].
지정한 위치에 새로운 complex type을 생성한다. 생성되는 complex type은 내용이 비어있는 상태로 생성되며, 추가적인 작업을 통해 원하는 값을 채워주어야 한다. complex type을 원소로 갖는 목록인 경우 식별자 값을 항목 이름으로 사용하면 지정한 값을 식별자의 값으로 하는 complex type을 생성하여 목록에 추가한다.
alias
create
사용법
create-empty-element <name> [<type>]
파라미터
파라미터 | 설명 |
---|---|
<name> | 생성할 항목의 이름을 지정한다. complex type을 원소로 갖는 목록에 새 complex type을 추가하고자 하는 경우 항목 이름으로 지정한 값을 식별자의 값으로 하는 complex type을 생성한다. |
[<type>] | 생성할 항목의 형식을 지정한다. 일반적인 경우는 지정하지 않아도 상관없으나, 여러 개의 형식을 원소로 갖는 목록인 경우 가능한 형식 중 생성할 형식을 지정해 주어야 할 필요가 있다. |
예제
빈 complex type을 생성하는 예제이다.
[DAS]domain1.adminServer>cd /
[DAS]domain1.adminServer>create-empty-element passwordValidator
Created an empty complex type of passwordValidator at path /
complex type을 원소로 갖는 목록에 새로운 complex type을 추가하는 예제이다. 'server2'를 식별자인 서버 이름으로 사용하는 새로운 server 항목이 생성되어 목록에 추가되어 있는 것을 확인할 수 있다.
[DAS]domain1.adminServer>cd /servers/server Current path is changed to /servers/server [DAS]domain1.adminServer>ls adminServer server1 Current list can contain the following type of elements: [server] The name of the identifier element of [server] element is [name]. [DAS]domain1.adminServer>create-empty-element server2 Added a new element of type server with id [name == server2] to the list at path /servers/server [DAS]domain1.adminServer>ls adminServer server1 server2 Current list can contain the following type of elements: [server] The name of the identifier element of [server] element is [name].
type 옵션을 사용하여 생성할 complex type 형식을 지정해주는 예제이다. show-element 명령어 결과에 현재 목록이 원소로 여러 형식의 항목을 갖는 것을 확인할 수 있다. 형식을 지정하지 않은 경우 안내 메시지가 출력되는 것도 볼 수 있다.
[DAS]domain1.adminServer>cd /servers/server/adminServer/systemLogging/jeus/handler/ fileHandlerOrSmtpHandlerOrSocketHandler [DAS]domain1.adminServer>ls fileHandler Current list can contain the following type of elements: [fileHandler, userHandler, smtpHandler, socketHandler] The name of the identifier element of [fileHandler, userHandler, smtpHandler, socketHandler] element is [name]. [DAS]domain1.adminServer>create-empty-element handler1 Must specify an element type to create a new element. Available types are fileHandler, userHandler, smtpHandler, socketHandler. [DAS]domain1.adminServer>create-empty-element handler1 userHandler Added a new element of type userHandler with id [name == handler1] to the list at path /servers/server/adminServer/systemLogging/jeus/handler/fileHandlerOrSmtpHandlerOrSocketHandler [DAS]domain1.adminServer>ls fileHandler handler1 Current list can contain the following type of elements: [fileHandler, userHandler, smtpHandler, socketHandler] The name of the identifier element of [fileHandler, userHandler, smtpHandler, socketHandler] element is [name].
지정한 simple type 항목의 값을 수정하거나, simpe type을 원소로 갖는 목록에 값을 추가할 때 사용한다. 이 명령어를 통해 값을 삭제할 수는 없다.
alias
set
사용법
set-element-value <path><value>
파라미터
파라미터 | 설명 |
---|---|
<path> | 수정할 항목의 경로를 지정한다. |
<value> | 수정할 값을 지정한다. |
예제
set-element-value 명령어를 사용하여 description 항목에 "Hello, world!"라는 값을 설정하는 예제이다.
[DAS]domain1.adminServer>cd / Current path is changed to / [DAS]domain1.adminServer>ls description Not specified (string ) productionMode true id 982883233 securityManager complex type passwordValidator Not specified (complex type) adminServerName adminServer domainLogHome Not specified (string ) systemClusteringFramework complex type domainBackup complex type enableWebadmin true enableJsonCommand false enableToResynchronizeApplications false servers complex type sessionCluster complex type clusters Not specified (complex type) serverTemplates Not specified (complex type) lifecycleInvocation list of [lifecycleInvocation] applicationRepositories Not specified (complex type) deployedApplications Not specified (complex type) deployedLibraries Not specified (complex type) resources Not specified (complex type) [DAS]domain1.adminServer>set-element-value description "Hello,world" The value Hello,world is set at the specified location /description. [DAS]domain1.adminServer>ls description Hello,world productionMode true id 982883233 securityManager complex type passwordValidator Not specified (complex type) adminServerName adminServer domainLogHome Not specified (string ) systemClusteringFramework complex type domainBackup complex type enableWebadmin true enableJsonCommand false enableToResynchronizeApplications false servers complex type sessionCluster complex type clusters Not specified (complex type) serverTemplates Not specified (complex type) lifecycleInvocation list of [lifecycleInvocation] applicationRepositories Not specified (complex type) deployedApplications Not specified (complex type) deployedLibraries Not specified (complex type) resources Not specified (complex type)
simple type을 원소로 갖는 목록에 값을 추가하는 예제이다. 값을 추가할 목록에 대한 경로를 항목 이름으로 사용하는 것을 알 수 있다.
[DAS]domain1.adminServer>start-configuration-editing Successfully acquired a configuration lock from Domain Administration Server. [DAS]domain1.adminServer>cd lifecycleInvocation Current path is changed to /lifecycleInvocation [DAS]domain1.adminServer>create-empty-element com.tmax.sample Added a new element of type lifecycleInvocation with id [className == com.tmax.sample] to the list at path /lifecycleInvocation [DAS]domain1.adminServer>cd com.tmax.sample Current path is changed to /lifecycleInvocation/com.tmax.sample [DAS]domain1.adminServer>cd invocation Current path is changed to /lifecycleInvocation/com.tmax.sample/invocation [DAS]domain1.adminServer>create-empty-element invocation Added a new element of type invocation to the list at path /lifecycleInvocation/com.tmax.sample/invocation [DAS]domain1.adminServer>cd [0] Current path is changed to /lifecycleInvocation/com.tmax.sample/invocation/[0] [DAS]domain1.adminServer>ls invocationMethod Not specified (complex type) invocationArgument list of [string] invocationType Not specified (enum[BOOT, BEFORE_DEPLOY, AFTER_DEPLOY, READY, BEFORE_UNDEPLOY, AFTER_UNDEPLOY]) [DAS]domain1.adminServer>set-element-value invocationArgument arg0 The value arg0 added to the list in the specified location: /lifecycleInvocation/com.tmax.sample/invocation/[0]/invocationArgument. [DAS]domain1.adminServer>cd invocationArgument Current path is changed to /lifecycleInvocation/com.tmax.sample/invocation/[0]/invocationArgument [DAS]domain1.adminServer>ls [0] arg0 Current list can contain the following type of elements: [string] [DAS]domain1.adminServer>set-element-value . arg1 The value arg1 added to the list in the specified location: /lifecycleInvocation/com.tmax.sample/invocation/[0]/invocationArgument. [DAS]domain1.adminServer>ls [0] arg0 [1] arg1 Current list can contain the following type of elements: [string]
지정한 경로에 위치한 항목을 삭제한다.
alias
delete, rm
사용법
delete-element <path>
파라미터
파라미터 | 설명 |
---|---|
<path> | 값을 삭제할 항목의 경로를 지정한다. |
예제
[DAS]domain1.adminServer>cd / Current path is changed to / [DAS]domain1.adminServer>ls description Hello,world productionMode true id 982883233 securityManager complex type passwordValidator Not specified (complex type) adminServerName adminServer domainLogHome Not specified (string ) systemClusteringFramework complex type domainBackup complex type enableWebadmin true enableJsonCommand false enableToResynchronizeApplications false servers complex type sessionCluster complex type clusters Not specified (complex type) serverTemplates Not specified (complex type) lifecycleInvocation list of [lifecycleInvocation] applicationRepositories Not specified (complex type) deployedApplications Not specified (complex type) deployedLibraries Not specified (complex type) resources Not specified (complex type) [DAS]domain1.adminServer>delete-element description Successfully delete the target element at /description. [DAS]domain1.adminServer>ls description Not specified (string ) productionMode true id 982883233 securityManager complex type passwordValidator Not specified (complex type) adminServerName adminServer domainLogHome Not specified (string ) systemClusteringFramework complex type domainBackup complex type enableWebadmin true enableJsonCommand false enableToResynchronizeApplications false servers complex type sessionCluster complex type clusters Not specified (complex type) serverTemplates Not specified (complex type) lifecycleInvocation list of [lifecycleInvocation] applicationRepositories Not specified (complex type) deployedApplications Not specified (complex type) deployedLibraries Not specified (complex type) resources Not specified (complex type)
수정한 내용을 서버에 반영시키고 결과를 출력한다.
alias
activate
사용법
activate-configuration
예제
[DAS]domain1.adminServer>cd / [DAS]domain1.adminServer>ls description Not specified (string ) productionMode true id 982883233 securityManager complex type passwordValidator Not specified (complex type) adminServerName adminServer domainLogHome Not specified (string ) systemClusteringFramework complex type domainBackup complex type enableWebadmin true enableJsonCommand false enableToResynchronizeApplications false servers complex type sessionCluster complex type clusters Not specified (complex type) serverTemplates Not specified (complex type) lifecycleInvocation list of [lifecycleInvocation] applicationRepositories Not specified (complex type) deployedApplications Not specified (complex type) deployedLibraries Not specified (complex type) resources Not specified (complex type) [DAS]domain1.adminServer>set description "Hello, world" The value Hello, world is set at the specified location /description. [DAS]domain1.adminServer>ls description Hello, world productionMode true id 982883233 securityManager complex type passwordValidator Not specified (complex type) adminServerName adminServer domainLogHome Not specified (string ) systemClusteringFramework complex type domainBackup complex type enableWebadmin true enableJsonCommand false enableToResynchronizeApplications false servers complex type sessionCluster complex type clusters Not specified (complex type) serverTemplates Not specified (complex type) lifecycleInvocation list of [lifecycleInvocation] applicationRepositories Not specified (complex type) deployedApplications Not specified (complex type) deployedLibraries Not specified (complex type) resources Not specified (complex type) [DAS]domain1.adminServer>activate The activation completed successfully. [Details] domain.xml : ACTIVATED domain : ACTIVATED domain.description : ACTIVATED
수정한 내용을 삭제하고, 동적 설정 변경을 위한 Lock을 해제한다. 명령어를 수행하는 유저가 Lock을 갖고 있지 않아도 사용할 수 있다. 이에 동적 설정 변경을 위한 Lock을 강제로 해제하는 용도로도 사용할 수 있는 명령어이다.
사용법
cancel
예제
[DAS]domain1.adminServer>edit Successfully acquired a configuration lock from Domain Administration Server. [DAS]domain1.adminServer>ls description Hello, world productionMode true id 982883233 securityManager complex type passwordValidator Not specified (complex type) adminServerName adminServer domainLogHome Not specified (string ) systemClusteringFramework complex type domainBackup complex type enableWebadmin true enableJsonCommand false enableToResynchronizeApplications false servers complex type sessionCluster complex type clusters Not specified (complex type) serverTemplates Not specified (complex type) lifecycleInvocation list of [lifecycleInvocation] applicationRepositories Not specified (complex type) deployedApplications Not specified (complex type) deployedLibraries Not specified (complex type) resources Not specified (complex type) [DAS]domain1.adminServer>cancel Current configuration editing status is cleared, and the configuration lock is released. [DAS]domain1.adminServer>ls Current user does not have the configuration lock.
JEUS 7 Fix#1부터 JSON을 사용하여 명령어를 실행할 수 있는 기능이 추가되었다.
HTTP POST 요청을 사용하여 명령어 실행을 요청하는 JSON 문장을 보내면, 서버에서 요청을 처리한 후 명령어 실행 결과를 담은 JSON 문장을 HTTP 응답으로 보내주는 구조이다.
JSON에 대한 기본적인 내용은 www.json.org을 참고한다.
설명을 위해 사용할 예제 명령어는 다음과 같다.
serverinfo -server server1 -state
위 명령어를 JSON을 사용하여 실행하는 과정은 다음과 같다.
명령어 수행을 요청하는 JSON 문장을 작성한다.
예제 명령어를 실행하기 위해 작성해야 하는 JSON 문장은 다음과 같다.
{ "jeusadmin": { "command": "server-info", "options":[ "-server server1", "-state" ], "argument": null } }
구분 | 설명 |
---|---|
command | 실행할 명령어 이름 |
options | 명령어에 적용할 옵션과 옵션에 대한 인자들 |
argument | 명령어에 적용할 인자들 |
작성한 JSON 문장을 서버로 전송하여 명령어 실행을 요청한다. 전송할 때 사용하는 프로토콜은 HTTP이며, method는 POST를 사용해야 한다.
JEUS 서버에서 JSON 명령어 실행을 위한 요청을 받는 URL은 다음과 같다.
http://${SERVER_HOST}:${SERVER_BASE_PORT}/jsonCommand/command.json
JEUS 서버에서 명령어를 실행하려면 사용자 인증이 필요하다. 사용자 인증은 HTTP Basic Authentication을 사용한다.
서버가 요청한 JSON 문장을 해석하여 실행한 후, 실행 결과를 담은 JSON 문장을 HTTP 응답으로 전송한다. 실행 결과는 개별 명령어별로 각각 다르다.
아래 결과는 예제 명령어를 실행한 경우 서버에서 응답으로 올 수 있는 결과물의 예제이다. JEUS 도메인 구성에 따라 결과는 달라질 수 있다.
{ "jeusadmin-result": { "message":"", "data":[ { "title":"Information of Domain (domain1)", "header":null, "column-names":[ "Server","Status","Node Name","PID","Cluster", "Latest StartTime/ShutdownTime","Need to Restart", "Listen Ports" ], "rows":[ { "row-key":"0", "values":[ "server1(*)","RUNNING (284sec)","N/A","2151","N/A", ... (생략) ] } ], "footer":null } [, "post-message":"" } }
응답 결과를 담고 있는 JSON 문장은 다음과 같은 요소들로 구성된다.
message
상단에 출력할 메시지이다. message가 여러 개인 경우 List 형태로 표현한다. 명령어에 따라 존재하지 않을 수도 있다.
data
실행 결과를 담고 있는 객체로 명령어에 따라 존재하지 않을 수도 있다. data는 기본적으로 표 형태의 자료 구조를 표현하고 있으며, 구성 요소는 다음과 같다.
구분 | 설명 |
---|---|
title | 표의 제목이다. |
header | 표의 머릿말이다. |
column-names | 표를 구성하는 각 열(column)들의 이름이다. |
rows | 표를 구성하는 각 행(row)의 내용이다. 다음의 2가지 구성 요소로 이루어져 있다.
|
footer | 표의 꼬릿말이다. |
post-message
하단에 출력할 메시지이다. post-message가 여러 개인 경우 List 형태로 표현한다. 명령어에 따라 존재하지 않을 수도 있다.
본 절에서는 JSON을 사용하여 애플리케이션을 설치하거나 배포하는 방법을 설명한다. 애플리케이션을 설치하거나거 배포하는 작업은 일반 명령어와 다르게 실행할 JSON 명령어와 배포할 애플리케이션을 함께 전달해야 한다.
다음은 JSON을 사용하여 애플리케이션을 설치하거나 배포하는 과정에 대한 설명이다.
명령어 수행을 요청하는 JSON 문장을 작성한다. Hello.war라는 애플리케이션을 'server1'에 배포하려고 할 경우 JSON 명령어는 다음과 같이 작성한다.
{ "jeusadmin": { "command": "deploy-application", "options":[ "-servers server1", "-path Hello.war" ], "argument": null } }
작성한 JSON 문장과 배포할 파일을 Multi-part 형태로 서버로 전송하여 명령어 실행을 요청한다. Multi-part는 1에서 작성한 JSON 명령어를 담은 command 파트와 배포할 애플리케이션 아카이브를 지정한 file 파트로 구성한다.
JEUS 서버에서 JSON 명령어를 통한 애플리케이션 deploy 요청을 받는 URL은 다음과 같다.
http://${SERVER_HOST}:${SERVER_BASE_PORT}/jsonCommand/install.json
JEUS 서버에서 명령어를 실행하려면 사용자 인증이 필요하다. 사용자 인증은 HTTP Basic Authentication을 사용한다.
서버가 요청한 JSON 문장을 해석하여 실행한 후 실행 결과를 담은 JSON 문장을 HTTP 응답으로 전송한다. 이 부분은 일반 명령어를 실행했을 경우와 다르지 않으므로 “4.2.18.1. 일반 명령어 실행”을 참고한다.
애플리케이션 설치 또는 배포에 관련한 명령어는 install-application, deploy-application, distribute-application이 있다.
본 절에서는 Script 모드 사용법 및 Script 작성법에 대해서 설명한다.
Script모드로 jeusadmin을 동작시킨다.
예제
다음은 JEUS 사용자 이름은 'administrator', 비밀번호는 'jeus'로 가정하고 test.py 스크립트를 실행하는 jeusadmin script 모드 예제이다.
JEUS_HOME/bin$jeusadmin -u administrator -p jeus -script test.py
Attempting to connect to 127.0.0.1:9736.
The connection has been established to Domain Administration Server adminServer in the domain domain1.
JEUS8 Administration Tool
To view help, use the 'help' command.
아래와 같이 스크립트에 인자를 넘겨 줄 수도 있다.
JEUS_HOME/bin$jeusadmin -u administrator -p jeus -script "test.py arg1 arg2"
jeusadmin은 Script 모드로 동작할 때에 커맨드 실행을 위한 메서드와 결과 데이터를 제공한다.
커맨드 실행
아래와 같은 방법으로 각 스크립트 언어별로 커맨드를 실행할 수 있다.
Python
result = command("server-info")
Ruby
result = $command.call "server-info"
결과 데이터
커맨드 실행에 대한 결과로 JeusResult 객체가 리턴되며 결과가 표 형태의 결과를 포함할 경우 JeusResult로부터 JeusTabularData 객체를 얻을 수 있다.
각 데이터 타입은 아래와 같은 메소드를 제공한다.
JeusResult
메소드 | 설명 |
---|---|
isComplete() | 커맨드 실행이 정상적으로 완료되었는지 리턴한다. |
getMessage() | 결과 메시지를 리턴한다. |
getData() | 결과의 표 데이터인 JeusTabularData의 리스트를 리턴한다. |
JeusTabularData
메소드 | 설명 |
---|---|
getTitle() | 표의 타이틀을 리턴한다. |
getHeader() | 표의 머릿말을 리턴한다. |
getFooter() | 표의 꼬릿말 리턴한다. |
getColumnNames() | 표의 각 열의 제목만을 리스트 형태로 리턴한다. |
getRows() | 표 데이터의 각 행의 리스트를 리턴한다. |
예제
SHUTDOWN 상태인 서버들을 찾아 출력하고 재시작한다.
result = command("server-info") tables = result.getData(); table = tables[0]; rows = table.getRows(); shutdown_servers = [] for row in rows: if "SHUTDOWN" in row[1]: shutdown_servers.append(row[0]) print("Server : %s, Node : %s" % (row[0], row[2])) if shutdown_servers: command("start-server %s" % (",".join(shutdown_servers)))
스크립트의 인자로 애플리케이션 경로와 deploy할 서버 리스트를 받아 애플리케이션을 install, deploy한 후 서버를 재시작한다.
import time import sys import os path = sys.argv[0] servers = sys.argv[1] direc, app = os.path.split(path) apptype = os.path.splitext(app)[1][1:].upper() command("undeploy -f %s " % app) command("uninstall-application %s" % app) command("install-application %s -id %s" % (path, app)) command("deploy %s -servers %s -type %s" % (app, servers, apptype)) # restart servers command("stop-server %s" % servers) time.sleep(5) command("start-server %s" % servers)
현재 jeusadmin에서는 Python과 Ruby 두 가지 스크립트 언어에 대해서만 스크립트 모드를 제공하며 이를 확장자로 구분하고 있다. 각각 .py와 .rb 확장자에 대해서만 스크립트를 인식하여 동작한다.
appcompiler는 EJB 인터페이스 Impl, Skeleton, Stub 클래스, JSP를 컴파일하여 서블릿 클래스, 웹 서비스의 Endpoint 클래스 등을 생성하는 애플리케이션 컴파일러이다.
appcompiler는 EJB 2.1 인터페이스의 Impl 클래스, RMI Stub과 Skeleton 클래스, 웹 모듈의 JSP를 컴파일해서 서블릿 클래스들을 미리 생성하기 위해 사용할 수 있다. EJB 3.0 인터페이스로만 구성된 EJB의 경우나 JAX-WS 클라이언트, 서버 애플리케이션은 이 툴을 실행할 필요가 없다.
이 툴은 다음과 같은 경우에 사용하면 효과적이다.
EJB 2.x 표준에 준하는 Bean들이 많아서 최초 디플로이 시간이 오래 걸리는 경우
서비스 타임에 JSP 컴파일할 시간이 오래 걸려서 미리 컴파일을 해두어야 하는 경우
EJB 2.x 모듈의 경우에는 deploy할 때에 애플리케이션에 fast-deploy 설정을 해야 한다. 또는 jeusadmin 콘솔 툴의 deploy 명령어에 [-fast] 옵션을 추가한다. 이 옵션을 통해서 모듈의 런타임 deploy하는 경우 appcompiler가 자동으로 수행되는 것을 막을 수 있다. EJB 엔진은 fast-deploy 옵션이 설정된 경우 인터페이스 Impl, Skeleton, Stub 클래스들을 생성하고 컴파일하는 과정을 수행하지 않고, 미리 생성된 클래스들을 사용해서 deploy할 때 시간을 줄일 수 있다.
웹 엔진은 JSP에 대한 컴파일된 서블릿 클래스 파일이 있을 경우에는 실제 서비스 타임에 컴파일하지 않는다. 이 툴에는 하나의 파일을 생성한 후 컴파일하는 Each 모드와 모든 파일을 생성한 후 한 번에 컴파일하는 Batch 모드가 있다. Batch 모드는 Each 모드에 비해 속도는 빠르지만 컴파일할 때 에러가 나면 원인이 되는 파일을 찾기 힘들다는 단점이 있다. 기본 동작은 Each 모드이므로 Batch 모드를 원할 경우 [-batch] 옵션을 이용하거나 jeus.app.compiler.mode=batch를 설정한다. 단, Batch 모드는 EJB 2.x 모듈에만 적용된다.
Windows에서 WAR 파일에 대해 appcompiler 수행할 때 임시로 만든 디렉터리가 지워지지 않을 수 있다. 이는 java.net.URLClassLoader가 WAR 파일 내부에 포함된 WEB-INF/lib/*.jar 파일들을 명시적으로 닫을 수 없기 때문이다. java.net.URLClassLoader의 경우 Java 7부터 close 메소드가 추가되었으므로 이에 기반하는 향후 버전에서는 문제가 생기지 않을 것이다. 그러나 현재는 임시 디렉터리를 수동으로 삭제해야 한다.
다음은 툴 사용법, 파라미터 및 예제에 대한 설명이다.
사용법
appcompiler [-h] [-verbose] [-clp <class-path>] [-keep] [-jspmap] [-batch] [-q] [-client <clientview_filename>] [-noaddfile] [-deloldgen] [-ejbjar <ejb-jar.xml_path>] [-jeusejbdd <jeus-ejb-dd.xml_path>] [-D <property=value>] [-property <file-name>] [-target <application-path>] [-j concurrency-level] [-ejbonly] [-genjavaonly] [-webonly]
파라미터
파라미터 | 설명 |
---|---|
[-h] | appcompiler의 도움말을 출력한다. |
[-verbose] | verbose 모드를 설정하여 상세한 과정을 출력한다(로그 레벨을 FINEST로 설정한다). |
[-clp] | 컴파일 과정에서 필요한 라이브러리를 class path로 등록한다. 파일 또는 디렉터리 모두 올수 있으며 각각을 구분할 때 Windows는 세미콜론( ; ), Unix는 콜론( : )을 쓰도록 한다. |
[-keep] | 컴파일 과정에서 생성된 소스를 유지할 것인지를 설정한다. |
[-jspmap] | servlet-mapping table(jeus_jspmap.xml)을 생성할 것인지를 설정한다. 단, 이 옵션을 사용할 경우에는 JSP 파일이 있는 디렉터리 이름에 Java 예약어(예:. if, enum, class 등)가 있으면 안 된다. |
[-batch] | 모든 파일을 생성한 후 한 번에 컴파일하는 Batch 모드로 동작한다. 이 옵션이 없으면 하나의 파일을 생성한 후 컴파일하는 Each 모드로 동작한다. 이 옵션은 EJB 2.x 모듈에만 적용된다. |
[-q] | 여러 모듈들을 포함한 EAR 애플리케이션을 컴파일할 때 특정 웹 모듈 컴파일을 실패할 경우 남은 다른 모듈들을 컴파일하지 않고 에러 메시지를 출력하고 중단한다. 이 옵션이 없을 경우에는 특정 웹 모듈 컴파일을 실패해도 에러 메시지만 출력하고 남은 다른 모듈들에 대해 컴파일을 진행한다. |
[-client <clientview_filename>] | 생성될 Stub 클래스들과 인터페이스 클래스들이 포함될 clientview 파일의 이름을 설정한다.
|
[-noaddfile] | [-client] 옵션과 함께 사용할 때 유효하며, clientview 파일을 생성하지만, 컴파일 대상이 되는 파일은 컴파일하지 않고 원본 내용을 유지한다. 예를 들어 calc.jar를 appcompiler로 수행할 때 clientview 파일을 생성하기 위해서 [-client] 옵션을 사용한다. 여기서 clientview 파일은 Stub과 Remote, Home 인터페이스 클래스들만 모아둔 파일을 의미한다. 이때 calc.jar를 appcompiler로 컴파일한 뒤 clientview 파일을 생성하기 때문에 calc.jar를 컴파일한다. 컴파일된 파일은 원본 파일에서 컴파일 과정을 통해 생성된 Impl, Skeleton, Stub 등 클래스 파일들이 추가되어 있다. 만약 사용자가 calc.jar 파일 자체는 컴파일된 상태로 만들기를 원하지 않고, clientview 파일만 생성하기를 원할 경우에 [-noaddfile] 옵션을 사용할 수 있다. |
[-deloldgen] | EJB 모듈을 컴파일할 때 JEUS 이전 버전에서 만들어진 Impl, Skeleton, Stub 파일들을 삭제하고 컴파일을 시도한다. [참고] JEUS 4와 JEUS 5에서 Impl, Skeleton, Stub 클래스들의 이름을 생성하는 방식이 JEUS 8과는 다르다. JEUS 이전 버전인 JEUS 4와 JEUS 5에서 생성한 EJB 모듈을 appcompiler로 컴파일하여 JEUS 8에서 사용하려고 할 때 기존 버전의 Impl, Skeleton, Stub 파일들이 남아있어 JEUS 8에서 정상적으로 EJB가 수행하지 않는 문제점을 해결할 수 있다. |
[-ejbjar <ejb-jar.xml_path> ] | 컴파일할 때 사용할 ejb-jar.xml 파일을 설정한다. |
[-jeusejbdd <jeus-ejb-dd.xml_path> ] | 컴파일할 때 사용할 jeus-ejb-dd.xml 파일을 설정한다. |
[-D <property=value>] | 시스템 프로퍼티를 지정한다. 이 옵션은 한 번 이상 이용할 수 있다. |
[-property <file-name>] | 파일로부터 시스템 프로퍼티를 설정한다. |
[-target <application-path>] | 컴파일할 대상 애플리케이션 파일(archived ear, jar, war) 또는 디렉터리(exploded EAR, JAR, WAR)를 설정한다. EAR뿐 아니라 standalone JAR, WAR도 하나의 애플리케이션으로 생각한다. 컴파일해서 생성된 Impl, Skeleton, Stub 클래스 파일들은 컴파일하는 대상 애플리케이션의 파일에 추가된다. |
[-j concurrency-level] | JSP 컴파일할 때에 사용하는 값이다. JSP 파일들이 많은 경우 이 설정을 통해서 여러 개의 Thread로 동시에 컴파일을 진행하는 것이 효율적이다. (기본값: 1) |
[-ejbonly] | EAR 내부에 있는 EJB 모듈만 컴파일한다. |
[-genjavaonly] | Java 파일만을 생성하고 싶을 때에 사용한다. |
[-webonly] | EAR 내부에 있는 Web 모듈만 컴파일한다. |
예제
appcompiler는 JEUS_HOME/bin/ 디렉터리에 위치한 일반적인 스크립트 파일이다.
ejb.jar 모듈의 Home, Remote interface Impl, Skeleton, Stub 클래스를 생성해서 JAR 파일에 포함한다.
JEUS_HOME/bin$ appcompiler ejb.jar
web.war 모듈의 모든 JSP 파일로부터 서블릿 클래스를 생성해서 WAR 파일에 포함한다.
JEUS_HOME/bin$ appcompiler web.war
Batch 모드로 모듈을 컴파일한다.
JEUS_HOME/bin$ appcompiler -batch app.jar
ejb.jar 모듈의 home, remote 인터페이스 Impl, Skeleton, Stub 클래스를 생성해서 ejb.jar 파일에 포함시키며 Home, Remote 인터페이스와 생성된 Stub 클래스를 포함한 clinetview.jar 파일을 생성한다.
JEUS_HOME/bin$ appcompiler -client clientview.jar ejb.jar
ejbddinit은 ejb-jar.xml 정보와 사전에 생성된 프로퍼티 파일 및 사용자 입력 값 등을 이용해서 JEUS EJB DD(jeus-ejb-dd.xml)를 자동으로 생성하는 툴이다.
EJB를 deploy할 때 필요한 항목들은 기본값으로 설정하므로 JEUS EJB DD는 반드시 존재해야하는 것은 아니다. 따라서 EJB를 새로 개발할 경우 불필요할 수 있지만, JEUS EJB DD를 사용하던 기존 방법으로 애플리케이션을 작성하거나 다른 제품에서 전환(migration)하는 경우 쉽게 템플릿을 작성하는 용도로 사용할 수 있다.
Java EE 6의 annotation-based 방식은 소스 파일 내에 설정할 수 있으므로 지원하지 않는다.
다음은 툴 사용법, 파라미터 및 예제에 대한 설명이다.
사용법
ejbddinit [-property property_file_path] [-level log_level] [-source application_file_or_directory_name]
파라미터
파라미터 | 설명 |
---|---|
[-property property_file_path] | 프로퍼티 파일의 경로를 지정한다. jeus-ejb-dd.xml을 목적에 맞게 생성하기 위해서는 이 옵션을 반드시 설정해야 한다. 프로퍼티를 JEUS EJB DD의 태그에 대응시켜 값을 설정할 수 있다. 설정 가능한 프로퍼티 목록은 절 4.4. “프로퍼티 목록”을 참고한다.
|
[-level log_level] | ejbddinit를 실행할 때 화면에 출력되는 로그의 레벨을 설정한다. |
[-source application_file_or_directory_name] | 대상 EJB 모듈의 경로를 설정한다. EJB 모듈은 '.jar' 확장자를 갖는 압축 파일이거나 디렉터리이다. 성공적으로 JEUS EJB DD를 생성하면, EJB 모듈이 디렉터리일 경우 META-INF 폴더 하위에 jeus-ejb-dd.xml을 생성한다. EJB 모듈이 압축 파일인 경우 본래의 파일 이름 끝에 ".new"를 붙인 이름으로 새로운 압축 파일을 만들고 압축 파일 내부의 META-INF 디렉터리 하위에 jeus-ejb-dd.xml을 생성한다. |
예제
usage를 출력한다.
$ ejbddinit
ejbddinit.properties에 정의된 프로퍼티를 바탕으로 EJB 모듈인 ejb.jar에 대하여 ejb.jar.new 파일을 생성한다. 생성된 ejb.jar.new 파일 내부의 META-INF 디렉터리 하위에 jeus-ejb-dd.xml이 위치한다.
$ ejbddinit -property ejbddinit.properties -source ejb.jar
ejbddinit.properties에 정의된 프로퍼티를 바탕으로 EJB 모듈인 ejb_dir의 META-INF 디렉터리 하위에 jeus-ejb-dd.xml을 생성한다.
$ ejbddinit -property ejbddinit.properties -source ejb_dir
ejbddinit.properties에 정의된 프로퍼티를 바탕으로 jeus-ejb-dd.xml을 생성한다. source 옵션 값을 입력하지 않았으므로 ejbddinit.properties에 EJB 모듈 경로가 설정되어 있어야 한다.
$ ejbddinit -property ejbddinit.properties
ejbddinit.properties에 정의된 프로퍼티를 바탕으로 EJB 모듈인 ejb.jar에 대하여 ejb.jar.new 파일을 생성한다. 생성된 ejb.jar.new 파일 내부의 META-INF 디렉터리 하위에 jeus-ejb-dd.xml이 위치한다. FINE 레벨의 로그가 화면에 출력된다.
$ ejbddinit -property ejbddinit.properties -level FINE -source ejb.jar
ejbddinit은 Ant Task를 지원한다. ejbddinit ant task는 “5.4.2. ejbddinit”에서 설명한다.
다음은 ejbddinit에서 지원하는 프로퍼티 목록이다. 각 프로퍼티에 대한 상세 설명은 대응되는 jeus-ejb-dd.xml 태그의 description을 참고한다.
프로퍼티 | Type | 비고 |
---|---|---|
source | String | 대상 EJB 모듈의 경로이다. jeus-ejb-dd.xml의 태그와 관련 없다. |
logging-level | String | ejbddinit를 실행할 때 화면에 출력되는 로그의 레벨로 jeus-ejb-dd.xml의 태그와 관련 없다. |
export-name | String | jeus-ejb-dd.xml의 <export-name> 태그에 대응한다. 특정 EJB에 대해서만 사용을 권장한다. 사용하는 경우 패턴을 지원한다. 자세한 내용은 export-name 프로퍼티에 대한 패턴 지원을 참고한다. |
local-export-name | String | jeus-ejb-dd.xml의 <local-export-name> 태그에 대응한다. 특정 EJB에 대해서만 사용을 권장한다. |
export-port | int (not negative) | jeus-ejb-dd.xml의 <export-port> 태그에 대응한다. |
export-iiop | boolean | jeus-ejb-dd.xml의 <export-iiop> 태그에 대응한다. |
thread-max | int (not negative) | jeus-ejb-dd.xml의 <thread-max> 태그에 대응한다. |
bean-pool-min | int (not negative) | jeus-ejb-dd.xml의 <bean-pool>/<pool-min> 태그에 대응한다. |
bean-pool-max | int (not negative) | jeus-ejb-dd.xml의 <bean-pool>/<pool-max> 태그에 대응한다. |
connect-pool-min | int (not negative) | jeus-ejb-dd.xml의 <connect-pool>/<pool-min> 태그에 대응한다. |
connect-pool-max | int (not negative) | jeus-ejb-dd.xml의 <connect-pool>/<pool-max> 태그에 대응한다. |
capacity | int (not negative) | jeus-ejb-dd.xml의 <capacity> 태그에 대응한다. |
passivation-timeout | long (not negative or -1 for disable) | jeus-ejb-dd.xml의 <passivation-timeout> 태그에 대응한다. |
disconnect-timeout | long (not negative or -1 for disable) | jeus-ejb-dd.xml의 <disconnect-timeout> 태그에 대응한다. |
engine-type | String (defined) | jeus-ejb-dd.xml의 <engine-type> 태그에 대응한다. 다음 중에 하나를 설정한다.
|
subengine-type | String (defined) | jeus-ejb-dd.xml의 <subengine-type> 태그에 대응한다. 다음 중에 하나를 설정한다.
|
fetch-size | int (not negative) | jeus-ejb-dd.xml의 <fetch-size> 태그에 대응한다. |
init-caching | boolean | jeus-ejb-dd.xml의 <init-caching> 태그에 대응한다. |
table-name | String | jeus-ejb-dd.xml의 <table-name> 태그에 대응한다. |
creating-table | String (defined) | jeus-ejb-dd.xml의 <creating-table> 태그에 대응한다. 다음 중에 하나를 설정한다.
|
deleting-table | boolean | jeus-ejb-dd.xml의 <deleting-table> 태그에 대응한다. |
db-vendor | String | jeus-ejb-dd.xml의 <db-vendor> 태그에 대응한다. |
datasource-name | String | jeus-ejb-dd.xml의 <data-source-name> 태그에 대응한다. |
enable-instant-ql | boolean | jeus-ejb-dd.xml의 <enable-instant-ql> 태그에 대응한다. |
export-name은 EJB 모듈 이름이나 ejb-jar.xml에 정의된 EJB 컴포넌트의 <ejb-name>, <ejb-class> 태그의 값들을 이용하여 지정하는 경우가 대부분이므로 이들 값들을 좀 더 편리하게 이용할 수 있도록 패턴을 지원한다.
패턴 이름 | 패턴 값 |
---|---|
%{module-name} | EJB 모듈 이름이다. JAR 파일인 경우 '.jar' 확장자를 제거한 파일 이름이다. |
%{ejb-name} | EJB 컴포넌트 이름이다. ejb-jar.xml에 정의된 해당 EJB 컴포넌트의 <ejb-name> 태그의 값이다. |
%{ejb-fqn} | EJB 컴포넌트의 EJB 클래스의 fully qualified name이다. ejb-jar.xml에 정의된 해당 EJB 컴포넌트의 <ejb-class> 태그의 값이다. |
%{ejb-class} | %{ejb-fqn} 값에서 패키지 이름을 제외한 클래스 이름이다. |
다음은 이름이 'sample-ejb'이고 EJB 클래스의 fully qualified name이 'sample.SampleBean'인 EJB 컴포넌트가 이름이 'myejb'인 EJB 모듈에 패키지되어 있다고 가정하는 경우 패턴 사용의 예이다.
export-name을 'myejb_sample-ejb'로 지정한다.
export-name=%{module-name}_%{ejb-name}
export-name을 'PREFIX_sample.SampleBean'으로 지정한다.
export-name=PREFIX_%{ejb-fqn}
export-name을 'SampleBean_POSTFIX'로 지정한다.
export-name=%{ejb-class}_POSTFIX
위의 예에서 알 수 있듯이 export-name을 설정할 때 필요한 기타 문자열(PREFIX나 POSTFIX와 같은)들을 패턴에 붙일 수 있으며 패턴 간의 조합도 가능하다. 패턴 이름은 대소문자 구별 없이 사용할 수 있다.
다음은 ejbddinit 프로퍼티 파일의 작성 예다. JEUS EJB DD를 생성할 EJB에 대하여 적절히 동작하도록 다음의 예제를 수정해서 사용할 것을 권장한다.
# PROPERTY FILE SAMPLE # JEUS EJB DD Generation Option # target file or directory path source=/home/workspace/ejb.jar # log-level for EJB DD init logging-level=DEBUG # JEUS EJB DD configuration tag and value pairs for all EJBs db-vendor=mysql datasource-name=jdbc/__default creating-table=use-existing deleting-table=false engine-type=EXCLUSIVE_ACCESS subengine-type=ReadLocking fetch-size=1111 enable-instant-ql=true export-port=9999 export-iiop=false thread-max=100 bean-pool-min=10 bean-pool-max=100 capacity=10000 passivation-timeout=300000 disconnect-timeout=-1 connect-pool-min=10 connect-pool-max=100 init-caching=false # JEUS EJB DD configuration tag and value pairs for BookBean EJB BookBean.export-name=BookBeanFromProperty BookBean.local-export-name=LocalBookBeanFromProperty BookBean.export-port=55555 BookBean.thread-max=100
webddgen은 사용자 입력 값을 바탕으로 웹 애플리케이션 내 WEB-INF 디렉터리에 jeus-web-dd.xml를 생성 또는 업데이트하는 툴이다. Web 모듈 내부의 WEB-INF 디렉터리에 jeus-ejb-dd.xml을 생성한다. 압축 파일인 경우 그 파일에 jeus-web-dd.xml을 포함시켜준다.
다음은 툴 사용법, 파라미터 및 예제에 대한 설명이다.
사용법
webddgen -file <war-file-path> [-ctx <context-path>] [-prop <context-level-property>] [-verbose]
파라미터
파라미터 | 설명 |
---|---|
-file <war-file-path> | Web 모듈의 경로를 설정한다. .war 확장자를 갖는 JAR 형식의 압축 파일이거나 디렉터리이다. |
[-ctx <context-path>] | jeus-web-dd.xml에 설정할 context-path 정보이다. |
[-prop <context-level-property>] | Web 모듈(Web Context) 단위로 설정하는 프로퍼티이다. 예를 들어 JEUS 4에서 작성한 JSP를 수정하지 않고 사용하려면 해당 JSP가 포함된 Web 모듈의 jeus.servlet.jsp.modern 프로퍼티를 false로 설정한다. 프로퍼티 형식은 name=value이다. (예: jeus.servlet.jsp.modern=false) |
[-verbose] | 동작에 문제가 있을 때 디버깅 용도로 사용할 수 있다. 이를 위해서 webddgen 내부적으로 생성하는 디렉터리를 삭제하지 않는다. 단, webddgen을 재실행할 때 삭제한다. |
예제
사용법을 출력한다.
$ webddgen -help
web.war에 jeus-web-dd.xml을 생성한다.
$ webddgen -file web.war
jeus-web-dd.xml을 생성할 때 context-path를 추가한다.
$ webddgen -file web.war -ctx /web1
JEUS 4에서 작성한 JSP가 포함된 Web 모듈에 jeus.servlet.jsp.modern 프로퍼티를 false로 설정한다.
$ webddgen -file oldjsps.war -prop jeus.servlet.jsp.modern=false
encryption은 암호화 툴(Encryption Tool)로 문자열을 암호화하거나 그 반대로 복호화하는 기능을 제공한다. 문자열은 Base64 포맷으로 인코딩하거나 Hash 결과를 제공한다.
secret key가 필요한 알고리즘(예: AES, DES, DESEDE, BLOWFISH, SEED)의 경우 security.key 파일을 생성하여 사용한다. security.key 파일은 기본적으로 JEUS_HOME/domains/<domain name>/config/security에 위치하며, 변경하려면 시스템 프로퍼티 jeus.security.keypath를 이용하여 경로를 지정한다.
JEUS 6 Fix#3부터는 Master Password를 이용해서 security.key 파일을 보호하는 것이 가능하다. JEUS 6 Fix#4부터 암호화 방식이 조금 바뀌었고, 이에 따라 Fix#5에서 이전 포맷의 ciphertext를 바뀐 포맷의 ciphertext로 바꿔주는 convert 옵션이 encryption에 추가되었다.
encryption은 다음의 디렉터리에 위치한 encryption 스크립트로 실행할 수 있다.
JEUS_HOME/bin/
다음은 JEUS_HOME 시스템 환경변수가 설정되어 있고, 시스템 Path에 JEUS_HOME/bin 디렉터리가 설정되어 있다고 가정하는 경우 encryption 호출에 대한 예이다.
호출 후에 툴은 단순히 인코딩 또는 디코딩된 문자열을 조회한다.
만약 툴에 어떤 파라미터도 제공하지 않았거나, 호출 문법이 잘못되었을 경우 단순한 도움말 메시지가 출력된다.
$ encryption base64 mypassword
[BASE64] : [mypassword] --> [encode:bXlwYXNzd29yZA==]
[BASE64] : [bXlwYXNzd29yZA==] --> [decode:mypassword]
다음은 문자열 "bXlwYXNzd29yZA=="는 "mypassword"를 Base 64포맷으로 인코딩한 것이다.
$ encryption DESede mypassword
[DESEDE] : [mypassword] --> [encode:8JLoskMPHkwwLKi+TJeOgQZBDO15PBQ=]
[DESEDE] : [8JLoskMPHkwwLKi+TJeOgQZBDO15PBQ=] --> [decode:mypassword]
문자열 “8JLoskMPHkwwLKi+TJeOgQZBDO15PBQ=”는 "mypassword"를 DESede cipher algorhtm으로 암호화된 패스워드이다. 이 암호화를 진행하기 위해 만들어진 secret key는 JEUS_HOME/domains/<domain name>/config/security의 security.key 파일에 저장된다(또는 첫 암호화가 아닐 경우 security.key 파일에 저장된 key를 이용).
-protectkey 옵션을 이용하면 Master Password를 입력받아 security.key 파일을 암호화하는 것이 가능하다.
$ encryption -protectkey AES mypassword
Input the master password For key encryption>
Confirm the master password For key encryption>
[AES] : [mypassword] --> [encode:qsHQdjqh8aAr3fWPYWbU0/VkFbs9yllZeRJaK5xSiuo=]
[AES] : [qsHQdjqh8aAr3fWPYWbU0/VkFbs9yllZeRJaK5xSiuo=] --> [decode:mypassword]
위의 예제와 비슷한데 Master Password를 입력 받는 것이 다르다.
여기서 입력받는 패스워드를 이용하여 secret key를 DESede 알고리즘으로 암호화하게 된다. 위의 명령어를 수행한 이후 만들어진 security.key 파일을 사용하기 위해서는 항상 Master Password를 입력받는 작업이 필요하다. 따라서, 암호화된 security.key 파일을 이용해 암호화를 진행할 경우 다음과 같이 수행된다.
$ encryption -protectkey AES mypassword
The encryption key file is encrypted. Enter the master password.
Password>
[AES] : [mypassword] --> [encode:qsHQdjqh8aAr3fWPYWbU0/VkFbs9yllZeRJaK5xSiuo=]
[AES] : [qsHQdjqh8aAr3fWPYWbU0/VkFbs9yllZeRJaK5xSiuo=] --> [decode:mypassword]
JEUS 6 Fix#4부터 encryption 방식이 좀 더 보안적인 측면에서 강화된 버전으로 바뀌었다. 따라서 ciphertext의 포맷이 조금 변화하였는데, Fix#4 이전 버전에서 생성한 암호문을 이후 버전에서 그대로 사용할 수 없게 되었다. 이에 따라 Fix#5부터 encryption에서 ciphertext를 변환할 수 있는 기능이 추가되었고, 이는 -convert 옵션을 이용해 다음과 같이 사용할 수 있다.
$ encryption -convert AES i06wYRz3u60/Gqun2sKtXH1u=
Decryption was successful.
[before:i06wYRz3u60/Gqun2sKtXH1u=] --> [after:ET7c/P21Qx1Io8UI6Ss2NvZ0G=]
security.key 파일이 암호화되어 있을 경우에는 다음과 같이 실행한다.
$ encryption -convert -protectkey AES i06wYRz3u60/Gqun2sKtXH1u=
The encryption key file is encrypted. Enter the master password.
Password>
Decryption succeed.
[before:i06wYRz3u60/Gqun2sKtXH1u=] --> [after:ET7c/P21Qx1Io8UI6Ss2NvZ0G=]
wsgen 툴은 JAX-WS 웹 서비스를 위한 툴이다. JAX-WS 웹 서비스를 위한 툴로 Java 클래스로부터 WSDL 파일과 JAX-RPC 매핑 파일을 생성하고, 웹 서비스 정책 설정 파일을 생성할 수도 있다.
wsgen 툴은 service endpoint interface 클래스(그리고 임의의 Java로 구현한 클래스)로부터 다음과 같은 것을 생성한다.
Portable Artifacts
웹 서비스의 WSDL 파일(옵션)
웹 서비스 정책 파일 wsit-<endpoint classname>.xml 파일(옵션)
다음은 툴 사용법, 파라미터 및 예제에 대한 설명이다.
사용법
Usage: wsgen [options] <SEI> where [options] include: -classpath <path> specify where to find input class files -cp <path> same as -classpath <path> -d <directory> specify where to place generated output files -extension allow vendor extensions - functionality not specified by the specification. Use of extensions may result in applications that are not portable or may not interoperate with other implementations -help display help -keep keep generated files -r <directory> resource destination directory, specify where to place resouce files such as WSDLs -s <directory> specify where to place generated source files -verbose output messages about what the compiler is doing -version print version information -wsdl[:protocol] generate a WSDL file. The protocol is optional. Valid protocols are [soap1.1, Xsoap1.2], the default is soap1.1. The non stanadard protocols [Xsoap1.2] can only be used in conjunction with the -extension option. -inlineSchemas inline schemas in the generated wsdl. Must be used in conjunction with the -wsdl option. -servicename <name> specify the Service name to use in the generated WSDL Used in conjunction with the -wsdl option. -portname <name> specify the Port name to use in the generated WSDL Used in conjunction with the -wsdl option. Examples: wsgen -cp . example.Stock wsgen -cp . example.Stock -wsdl -servicename {http://mynamespace}MyService
파라미터
파라미터 | 설명 |
---|---|
-classpath <path> | 입력 Java 클래스 파일들을 찾기 위한 경로를 기술한다. |
-cp <path> | -classpath <path>와 동일하다. |
-d <directory> | 결과 파일이 생성될 디렉터리를 지정한다. |
-extension | 벤더 특정의 확장성을 명시할 때 사용한다. 상호 운용 및 이식성이 떨어질 수 있다. |
-help | 도움말을 출력한다. |
-keep | 생성되는 파일들을 보존한다. |
-r <directory> | genwsdl 속성과 함께 사용한다. WSDL 파일을 생성할 위치를 지정한다. |
-s <directory> | 생성되는 소스 파일들의 위치를 설정한다. |
-verbose | Verbose 메시지를 출력한다. |
-version | 버전 정보를 화면에 출력한다. |
-wsdl[:protocol] | 기본적으로 wsgen은 WSDL 파일을 생성하지 않는다. 이 옵션을 사용하면 개발자는 deploy되기 전에 WSDL 파일을 볼 수 있다. [:protocol] 또한 옵션이며 기본값은 soap1.1 이다. Xsoap1.2 또한 사용할 수 있으며 -extension 옵션과 함께 사용한다. |
-inlineSchemas | 생성된 WSDL의 스키마를 인라인한다. -wsdl 옵션과 함께 사용해야 한다. |
-servicename <name> | -wsdl 옵션과 함께 사용한다. 생성되는 WSDL 파일의 특정 wsdl:service element의 이름을 설정한다. |
-portname <name> | -wsdl 옵션과 함께 사용한다. 생성되는 WSDL 파일의 특정 wsdl:portname element의 이름을 설정한다. |
예제
wsgen는 JEUS_HOME/bin/ 디렉터리에 위치한 일반적인 스크립트 파일이다.
wsgen 툴을 실행하는 예는 다음과 같다.
$ wsgen -classpath build/classes -d build/classes -wsdl
fromjava.server.AddNumbersImpl
위의 명령어는 서비스 end-point 구현 클래스인 fromjava.server.AddNumbersImpl로부터 JAX-WS 웹 서비스를 구성한다. fromjava.server.AddNumbersImpl의 클래스 패스는 "build/classes"이며 WSDL 문서와 함께 JavaBean 파일들이 "build/classes" 디렉터리에 생성된다.
wsimport는 JAX-WS 웹 서비스를 위한 툴이다. WSDL 파일로부터 클라이언트 측 Java Stub 소스 파일들과 서버 측 웹 서비스 인터페이스 Java 소스 파일, 웹 서비스 정책 설정 파일을 생성한다.
wsimport 툴은 웹 서비스의 WSDL로부터 다음과 같은 것을 생성한다.
SEI, 서비스 클래스와 그 밖의 JAXB 관련 Java 클래스들
웹 서비스 정책 설정이 담긴 WSDL 파일, wsit-client.xml 파일
다음은 툴 사용법, 파라미터 및 예제에 대한 설명이다.
사용법
Usage: wsimport [options] <WSDL_URI> where [options] include: -b <path> specify jaxws/jaxb binding files or additional schemas (Each <path> must have its own -b) -B <jaxbOption> Pass this option to JAXB schema compiler -catalog <file> specify catalog file to resolve external entity references supports TR9401, XCatalog, and OASIS XML Catalog format -d <directory> specify where to place generated output files -extension allow vendor extensions - functionality not specified by the specification. Use of extensions may result in applications that are not portable or may not interoperate with other implementations -help display help -httpproxy:<host>:<port> specify a HTTP proxy server (port defaults to 8080) -keep keep generated files -p <pkg> specifies the target package -quiet suppress wsimport output -s <directory> specify where to place generated source files -target <version> generate code as per the given JAXWS spec version Defaults to 2.2, Accepted values are 2.0, 2.1 and 2.2 e.g. 2.0 will generate compliant code for JAXWS 2.0 spec -verbose output messages about what the compiler is doing -version print version information -wsdllocation <location> @WebServiceClient.wsdlLocation value -clientjar <jarfile> Creates the jar file of the generated artifacts along with the WSDL metadata required for invoking the web service. -generateJWS generate stubbed JWS implementation file -implDestDir <directory> specify where to generate JWS implementation file -implServiceName <name> local portion of service name for generated JWS implementation -implPortName <name> local portion of port name for generated JWS implementation Extensions: -XadditionalHeaders map headers not bound to request or response message to Java method parameters -Xauthfile file to carry authorization information in the format http://username:password@example.org/stock?wsdl -Xdebug print debug information -Xno-addressing-databinding enable binding of W3C EndpointReferenceType to Java -Xnocompile do not compile generated Java files -XdisableAuthenticator disable Authenticator used by JAX-WS RI, -Xauthfile option will be ignored if set -XdisableSSLHostnameVerification disable the SSL Hostname verification while fetching wsdls Examples: wsimport stock.wsdl -b stock.xml -b stock.xjb wsimport -d generated http://example.org/stock?wsdl
파라미터
파라미터 | 설명 |
---|---|
-b <path> | 외부의 JAX-WS 또는 JAXB 바인딩 파일들을 지정한다. |
-B <jaxbOption> | 이 옵션을 JAXB 스키마 컴파일러에 전달함을 지정한다. |
-catalog <file> | TR9401, XCatalog, OASIS XML Catalog 형식과 같은 외부의 Entity 참조값을 설정할 수 있다. 또한 ant xmlcatalog 타입을 사용할 수도 있다. |
-d <directory> | 결과 파일이 생성될 디렉터리를 지정한다. |
-extension | 벤더 특정의 확장성을 명시할 때 사용한다. 상호 운용 및 이식성이 떨어질 수 있다. |
-help | 도움말을 출력한다. |
-httpproxy:<host>:<port> | HTTP 프록시 서버를 지정한다. (기본값 : 8080) |
-keep | 생성되는 파일들을 보존한다. |
-p <pkg> | WSDL의 모든 Namespace URI에 대한 Java 패키지 이름을 지정한다. |
quiet | 출력 메시지들을 보이지 않게 한다. |
-s <directory> | 생성된 소스 파일들이 놓일 위치를 지정한다. 이 속성을 지정하면 keep 속성이 자동으로 설정된다. |
-target <version> | 이곳에 지정된 JAXWS 스펙 버전에 따라 코드를 생성한다. |
-verbose | Verbose 출력은 true일때 가능하다. (기본값: false) |
-version | 버전 정보를 화면에 출력한다. |
-wsdllocation <location> | WSDL URI를 이 속성에 명시하면 그 URI 값이 생성되는 SEI(Service Endpoint Interface)와 서비스 인터페이스의 @WebService.wsdlLocation Annotation과 @WebServiceClient.wsdlLocation Annotation에 설정된다. |
-clientjar <jarfile> | 웹 서비스 호출에 필요한 WSDL 메타 데이터와 함께 생성된 아티팩트의 jar 파일을 생성한다. |
-generateJWS | Stub된 JWS 구현 파일을 생성한다. |
-implDestDir <directory> | JWS 구현 파일을 생성할 위치를 지정한다. |
-implServiceName <name> | 생성된 JWS 구현에 대한 서비스 이름의 로컬 부분이다. |
-implPortName <name> | 생성된 JWS 구현에 대한 포트 이름의 로컬 부분이다. |
예제
wsimport는 JEUS_HOME/bin/ 디렉터리에 위치한 일반적인 스크립트 파일이다.
wsimport 툴을 실행하는 예는 다음과 같다.
$ wsimport -d build/classes -keep -p fromwsdl.server src/conf/AddNumbers.wsdl
위의 명령어는 AddNumbers.wsdl WSDL 문서로부터 패키지명이 fromwsdl.server인 Portable Artifact를 생성한다. [-keep] 옵션에 의해 생성되는 Java 클래스 소스들은 삭제되지 않는다.
java2wsdl은 JAX-RPC 웹 서비스를 위한 툴로 Java 클래스로부터 WSDL파일과 JAX-RPC 매핑 파일을 생성한다. 또한 service end-point interface Java 클래스(또는 구현 클래스)로부터 웹 서비스의 WSDL파일, JAX-RPC 매핑 파일과 같은 리소스를 생성한다.
다음은 툴 사용법, 파라미터 및 예제에 대한 설명이다.
사용법
Usage: java2wsdl <options> <input file> where <input file> include: configuration file service configuration xml file (by default) where <options> include: -classpath <path> specify where to find input class files -cp <path> same as -classpath <path> -d <directory> specify where to place generated output files -level <log-level> specify a log level -verbose [optional] turn verbose mode on
파라미터
파라미터 | 설명 |
---|---|
-classpath <path> | 입력 Java 클래스 파일들을 찾기 위한 경로를 기술한다. |
-cp <path> | -classpath <path>와 동일하다. |
-d <directory> | 결과 파일이 생성될 디렉터리를 지정한다. |
-level | 로그 레벨을 지정한다. |
-verbose | Verbose 메시지를 출력한다. |
예제
java2wsdl는 JEUS_HOME/bin/ 디렉터리에 위치한 일반적인 스크립트 파일이다.
java2wsdl 툴을 실행하는 예는 다음과 같다.
$ java2wsdl -classpath build/classes -d build/web/WEB-INF service-config.xml
위의 명령어는 "service-config.xml" 설정 파일과 "build/classes" 디렉터리의 클래스들을 통해 "build/web/WEB-INF" 디렉터리에 WSDL 문서 및 JAX-RPC 매핑 파일을 생성한다.
wsdl2java은 JAX-RPC 웹 서비스를 위한 툴로 WSDL 파일로부터 다음의 파일을 생성한다.
클라이언트의 웹 서비스 Stub Java 소스 코드들
서버의 웹 서비스 인터페이스 Java 소스 코드들
다음은 툴 사용법, 파라미터 및 예제에 대한 설명이다.
사용법
Usage: wsdl2java mode [options] wsdlURI where mode include: -gen:client generate all client artifacts -gen:server generate all server artifacts -gen same as -gen:client -import:client generate client JSR-109 portable artifacts only -import:server generate server JSR-109 portable artifacts only -import same as -import:client where [options] include: * destination directory -d <directory> specify where to put output files -cd <directory> specify where to put compiled class files If not specifed, the compile class files will be put in where '-d' specifies * WSDL and Java mapping -inputmapping <filename> specify the input JSR-109 JAX-RPC mapping file (used for generating Java artifacts) -package <package_name> specify the java package name to which all namespaceURI in the WSDL map -ns2pkg NS=PKG specify the namespaceURI and java package name mapping (NS : namespaceURI, PKG : java package name) This option can be used serveral times * output file -outputmapping <filename> specify the output JSR-109 JAX-RPc mapping file for the input WSDL This option can not be used with '-inputmapping' -compile compile generated Java source files ('tools.jar' must be in the classpath) -nokeepsrc delete generated java source files * artifact generation options -nowrapped disable wrapped mode detection for the WSDL -datahandleronly force javax.activation.DataHandler for MIME types -nodatabinding force javax.xml.soap.SOAPElement for all WSDL parts -soapver <VER> specify SOAP version used in stub/tie class. VER : '11' for SOAP 1.1, '12' for SOAP 1.2 -resolvedir directory specify directory where to be put local copies of include/import schemas and import WSDL * other options -username username to access the WSDL-URI -password password to access the WSDL-URI * verbose options -level <LEVEL> specify log level. LEVEL : SEVERE, WARNING, INFO, FINE, FINER, FINEST -verbose same as -level FINE
파라미터
파라미터 | 설명 |
---|---|
-gen:client | 클라이언트 측 Java 클래스를 생성한다. |
-gen:server | 서버 측 Java 클래스를 생성한다. |
-gen | -gen:client와 동일하다. |
-import:client | 클라이언트 측 Portable Artifact를 생성한다. |
-import:server | 서버 측 Portable Artifact를 생성한다. |
-import | -import:client와 동일하다. |
-d <directory> | 결과 파일이 생성될 디렉터리를 지정한다. |
-cd <directory> | 컴파일된 클래스 파일이 생성될 디렉터리를 지정한다. |
-inputmapping <filename> | Java 클래스를 생성하기 위하여 사용되는 입력 JAX-RPC 매핑 파일을 지정한다. |
-package <package_name> | WSDL의 모든 Namespace URI에 대한 Java 패키지 이름을 지정한다. |
-ns2pkg NS=PKG | Namespace URI에 대한 Java 패키지 이름을 지정한다.
|
-outputmapping <filename> | 입력 WSDL에 대한 출력 JAX-RPC 매핑 파일을 지정한다. |
-compile | 생성된 Java 파일을 컴파일한다. |
-nokeepsrc | 생성된 Java 소스 파일을 유지하지 않고 삭제한다. |
-nowrapped | WSDL에 대한 wrapped 모드 탐지를 사용할 수 없게 한다. |
-datahandleronly | MIME 타입에 대하여 javax.activation.DataHandler를 적용하게 한다. |
-nodatabinding | 모든 WSDL massage part에 대하여 javax.xml.soap.SOAPElement를 적용하게 한다. |
-soapver <VER> | stub/tie 클래스에서 사용되는 SOAP 버전을 지정한다.
|
-resolvedir <directory> | 원격의 WSDL 파일(스키마 파일 포함)을 접근 가능한 저장소에 저장하고자 할 때 사용한다. |
-username | WSDL-URI에 접근하기 위한 사용자명이다. |
-password | WSDL-URI에 접근하기 위한 패스워드이다. |
-level <LEVEL> | 로그 레벨을 지정한다. |
-verbose | 로그를 화면에 출력한다. |
예제
wsdl2java는 JEUS_HOME/bin/ 디렉터리에 위치한 일반적인 스크립트 파일이다.
wsdl2java 툴을 실행하는 예는 다음과 같다.
$ wsdl2java -gen:client -d build/classes
-outputmapping build/classes/web/WEB-INF/jaxrpcmapping.xml
-compile http://localhost:8088/AddNumbers/addnumbers?wsdl
위의 명령어는 원격의 "http://localhost:8088/AddNumbers/addnumbers?wsdl" WSDL 문서를 통해 웹 서비스 클라이언트를 위한 Stub 및 서비스 인터페이스들을 생성한다.
여기에서 Stub 및 서비스 인터페이스들은 "build/classes" 디렉터리에 생성되며 JAX-RPC 매핑 파일은 "build/classes/web/WEB-INF"에 생성된다. [-compile] 옵션으로 생성되는 Stub 및 서비스 인터페이스들은 컴파일이 된다.
WSDL은 추상적인 인터페이스와 임의의 네트워크 서비스의 프로토콜 바인딩들을 제공함으로써 UDDI 표준을 보완할 수 있다. JEUS UDDI WSDL Publishing은 WSDL2UDDI을 제공한다. wsdl2uddi 툴은 웹 서비스의 WSDL 파일로부터 UDDI에 Publish할 수 있다.
다음은 툴 사용법, 파라미터 및 예제에 대한 설명이다.
사용법
Usage: wsdl2uddi UDDIVersion WSDLURI [wsdl-options] -uddiInquiry <UDDIInquiryURI> -uddiPublish <UDDIPublish> -uddiUsername <UDDIUsername> -uddiPassword <UDDIPassword> [options] * wsdl-options -wsdlUsername username to access the WSDL-URI -wsdlPassword password to access the WSDL-URI * options -level <LEVEL> specify log level. LEVEL : SEVERE, WARNING, INFO, FINE, FINER,FINEST -verbose same as -level FINE
파라미터
파라미터 | 설명 |
---|---|
UDDIVersion | UDDI의 버전을 설정한다. 입력값은 v2 또는 v3이다. |
WSDLURI | 실제 WSDL이 존재하는 곳의 URI 값이다. |
-uddiInquiry <UDDIInquiryURI> | 실제 UDDI의 Inquiry URI 값을 지정한다. |
-uddiPublish <UDDIPublish> | 실제 UDDI의 publish URI 값을 지정한다. |
-uddiUsername <UDDIUsername> | UDDI에 접근할 때 필요한 사용자명을 설정한다. |
-uddiPassword <UDDIPassword> | UDDI에 접근할 때 필요한 패스워드를 설정한다. |
-wsdlUsername | WSDL URL에 접근할 때 필요한 사용자명을 설정한다. |
-wsdlPassword | WSDL URL에 접근할 때 필요한 패스워드를 설정한다. |
-level <LEVEL> | 로그 레벨을 지정할 경우 사용한다. |
-verbose | 로그 레벨 'FINE'과 같다. |
예제
wsdl2uddi는 JEUS_HOME/bin/ 디렉터리에 위치한 일반적인 스크립트 파일이다.
wsdl2uddi 툴을 실행하는 예는 다음과 같다.
$ wsdl2uddi v3 http://localhost:8088/AddNumbers/addnumbers?wsdl
-uddiInquiry http://localhost:8088/uddi/inquiry
-uddiPublish http://localhost:8088/uddi/publish
-uddiUsername jeus
-uddiPassword jeus
-verbose
위의 명령어는 원격의 "http://localhost:8088/AddNumbers/addnumbers?wsdl" WSDL 문서를 통해 UDDI에 Publish한다. 여기에서 UDDI의 Inquiry 및 Publish URI와 사용자명, 패스워드를 각각 지정해줄 수 있다.
xjc 툴은 XML 스키마 파일을 Java 프로그래밍 언어로 된 JAXB Content 클래스들로 변환한다.
다음은 툴 사용법, 파라미터 및 예제에 대한 설명이다.
사용법
Usage: xjc [-options ...] <schema file/URL/dir/jar> ... [-b <bindinfo>] ...
If dir is specified, all schema files in it will be compiled.
If jar is specified, /META-INF/sun-jaxb.episode binding file will be compiled.
Options:
-nv : do not perform strict validation of the input schema(s)
-extension : allow vendor extensions - do not strictly follow the
Compatibility Rules and App E.2 from the JAXB Spec
-b <file/dir> : specify external bindings files
(each <file> must have its own -b)
If a directory is given, **/*.xjb is searched
-d <dir> : generated files will go into this directory
-p <pkg> : specifies the target package
-httpproxy <proxy> : set HTTP/HTTPS proxy. Format is
[user[:password]@]proxyHost:proxyPort
-httpproxyfile <f> : Works like -httpproxy but takes the argument in a file
to protect password
-classpath <arg> : specify where to find user class files
-catalog <file> : specify catalog files to resolve external entity
references support TR9401, XCatalog,
and OASIS XML Catalog format.
-readOnly : generated files will be in read-only mode
-npa : suppress generation of package level annotations
(**/package-info.java)
-no-header : suppress generation of a file header with timestamp
-target 2.0 : behave like XJC 2.0 and generate code that doesnt use any
2.1 features.
-xmlschema : treat input as W3C XML Schema (default)
-relaxng : treat input as RELAX NG (experimental,unsupported)
-relaxng-compact : treat input as RELAX NG compact syntax
(experimental,unsupported)
-dtd : treat input as XML DTD (experimental,unsupported)
-wsdl : treat input as WSDL and compile schemas inside it
(experimental,unsupported)
-verbose : be extra verbose
-quiet : suppress compiler output
-help : display this help message
-version : display version information
Extensions:
-Xlocator : enable source location support for generated code
-Xsync-methods : generate accessor methods with the 'synchronized' keyword
-mark-generated : mark the generated code as @javax.annotation.Generated
-episode <FILE> : generate the episode file for separate compilation
파라미터
파라미터 | 설명 |
---|---|
-nv | 스키마 유효성 검사를 할지 여부를 설정한다. (true | false) |
-extension | XJC 바인딩 컴파일러는 확장 모드로 실행할지 여부를 설정한다. (true | false, 기본값: false) |
-b <file/dir> | 처리할 하나 이상의 외부 바인딩 파일들을 설정한다. |
-d <dir> | XJC 바인딩 컴파일러는 기본값으로 현재 디렉터리에 Java Content 클래스들을 생성한다. 이 옵션을 사용하면 다른 디렉터리에 클래스들을 생성할 수 있다. |
-p <pkg> | 이곳에 명시한 Target 패키지 이름은 어떤 다른 Customization도 Overwrite한다. |
-httpproxy <proxy> | HTTP/HTTPS 프록시를 설정한다. |
-httpproxyfile <f> | -httpproxy 옵션과 유사하지만 암호를 보호하기 위해 파일에서 인수를 사용한다. |
-classpath <arg> | <jxb:javaType>와 <xjc:superClass> Customization에 등록된 클라이언트 애플리케이션 클래스들을 찾을 곳을 설정한다. |
-catalog <file> | TR9401, XCatalog, OASIS XML Catalog 포맷에 관한 외부 카탈로그 파일을 설정한다. |
-readOnly | true일 경우에 Java 소스 파일들은 읽기 가능 모드이다. (기본값: false) |
-npa | package-info.java라는 파일에 패키지 수준의 Annotation 생성을 요약한다. |
-no-header | 시간 소인이 있는 파일 헤더 생성을 억제하도록 지정한다. |
-target (2.0|2.1) | XJC 2.0 또는 2.1과 같이 행동하고, 2.2 기능을 사용하지 않는 코드를 생성한다. |
-xmlschema | 입력은 W3C XML 스키마로 처리하도록 지정한다. -relaxng, -relaxng-compact, -dtd, -wsdl와 -xmlschema의 5개 중에 -xmlschema이 기본값이다. |
-relaxng | 입력을 RELAX NG로 처리하도록 지정한다. |
-relaxng-compact | 입력을 RELAX NG의 간단한 구문으로 처리하도록 지정한다. |
-dtd | XML DTD 파일을 컴파일러의 입력 스키마로 사용한다. |
-wsdl | WSDL 파일을 입력하여 그 안에 사용되고 있는 스키마 파일들을 컴파일한다. |
-verbose | Verbose 메시지를 출력한다. |
-quiet | 진행 정보 또는 경고 메시지와 같은 컴파일러 Output 메시지들을 보여주지 않는다. |
-help | 컴파일러 사용법을 출력한다. |
-version | 컴파일러 버전을 출력한다. |
예제
xjc는 JEUS_HOME/bin/ 디렉터리에 위치한 일반적인 스크립트 파일이다.
xjc 툴을 실행하는 예는 다음과 같다.
$ xjc -d build/classes -p com.tmaxsoft src/conf/ts.xsd
위의 명령어는 ts.xsd 스키마 파일로부터 패키지명이 "com.tmaxsoft"인 컴파일된 Java 클래스 파일들을 "build/classes"에 생성한다.
schemagen 툴은 Java 클래스들에 나타나는 각각의 Namespace에 대해 하나의 스키마 파일을 생성한다.
다음은 툴 사용법, 파라미터 및 예제에 대한 설명이다.
사용법
Usage: schemagen [-options ...] <java files> Options: -d <path> : specify where to place processor and javac generated class files -cp <path> : specify where to find user specified files -classpath <path> : specify where to find user specified files -encoding <encoding> : specify encoding to be used for apt/javac invocation -episode <file> : generate episode file for separate compilation -version : display version information -fullversion : display full version information -help : display this usage message
파라미터
파라미터 | 설명 |
---|---|
-d <path> | 프로세서와 클래스 파일들의 위치를 설정한다. |
-cp <path> | 사용자가 명시하는 파일들을 찾을 곳을 설정한다. |
-classpath <path> | -cp <path>와 동일하다. |
-encoding <encoding> | apt/javac 호출에서 사용되는 인코딩을 설정한다. |
-episode <file> | 분리되어 컴파일을 진행하기 위한 episode 파일들을 생성한다. |
-version | 버전 정보를 출력한다. |
-fullversion | 전체 버전 정보를 출력한다. |
-help | 사용법을 출력한다. |
본 절에서는 tcpmon 툴에 대해 설명한다.
tcpmon 프로그램은 송수신하는 TCP 패킷을 조회하는 프로그램으로 HTTP의 SOAP 메시지를 조회할 때 사용한다.
tcpmon은 다음의 2가지 모드로 동작한다.
모드 | 설명 |
---|---|
Listener | tcpmon이 listen port로 요청을 받아서 지정된 target host와 target port로 받은 요청을 다시 전송하고 응답을 받아서 원래 요청한 커넥션으로 응답을 전송한다. |
Proxy | tcpmon을 일반적인 HTTP Proxy처럼 동작하게 한다. |
다음과 같이 tcpmon을 실행하면 [그림 4.1] 화면이 나타난다.
$ tcpmon
Listener 모드를 사용하기 위해서 다음과 같은 시나리오를 가정한다.
서버(A)는 8000번 Port로 SOAP 요청을 받아들인다.
클라이언트(B)의 웹 서비스 클라이언트가 송수신하는 SOAP 메시지를 모니터링하고자 한다.
이 경우 웹 서비스 클라이언트 프로그램에서는 tcpmon을 사용하여 SOAP 메시지를 모니터링할 수 있다.
클라이언트(B)에서 tcpmon을 실행한 뒤 다음과 같이 설정한다.
[Admin] 탭에서 'Listen Port'는 '9000'으로 입력하고 'Act as a'는 'Listener'를 선택한다. 'Listener'의 하위 항목인 'Target Hostname'는 'A', 'Target Port'는 '8000'으로 입력한다. 각각의 값을 입력한 후 [Add] 버튼을 클릭한다.
다음과 같이 [Port 9000] 탭이 생성된다. 이 탭을 클릭하면 다음과 같은 화면이 나타난다.
화면의 체크박스와 각 버튼에 대한 설명이다.
항목 | 설명 |
---|---|
XML Format | XML을 보기 좋은 형태로 정렬하여 TCPMON 화면에 출력한다. |
[Save] 버튼 | 현재 SOAP 메시지를 저장한다. |
[Resend] 버튼 | 현재 Request SOAP 메시지를 재전송한다. |
[Switch Layout] 버튼 | 메시지 출력 화면의 가로/세로 분할 모드를 바꾼다. |
이렇게 설정한 후 클라이언트 프로그램에서 서버(A)의 8000번에 접속하는 대신 클라이언트(B)의 9000번에 접속하도록 한다. 그 후 클라이언트 프로그램을 실행하면 tcpmon이 9000번으로 들어온 요청을 받아서 서버(A)의 8000번 Port로 전송 후 응답을 받아서 클라이언트가 tcpmon에 연결한 커넥션의 응답으로 돌려주고 송수신한 메시지를 tcpmon에 출력한다.
tcpmon을 Listener 모드로 사용하는 경우 웹 서비스의 end-point 주소를 바꾸기 위해서 클라이언트 프로그램이나 클라이언트의 설정을 변경할 필요가 있다.
J2SE JAX-WS 웹 서비스 클라이언트의 경우
접속하려는 웹 서비스의 end-point 주소를 바꾸기 위해서는 다음 예와 같이 코드를 수정한다.
(javax.xml.ws.BindingProvider)port).getRequestContext().put( javax.xml.ws.BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "http://localhost:9000/ws/AddNumbersService");
port
서비스 end-point 인터페이스에 대한 JAX-WS BindingProvider 객체이다.
javax.xml.ws.BindingProvider.ENDPOINT_ADDRESS_PROPERTY
end-point 주소를 지정하기 위한 JAX-WS 스펙에서 정의한 표준 속성이다.
J2SE JAX-RPC 웹 서비스 클라이언트의 경우
접속하려는 웹 서비스의 end-point 주소를 바꾸기 위해서는 다음 예와 같이 코드를 수정한다.
((javax.xml.rpc.Stub)port)._setProperty( javax.xml.rpc.Stub.ENDPOINT_ADDRESS_PROPERTY, “http://localhost:9000/ws/AddressBookService”);
port
서비스 end-point 인터페이스에 대한 JAX-RPC Stub 객체이다.
javax.xml.rpc.Stub.ENDPOINT_ADDRESS_PROPERTY
end-point 주소를 지정하기 위한 JAX-RPC 스펙에서 정의한 표준 속성이다.
J2EE 웹 서비스 클라이언트의 경우
코드 수정 없이 JEUS 설정 파일(jeus-web-dd.xml 또는 jeus-ejb-dd.xml)을 <service-client>에 <stub-property>를 추가하여 위의 속성을 적용할 수 있다.
<service-client> <port-info> <stub-property> <name>javax.xml.rpc.service.endpoint.address</name> <value> http://localhost:9000/ws/AddressBookService </value> </stub-property> </port-info> </service-client>
Proxy 모드는 tcpmon을 일반적인 HTTP Proxy처럼 동작하게 한다. Proxy 모드는 [Admin] 탭에서 'Listen Port'를 입력하고 'Act as a'의 Proxy를 선택하고 [Add] 버튼을 클릭해서 사용한다.
Proxy 모드의 경우 애플리케이션을 수정하지 않고 애플리케이션을 실행할 때 다음의 옵션을 설정하여 tcpmon을 사용할 수 있다.
옵션 | 설명 |
---|---|
-Dhttp.proxyHost | tcpmon이 수행되고 있는 Host 이름 또는 IP 주소를 입력한다. |
-Dhttp.proxyPort | tcpmon의 Listen Port를 입력한다. |
클라이언트 애플리케이션이 com.acme.AddressBookClient 클래스인 경우 다음과 같이 옵션을 설정하여 java를 실행한다.
java –Dhttp.proxyHost=B –Dhttp.proxyPort=9000 com.acme.AddressBookClient