제4장 콘솔 툴

내용 목차

4.1. 개요
4.2. jeusadmin
4.2.1. 기동 및 종료 명령어
4.2.2. Local 명령어
4.2.3. Server Management 관련 명령어
4.2.4. Domain Configuration 관련 명령어
4.2.5. Thread Management 관련 명령어
4.2.6. Application 관련 명령어
4.2.7. EJB 엔진 관련 명령어
4.2.8. 웹 엔진 관련 명령어
4.2.9. 세션 관련 명령어
4.2.10. JMS 엔진 관련 명령어
4.2.11. 데이터소스 관련 명령어
4.2.12. Connection Pool 제어 및 모니터링 명령어
4.2.13. 트랜잭션 관련 명령어
4.2.14. 보안 관련 명령어
4.2.15. OSGi 관련 명령어
4.2.16. JSON을 사용한 명령어 실행
4.2.17. Script 모드 사용법 및 Script 작성법
4.3. appcompiler
4.4. ejbddinit
4.5. encryption
4.6. java2wsdl
4.7. jeusddupgrade
4.8. schemagen
4.9. tcpmon
4.9.1. 실행
4.9.2. Listener 모드의 사용
4.9.3. Proxy 모드의 사용
4.9.4. 기타 기능
4.10. webddgen
4.11. wsgen
4.12. wsimport
4.13. wsdl2java
4.14. wsdl2uddi
4.15. xjc

본 장에서는 JEUS에서 사용하는 콘솔 툴의 종류와 사용법에 대해 설명한다.

다음은 JEUS에서 사용하는 콘솔 툴의 목록이다.

  • Admin 툴

    콘솔 툴설명
    jeusadmin JEUS를 직접 관리하기 위해 사용하는 콘솔 툴이다.
  • 기타 툴

    콘솔 툴설명
    appcompiler 애플리케이션의 EJB 인터페이스 Impl, Skeleton, Stub 클래스, JSP를 컴파일하여 서블릿 클래스, 웹 서비스의 Endpoint 클래스 등을 생성한다.
    ejbddinit EJB 모듈의 DD 파일(jeus-ejb-dd.xml)을 ejb-jar.xml 정보와 사전에 생성된 프로퍼티 파일을 이용하여 생성할 수 있다.
    encryption 암호화할 문자열을 암호화하거나 그 반대로 복호화하는 기능을 제공한다.
    java2wsdl Java 클래스로부터 WSDL 파일과 JAX-RPC 매핑 파일을 생성한다.
    jeusddupgrade이전 버전의 애플리케이션 안의 JEUS DD 파일(jeus-ejb-dd.xml, jeus-web-dd.xml, jeus-application-dd.xml)을 현재 버전에 맞게 업그레이드할 수 있다.
    schemagen Java 클래스들에 나타나는 각각의 Namespace에 대해 하나의 스키마 파일을 생성한다.
    tcpmon 송수신하는 TCP 패킷을 조회한다. tcpmon은 HTTP의 SOAP 메시지를 조회할 수 있다.
    webddgenWEB 모듈의 DD 파일(jeus-web-dd.xml)을 생성하거나 업데이트할 수 있다.
    wsgen JAX-WS 웹 서비스를 위한 툴로 Java 클래스로부터 WSDL 파일과 JAX-RPC 매핑 파일을 생성한다. 또한 웹 서비스 정책 설정 파일을 생성할 수 있다.
    wsimport WSDL 파일로부터 클라이언트 측 Java Stub 소스 파일들과 서버 측 웹 서비스 인터페이스 Java 소스 파일을 생성한다. 또한 웹 서비스 정책 설정 파일을 생성할 수 있다.
    wsdl2java WSDL 파일로부터 클라이언트 측 Java Stub 소스 파일과 서버 측 웹 서비스 인터페이스 Java 소스 파일을 생성한다.
    wsdl2uddi 웹 서비스의 WSDL 파일로부터 UDDI에 Publish할 수 있다.
    xjcXML 스키마 파일을 Java 프로그래밍 언어로 된 JAXB Content 클래스들로 변환한다.

본 절에서는 JEUS의 관리 툴인 jeusadmin의 명령어와 그 사용법에 대해서 설명한다.

jeusadmin은 JEUS를 직접 관리하기 위해 사용하는 콘솔 툴이다. 이 툴을 사용하면 JEUS 서버의 기동과 종료와 같은 기본적인 관리 작업을 할 수 있으며 애플리케이션의 deploy/undeploy와 logger 레벨 변경 작업, JMX MBean의 목록 조회 등 여러 가지 주요 작업을 할 수 있다.

jeusadmin에서 사용하는 명령어에 대한 기본 문법은 다음과 같다.

COMMAND [COMMAND_OPTIONS] 
        [GLOBAL_OPTIONS] 
        (>|>>) FILENAME
  • COMMAND

    명령어 이름 또는 alias를 설정한다.

  • COMMAND_OPTIONS

    해당 명령어에 대한 옵션을 설정한다.

    옵션으로 명령어를 주거나 옵션이 공백을 포함할 경우 큰따옴표(" ")로 COMMAND_OPTIONS)를 묶는 것을 원칙으로 한다.

    다만, 큰따옴표(" ") 묶음을 두 번 이상 사용할 경우에는 사용하는 운영체제별로 이스케이프 문자를 사용하도록 한다.

    운영체제큰따옴표에 대한 이스케이프 문자
    Windows OS큰따옴표(" ")
    Linux OS역슬래시( \ )

    다음은 이에 대한 명령어 예시이다.

    [Windows OS] jeusadmin -u jeus -p 11111111 -host localhost:9116 "help -g ""Data Source and Connection Pool"""
    [ Linux OS ] jeusadmin -u jeus -p 11111111 -host localhost:9116 "help -g \"Data Source and Connection Pool\""
    
  • GLOBAL_OPTIONS

    모든 명령어에 대해 적용할 수 있는 공용 옵션을 설정한다.

    옵션설명
    -verbose오류가 발생하는 경우 Stack Trace를 출력한다.
    -repeat <count>명령어를 repeat count 횟수만큼 반복 실행한다.
    -interval <seconds>

    반복해서 실행하는 경우 실행 간격을 초 단위로 지정한다.

    -repeat 옵션을 주지 않고 사용할 경우 오류가 발생한다.

  • (>|>>) FILENAME

    명령어 실행 결과를 파일에 저장할 때 사용한다. 저장할 파일 이름은 FILENAME으로 지정한다.

    다음과 같이 사용할 수 있다.

    offline>help > result.txt
    또는
    offline>help >> result.txt

jeusadmin을 실행하고 종료하는 명령어는 다음과 같다.

명령어설명
jeusadminjeusadmin을 실행한다.
exit관리 작업을 완료하고 jeusadmin을 종료할 때 사용하는 명령어이다.

jeusadmin을 실행한다. 이 파일은 JEUS_HOME/bin에 위치한다.

  • 사용법

    jeusadmin [-u,--username <user-name>]
              [-p,--password <password>]
              [-f <file-name>]
              [-cachelogin]
              [-d,--domain <domain-name>]
              [-host <server-address>]
              [-port <server-port>]
              [-verbose]
              [-help]
              [<target-command>]
              [-version]
              [-fullversion]
              [-buildversion]
              [-licensedue]
              [-licenseinfo]
              [-debug]
              [-script (<script-file>|"<script-file> <args> ...")]
              [-i,--ignore]
  • 파라미터

    파라미터설명
    [-u, --username <user-name>]

    접속할 때 사용할 사용자 이름을 지정한다.

    옵션을 준 경우 실행하면서 서버에 접속을 시도한다.

    [-p, ---password <password>]

    접속할 때 사용할 비밀번호를 지정한다.

    옵션을 준 경우 실행하면서 서버에 접속을 시도한다.

    [-f <file-name>]접속할 때 사용할 사용자 이름과 비밀번호를 담은 파일을 지정한다.
    [-cachelogin]특정 도메인(또는 기본 도메인)에 접속할 때 사용했던 사용자 이름과 비밀번호를 기록한다.
    [-d, --domain <domain-name>]접속하고자하는 도메인의 이름 지정한다.
    [-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)이어야 한다.
    [-i,--ignore]Script 모드에서 JEUS 커맨드 예외 발생 시 스크립트를 중단하지 않고, 계속 스크립트를 실행할 수 있는 옵션이다. 이 옵션은 Script 모드에서만 사용가능하다.
  • 예제

    다음은 JEUS 사용자 이름은 'administrator', 비밀번호는 'jeus'로 가정한 jeusadmin 예제이다.

    • jeusadmin 실행

      다음은 jeusadmin을 실행하는 예제이다.

      JEUS_HOME/bin$jeusadmin
      JEUS 21 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 JEUS Master Server [adminServer] in the domain [domain1].
      JEUS 21 Administration Tool
      To view help, use the 'help' command.
      [MASTER]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 JEUS Master Server [adminServer] in the domain [domain1].
      JEUS 21 Administration Tool
      To view help, use the 'help' command.
      [MASTER]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" -Xmx128m -classpath "${BOOTSTRAP_CLASSPATH}" ${TOOL_OPTION}     
          -Djmx.remote.x.request.timeout=600000                                     
          -Djeus.home="${JEUS_HOME}"                                                
          -Djeus.tool.console.useJLine="false"                                      
          -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}

다음은 서버 접속, 도움말, 히스토리 기능 등을 제공하는 기본 명령어들이다.

명령어설명
connectJEUS Master Server나 Managed Server에 접속을 시도한다.
disconnect접속을 끊고 Off-line 상태로 돌아간다.
help명령어에 대한 도움말을 출력한다.
history입력했던 명령어들에 대한 기록을 출력한다.
p입력했던 명령어들 중 하나를 골라 실행한다. 옵션을 주지 않고 실행하는 경우 직전에 실행했던 명령어를 다시 실행한다.
remove-login-cachecachelogin 기능을 통해 저장된 특정 사용자 로그인 정보를 캐시 파일에서 제거한다.
set-server-optionserver 옵션에 대한 기본값을 설정한다.
set-servers-optionservers 옵션에 대한 기본값을 설정한다.
start-record입력하는 명령어들을 스크립트 형태로 저장하는 레코딩 기능을 시작한다.
stop-record레코딩 기능을 중지한다.
unset-server-optionset-server-option으로 설정한 기본값을 삭제한다.
unset-servers-optionset-servers-option으로 설정한 기본값을 삭제한다.
verbose명령어를 수행할 때 상세 출력 모드를 켜거나 끈다.

서버에 접속을 시도한다. 사용자 이름과 비밀번호를 입력해 주어야한다. host를 입력받지 않으면 localhost로 접속을 시도한다.

  • alias

    login

  • 사용법

    connect [-u,--username <user-name>]
            [-p,--password <password>]
            [-f <file-name>]
            [-cachelogin]
            [-h,--host <server-address>]
            [-port <server port>]
            [-d,--domain <domain name>]
  • 파라미터

    파라미터설명
    [-u, --username <user-name>]접속할 때 사용할 사용자 이름을 지정한다.
    [-p, --password <password>]접속할 때 사용할 비밀번호를 지정한다.
    [-f <file-name>]접속할 때 사용할 사용자 이름과 비밀번호를 저장한 파일을 지정한다.
    [-cachelogin]접속할 때 사용한 사용자 이름과 비밀번호를 파일에 기록한다.
    [-h, --host <server-address>]접속할 서버의 주소를 지정한다. 아무 것도 입력하지 않으면 localhost로 접속을 시도한다.
    [-port <server-port>접속할 서버의 포트를 지정한다. 별도로 지정하지 않는 경우 물어보지 않고 기본값을 사용한다. (기본값: 9736)
    [-d, --domain <domain name>도메인 이름을 지정한다. security.key 파일을 찾기 위해 사용된다.
  • 예제

    • [-u] 옵션과 [-p] 옵션을 주고, [-h] 옵션으로 접속할 호스트 정보를 입력하여 명령을 실행한다.

      offline>connect -u administrator -p jeus -h 127.0.0.1
      Attempting to connect to 127.0.0.1:9736.
      The connection has been established to JEUS Master Server [adminServer] in the domain [domain1].
      [MASTER]domain1.adminServer>
    • [-h] 옵션을 넣지 않은 경우 localhost로 접속하게 된다.

      offline>connect -u administrator -p jeus
      Attempting to connect to 127.0.0.1:9736.
      The connection has been established to JEUS Master Server [adminServer] in the domain [domain1].
      [MASTER]domain1.adminServer>
  • 참고

    본 명령어는 서버에 접속하지 않은 상태에서도 사용할 수 있다.

명령어들에 대한 도움말을 출력한다. 별도의 옵션을 주지 않고 실행할 경우 도움말과 함께 현재 사용할 수 있는 명령어 목록, 명령어 기본 문법에 대한 설명을 조회한다.

  • 사용법

    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                      
      
      [ Domain Configuration]_____________________________________________________
        apply-configuration-plan            create-domain                         
        delete-domain                       list-domains                          
        pack-domain                         unpack-domain                         
      
      [ Application]______________________________________________________________
        install-application                 install-deployment-plan               
        redeploy-application                
      
      [ Library]__________________________________________________________________
        install-library                     
      
      [ Web]______________________________________________________________________
        precompile-jsp                      
      
      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.
      
        ......
      
      
      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.
      
      To show detailed information for a command, use 'help [COMMAND_NAME]'.
      ex) help connect
      offline>
    • [<command-name>] 옵션을 사용해 특정 명령어에 대한 도움말을 조회하는 경우

      다음은 add-server 명령어 설명을 출력하는 예제이다.

      [MASTER]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>]
              [-http,--httpport <http-port>]
              [-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
      
          [-http,--httpport <http-port>]
              http listen port 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 -u administrator -p jeus
    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
    Attempting to connect to 127.0.0.1:9736.
    The connection has been established to JEUS Master Server [adminServer] in the domain [domain1].
    [MASTER]domain1.adminServer>! 2
    disconnect
    The connection has been closed.
    offline>
    
  • 참고

    본 명령어는 서버에 접속하지 않은 상태에서도 사용할 수 있다.

-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 명령어가 동작함을 확인할 수 있다.

    [MASTER]domain1.adminServer>jndi-info
    The following options are missing: server
    
    [MASTER]domain1.adminServer>set-server-option
    The default server name is not set.
    
    [MASTER]domain1.adminServer>set-server-option adminServer
    The default server name has been set: adminServer.
    
    [MASTER]domain1.adminServer>set-server-option
    The current default server name: adminServer.
    
    [MASTER]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                        |               |
        ......
    
    [MASTER]domain1.adminServer>
  • 참고

    본 명령어는 서버에 접속하지 않은 상태에서도 사용할 수 있다.

-servers 옵션에 대한 기본값을 설정한다. 옵션을 주지 않고 실행한 경우 현재 설정되어 있는 기본값을 출력한다.

  • alias

    setservers

  • 사용법

    set-servers-option [<server-list>]
  • 파라미터

    파라미터설명
    [<server-list>]servers 옵션에 대해 기본값으로 사용할 서버 이름들을 지정한다. 각 서버 이름은 콤마(,)로 구분한다.
  • 예제

    set-servers-option 명령어를 사용하여 deploy할 서버 목록을 지정한 후 deploy 명령어를 통해 지정한 서버 애플리케이션을 배포하는 예제이다.

    [MASTER]domain1.adminServer>set-servers-option
    The default server list is not set.
    
    [MASTER]domain1.adminServer>set-servers-option adminServer,server1
    The default server list has been set: adminServer,server1.
    
    [MASTER]domain1.adminServer>set-servers-option
    The current default server list: adminServer,server1.
    
    [MASTER]domain1.adminServer>deploy sample
    deploy the application for the application [sample] succeeded.
    
    [MASTER]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      |
    +----------+-----------+---------+-------------+----------+--------------------+
    ================================================================================ 
  • 참고

    본 명령어는 서버에 접속하지 않은 상태에서도 사용할 수 있다.

다음은 Server Management 관련 명령어의 목록이다.

명령어설명
add-custom-resource-to-servers동적으로 서버에 custom resource를 추가한다.
add-data-sources-to-server동적으로 서버에 데이터소스들을 등록한다.
add-external-resource-to-servers동적으로 서버에 external resource를 추가한다.
add-invocation특정 Lifecycle Invocation에 Invocation을 추가한다.
add-invocation-library특정 Lifecycle Invocation에 Library Ref를 추가한다.
add-jvm-option특정 서버에 JVM 설정을 추가한다.
add-lifecycle-invocation특정 서버 혹은 클러스터에 Lifecycle Invocation을 추가한다.
add-listener특정 서버에 리스너를 추가한다.
add-log-handler동적으로 특정 서버의 특정 로거에 핸들러를 추가한다.
add-logger동적으로 특정 서버에 로거를 추가한다.
config-listener-ssl리스너의 SSL 관련 내용을 설정한다.
disable-engine-init-on-boot서버의 내부 엔진(Servlet, EJB, JMS)의 초기화 시점을 애플리케이션 deploy할 때로 설정한다.
disable-engines서버의 내부 엔진(Servlet, EJB, JMS)을 선택적으로 사용하지 않도록 설정한다.
dump특정 서버 또는 특정 클러스터에 속한 서버들의 Thread Dump를 찍는다.
enable-engine-init-on-boot서버의 내부 엔진(Servlet, EJB, JMS)의 초기화 시점을 서버 부팅시로 설정한다.
enable-engines서버의 내부 엔진(Servlet, EJB, JMS)을 선택적으로 사용하도록 설정한다.
jndi-info특정 서버의 JNDI 컨텍스트에 바인드되어 있는 객체의 바인딩(이름) 목록을 확인한다.
lifecycle-invocation-info특정 Lifecycle Invocation의 정보를 조회한다.
list-jvm-options특정 서버의 JVM 설정을 조회한다.
list-lifecycle-invocations특정 서버 혹은 클러스터의 Lifecycle Invocation을 조회한다.
list-log-handlers특정 서버의 특정 로거에 등록된 핸들러들의 정보를 조회한다.
list-loggers특정 서버에 등록된 로거들의 정보를 조회한다.
list-server-listeners특정 서버에 있는 리스너들의 설정을 조회한다.
local-shutdown현재 접속해 있는 서버를 종료한다.
log-level특정 서버의 특정 로거와 해당 로거에 등록된 핸들러들의 레벨을 확인한다.
mbean-info특정 서버에 등록된 MBean들의 리스트를 조회한다.
memory-info특정 서버 또는 특정 클러스터에 속한 서버들의 메모리 정보를 확인한다.
modify-invocation특정 Lifecycle Invocation의 Invocation을 수정한다.
modify-invocation-library특정 Lifecycle Invocation의 Library Ref를 수정한다.
modify-jvm-option특정 서버의 JVM 설정을 수정한다.
modify-lifecycle-invocation특정 서버 혹은 클러스터의 Lifecycle Invocation을 수정한다.
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-invocation특정 Lifecycle Invocation의 Invocation을 제거한다.
remove-invocation-library특정 Lifecycle Invocation의 Library Ref를 제거한다.
remove-jvm-option특정 서버의 JVM 설정을 제거한다.
remove-lifecycle-invocation특정 서버 혹은 클러스터의 Lifecycle Invocation을 제거한다.
remove-listener특정 서버에 있는 리스너를 삭제한다.
remove-log-handler동적으로 특정 서버의 특정 로거에 등록된 특정 핸들러를 삭제한다.
remove-logger동적으로 특정 서버에 등록된 특정 로거를 삭제한다.
resume-server일시 정지된 특정 서버를 다시 서비스되도록 한다.
run-garbage-collection특정 서버 또는 특정 클러스터에 속한 서버들에 full gc를 수행한다.
server-info서버들의 현재 상태를 확인한다.
server-log특정 서버의 로그를 command에서 확인한다.
show-current-scf-view현재 SCF View를 모니터링한다.
stop-cluster특정 클러스터에 속한 Managed Server들을 종료한다. 클러스터 내에 JEUS Master Server가 포함된 경우 JEUS Master Server는 대상에서 제외한다. JEUS Master Server-Managed Server 구조에서만 수행가능한 명령어이다.
stop-domain현재 도메인에 속한 Managed Server들을 종료한다. JEUS Master Server-Managed Server 구조에서만 수행가능한 명령어이다.
stop-server특정 Managed Server를 종료한다.
suspend-server서비스 중인 특정 서버를 일시 정지시킨다.
system-info특정 서버의 시스템 정보를 확인한다.

특정 Lifecycle Invocation에 Invocation을 추가한다.

  • alias

    addinvo, addinvocation

  • 사용법

    add-invocation <method>
                   -type <invocation-type>
                   [-params <method-params>]
                   [-args <invocation-argument>]
                   -class <class>
                   -s,--server <server> | -c,--cluster <cluster>
                   [-f,--forceLock]
                   [-detail]
  • 파라미터

    파라미터설명
    <method>추가할 Invocation의 메서드 이름이다.
    -type <invocation-type>

    Invocation의 타입(메서드 호출 시점)을 지정한다.

    다음 중 하나를 지정할 수 있다.

    • BOOT

    • BEFORE_DEPLOY

    • AFTER_DEPLOY

    • READY

    • BEFORE_UNDEPLOY

    • AFTER_UNDEPLOY

    타입에 대한 자세한 내용은 JEUS Server 안내서”의 “2.3.5. Lifecycle Invocation 설정”의 Invocation Type을 참고한다.

    [-params <method-params>]메서드 파라미터의 Fully Qualified Class Name을 지정한다. 매개 변수가 여럿 있을 경우 공백으로 구분한다. (설정값 예시: -params java.lang.String boolean)
    [-args <invocation-argument>]메서드를 호출할 때 사용하는 Argument를 지정한다. 인자가 여러 개 있을 경우 공백으로 구분한다. 만약 공백이 포함된 값을 인자로 해야할 경우 큰따옴표로 묶어 사용하면 된다. (설정값 예시: -args "tmaxsoft jeus" "hello world")
    -class <class>Invocation이 추가될 Lifecycle Invocation의 클래스 이름을 지정한다.
    -s,--server <server> | -c,--cluster <cluster>Lifecycle Invocation가 위치한 서버 혹은 클러스터의 이름을 지정한다.
    [-f,--forceLock]설정 변경을 강제로 진행하여 반영한다.
    [-detail]설정 변경 결과에 대한 상세한 정보가 출력된다.
  • 예제

    [MASTER]domain1.adminServer>add-invocation methodName -type BOOT -class invo.invoTestClass -s server1 -params java.lang.String boolean -args "invocation test" true
    Successfully performed the ADD operation for Invocation [methodName](Invocation ID = 0), 
    but all changes were non-dynamic. They will be applied after restarting.
    Check the results using "list-lifecycle-invocations or lifecycle-invocation-info".

특정 Lifecycle Invocation에 Library Ref를 추가한다.

  • alias

    addinvolib, addinvocationlibrary

  • 사용법

    add-invocation-library <library>
                           -specVer <version>
                           [-specMatch <true | false>]
                           -implVer <version>
                           [-implMatch <true | false>]
                           [-fail,--failOnError <true | false>]
                           -class <class>
                           -s,--server <server> | -c,--cluster <cluster>
                           [-f,--forceLock]
                           [-detail]
  • 파라미터

    파라미터설명
    <library>추가할 Library Ref의 라이브러리 이름이다.
    -specVer <version>

    추가할 라이브러리의 Specification Version을 지정한다.

    [-specMatch <true | false>]Specification Version이 정확히 일치해야 하는지 여부를 지정한다. (기본값: false)
    -implVer <version>추가할 라이브러리의 Implementation Version을 지정한다.
    [-implMatch <true | false>]Implementation Version이 정확히 일치해야 하는지 여부를 지정한다. (기본값: false)
    [-fail,--failOnError <true | false>]해당 Shared Library를 찾지 못할 경우 Deploy를 실패할지 여부를 설정한다. (기본값: false)
    -class <class>Library Ref가 추가될 Lifecycle Invocation의 클래스 이름을 지정한다.
    -s,--server <server> | -c,--cluster <cluster>Lifecycle Invocation가 위치한 서버 혹은 클러스터의 이름을 지정한다.
    [-f,--forceLock]설정 변경을 강제로 진행하여 반영한다.
    [-detail]설정 변경 결과에 대한 상세한 정보가 출력된다.
  • 예제

    [MASTER]domain1.adminServer>add-invocation-library libName -specVer 1 -implVer 1 -class invo.invoTestClass -s server1
    Successfully performed the ADD operation for Invocation Library [libName], but all changes were non-dynamic. 
    They will be applied after restarting.
    Check the results using "list-lifecycle-invocations or lifecycle-invocation-info".

특정 서버 혹은 클러스터에 Lifecycle Invocation을 추가한다.

  • alias

    addlifeinvo, addlifecycleinvocation

  • 사용법

    add-lifecycle-invocation <class>
                             -s,--server <server> | -c,--cluster <cluster>
                             [-m,--method <invocation-method>]
                             [-type <invocation-type>]
                             [-params <method-params>]
                             [-args <invocation-argument>]
                             [-f,--forceLock]
                             [-detail]
  • 파라미터

    파라미터설명
    <class>추가할 Lifecycle Invocation의 클래스 이름이다.
    -s,--server <server> | -c,--cluster <cluster>Lifecycle Invocation을 추가할 서버 혹은 클러스터의 이름을 지정한다.
    [-m,--method <invocation-method>]

    [Invocation 옵션] Lifecycle Invocation을 추가하면서 Invocation을 함께 추가하고 싶은 경우, 추가할 Invocation의 메서드 이름을 지정한다.

    Invocation을 추가하려면 Invocation Type이 필수이므로, [Invocation 옵션] 중 -type 옵션을 함께 필수로 지정해야 한다.

    [-type <invocation-type>]

    [Invocation 옵션] Invocation의 타입(메서드 호출 시점)을 지정한다.

    Lifecycle Invocation을 추가하면서 Invocation을 함께 추가할 경우 [Invocation 옵션] 중 -m,--method 옵션과 함께 필수로 지정해야 한다.

    다음 중 하나를 지정할 수 있다.

    • BOOT

    • BEFORE_DEPLOY

    • AFTER_DEPLOY

    • READY

    • BEFORE_UNDEPLOY

    • AFTER_UNDEPLOY

    타입에 대한 자세한 내용은 JEUS Server 안내서”의 “2.3.5. Lifecycle Invocation 설정”의 Invocation Type을 참고한다.

    [-params <method-params>]

    [Invocation 옵션] 메서드 파라미터의 Fully Qualified Class Name을 지정한다. 매개 변수가 여러 개인 경우 공백으로 구분한다.

    (설정값 예시: -params java.lang.String boolean)

    [-args <invocation-argument>]

    [Invocation 옵션] 메서드를 호출할 때 사용하는 Argument를 지정한다. 인자가 여러 개인 경우 공백으로 구분한다. 만약 공백이 포함된 값을 인자로 해야 할 경우 큰따옴표로 묶어 사용하면 된다.

    (설정값 예시: -args "tmaxsoft jeus" "hello world")

    [-f,--forceLock]설정 변경을 강제로 진행하여 반영한다.
    [-detail]설정 변경 결과에 대한 상세한 정보가 출력된다.
  • 예제

    [MASTER]domain1.adminServer>add-lifecycle-invocation sampleClass1 -s server1
    Successfully performed the ADD operation for Lifecycle Invocation Class [sampleClass1], 
    but all changes were non-dynamic. They will be applied after restarting.
    Check the results using "list-lifecycle-invocations".
    
    [MASTER]domain1.adminServer>add-lifecycle-invocation sampleClass2 -s server1 -m methodName -type BOOT
    Successfully performed the ADD operation for Lifecycle Invocation Class [sampleClass2] and Invocation 
    [methodName](Invocation ID = 0), but all changes were non-dynamic. They will be applied after restarting.
    Check the results using "list-lifecycle-invocations".

동적으로 특정 서버에 리스너를 추가한다.

  • 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을 강제로 취한다.
  • 예제

    [MASTER]domain1.adminServer>add-listener -server server1 -name Test -port 10000
    Executed Successfully
    Check the result using 'list-server-listeners -server server1 -name Test.
    [MASTER]domain1.adminServer>list-server-listeners -server server1 -name Test
    ===============================================================
    Test
    
    +---------------------------------------------------+---------+
    | address                                           | 0.0.0.0 |
    | 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 <true | false>]
                    [-count <rotation-count>]
                    [-dir <rotation-dir>]
                    [-buffer <buffer-size>]
                    [-append <true | false>]
                    [-hour <hour> | -day <day> | -size <size>]
                    [-f,--forceLock]
                    [-detail]
                    [-permission <permission>]
                    [-chown <chown>]
  • 파라미터

    파라미터설명
    -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 <true | false>]파일 로테이션을 가능하게 할지 여부이다. (기본값: true)
    [-count <rotation-count>]백업하는 로그 파일의 최대 개수이다.
    [-dir <rotation-dir>]백업하는 로그 파일이 위치하는 디렉터리 경로이다.
    [-buffer <buffer-size>]로그 메시지를 파일에 기록할 때의 버퍼 사이즈이다.
    [-append <true | false>]

    재부팅할 때 이전 파일에 계속 로그를 남길지 여부이다.

    (true | false, 기본값: true)

    [-hour <hour>]입력된 시간마다 새로운 로그 파일을 작성한다.
    [-day <day>]입력된 날마다 새로운 로그 파일을 작성한다.
    [-size <size>]입력된 사이즈에 따라 새로운 로그 파일을 작성한다.
    [-f,--forceLock]설정 변경을 강제로 진행하여 반영한다.
    [-detail]동적 변경 결과에 대한 상세한 정보가 출력된다.
    [-permission <permission>]입력된 퍼미션으로 로그파일을 설정한다. (설정값 예시: rwxrwxrwx)
    [-chown <chown>]입력된 소유자로 로그파일을 설정한다. owner와 group은 콤마(,)로 구분한다. (설정값 예시: owner-id,group-id)
  • 예제

    [MASTER]domain1.adminServer>add-log-handler -server server1 -logger jeus.jndi fileHandler -day 10
    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"

Listener의 SSL을 설정한다.

  • alias

    configssl

  • 사용법

    config-listener-ssl -server <server-name>
                            -name <listener-name>
                            -set | -del | -show
                            [-need | -want | -noauth,--unnecessary]
                            [-p,--protocol <protocol>]
                            [-cs,--cipherSuite <cipher-suites>]
                            [-ks,--keystore <keystore-file>]
                            [-kp,--keystorePass <keystore-pass>]
                            [-kkp,--keystoreKeypass <keystore-keypass>]
                            [-kt,--keystoreType <keystore-type>]
                            [-kma,--keyManagementAlgorithm <key-management-algorithm>]
                            [-alias,--keyAlias <key-alias>]
                            [-ts,--truststore <truststore-file>]
                            [-tp,--truststorePass <truststore-pass>]
                            [-tt,--truststoreType <truststore-type>]
                            [-tma,--trustManagementAlgorithm <trust-management-algorithm>]
                            [-crl <crl-file>]
                            [-f,--forceLock]
  • 파라미터

    파라미터설명
    -server <server-name>서버의 이름이다.
    -name <listener-name>리스너의 이름이다.
    -set | -del | -show지정한 리스너의 SSL 관련 내용을 설정할 것인지 해제할 것인지 설정 상태를 보여줄 것인지 선택한다.
    [-need | -want | -noauth,--unnecessary]클라이언트 인증 방식을 선택한다.
    [-p,--protocol <protocol>]지정한 리스너에서 사용할 SSL 프로토콜의 종류를 선택한다.
    [-cs,--cipherSuite <cipher-suites>]지정한 리스너에서 사용할 암호화 방식을 선택한다.
    [-ks,--keystore <keystore-file>]지정한 리스너에서 사용할 서버 비밀키와 그에 매칭되는 인증서를 저장한 파일을 지정한다.
    [-kp,--keystorePass <keystore-pass>]지정한 keystore 파일을 열기 위한 암호값이다.
    [-kkp,--keystoreKeypass <keystore-keypass>]지정한 keystore 파일에 저장된 서버 비밀키에 대한 암호값이다.
    [-kt,--keystoreType <keystore-type>]지정한 keystore의 타입이다.
    [-kma,--keyManagementAlgorithm <key-management-algorithm>]keystore에 저장된 key의 관리 알고리듬이다.
    [-alias,--keyAlias <key-alias>]인증서의 Key Alias이다.
    [-ts,--truststore <truststore-file>]서버 인증서를 저장하고 있는 파일을 지정한다.
    [-tp,--truststorePass <truststore-pass>]지정한 truststore 파일을 열기 위한 암호값이다.
    [-tt,--truststoreType <truststore-type>]지정한 truststore의 타입이다.
    [-tma,--trustManagementAlgorithm <trust-management-algorithm>]truststore에 저장된 key의 관리 알고리듬이다.
    [-crl <crl-file>]Certificate Revocation Lists를 저장하고 있는 파일을 지정한다.
    [-f,--forceLock]설정 변경을 강제로 진행하여 반영한다.
  • 예제

    [MASTER]domain1.adminServer>config-listener-ssl -server server1 -name Test -set
    Executed successfully, but some configurations were not applied dynamically. It might be necessary to restart the server.

서버의 내부 엔진(Servlet, EJB, JMS, ProObject)을 사용하지 않도록 설정한다. 서버를 다시 시작해야 적용된다.

  • 관련 스키마

    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]설정 변경을 강제로 진행하여 반영한다.
  • 예제

    [MASTER]domain1.adminServer>disable-engines adminServer -all
    [adminServer]
    Change Engine to Disabled: Web EJB JMS
    
    Applying configuration ...
    ================================================================================
    +------------------------------------------------------------------------------+
    |                                    Result                                    |
    +------------------------------------------------------------------------------+
    | Successfully changed only the JEUS Domain Configuration.                     |
    | Restart the server to apply the changes.                                     |
    +------------------------------------------------------------------------------+
    ================================================================================
    ...
    
    [MASTER]domain1.adminServer>disable-engines server1 -all
    [server1]
    Change Engine to Disabled: Web EJB JMS
    
    Applying configuration ...
    ================================================================================
    +------------------------------------------------------------------------------+
    |                                    Result                                    |
    +------------------------------------------------------------------------------+
    | Successfully changed only the JEUS Domain Configuration.                     |
    | Restart the server to apply the changes.                                     |
    +------------------------------------------------------------------------------+
    ================================================================================
    ...
    [MASTER]domain1.adminServer>disable-engines server2 -web -ejb
    [server2]
    Change Engine to Disabled: Web EJB
    
    Applying configuration ...
    ================================================================================
    +------------------------------------------------------------------------------+
    |                                    Result                                    |
    +------------------------------------------------------------------------------+
    | Successfully changed only the JEUS Domain Configuration.                     |
    | Restart the server to apply the changes.                                     |
    +------------------------------------------------------------------------------+
    ================================================================================
    ...

서버의 내부 엔진(Servlet, EJB, JMS, ProObject)을 사용하도록 설정한다. 서버를 다시 시작해야 적용된다.

  • 관련 스키마

    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]설정 변경을 강제로 진행하여 반영한다.
  • 예제

    [MASTER]domain1.adminServer>enable-engines adminServer -all
    [adminServer]
    Change Engine to Enabled: Web EJB JMS
    
    Applying configuration ...
    ================================================================================
    +------------------------------------------------------------------------------+
    |                                    Result                                    |
    +------------------------------------------------------------------------------+
    | Successfully changed only the JEUS Domain Configuration.                     |
    | Restart the server to apply the changes.                                     |
    +------------------------------------------------------------------------------+
    ================================================================================
    ... 
    
    [MASTER]domain1.adminServer>enable-engines server1 -all
    [server1]
    Change Engine to Enabled: Web EJB JMS
    
    Applying configuration ...
    ================================================================================
    +------------------------------------------------------------------------------+
    |                                    Result                                    |
    +------------------------------------------------------------------------------+
    | Successfully changed only the JEUS Domain Configuration.                     |
    | Restart the server to apply the changes.                                     |
    +------------------------------------------------------------------------------+
    ================================================================================
    ... 
    
    [MASTER]domain1.adminServer>enable-engines server2 -web -ejb
    [server2]
    Change Engine to Enabled: Web EJB
    
    Applying configuration ...
    ================================================================================
    +------------------------------------------------------------------------------+
    |                                    Result                                    |
    +------------------------------------------------------------------------------+
    | Successfully changed only the JEUS Domain Configuration.                     |
    | Restart the server to apply the changes.                                     |
    +------------------------------------------------------------------------------+
    ================================================================================
    ...

특정 서버의 JNDI 컨텍스트에 바인드되어 있는 객체의 바인딩(이름) 목록을 확인한다.

  • alias

    jndiinfo, jndilist

  • 사용법

    jndi-info -server <server-name> 
              [<context-name>]
  • 파라미터

    파라미터설명
    -server <server-name>서버의 이름이다.
    [<context-name>]

    JNDI 컨텍스트의 이름이다.

    <context-name>이 컨텍스트이면 해당 컨텍스트에 바인딩되어 있는 모든 객체를 출력하고, 컨텍스트가 아니라 leaf node라면 해당 객체의 상세 정보를 출력한다.

  • 예제

    • context

      [MASTER]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         |
      +------------+-------------------------------------------------+---------------+
      ================================================================================
      
      [MASTER]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

      [MASTER]domain1.adminServer>jndi-info -server server1 mgmt/rmbs/server1
      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
      
      ================================================================================

특정 Lifecycle Invocation의 정보를 조회한다.

  • alias

    invoinfo, lifecycleinvocationinfo, lifeinvoinfo

  • 사용법

    lifecycle-invocation-info -s,--server <server> | -c,--cluster <cluster>
                              [-class <lifecycle-invocation-class>]
                              [-lib,--library]
                              [-invo,--invocation]
  • 파라미터

    파라미터설명
    -s,--server <server> | -c,--cluster <cluster>조회하고자 하는 Lifecycle Invocation이 위치한 서버 혹은 클러스터를 지정한다.
    [-class <lifecycle-invocation-class>]특정 Lifecycle Invocation의 Class만 조회할 경우 클래스 이름을 지정한다.
    [-lib,--library]Lifecycle Invocation의 Library Ref를 조회한다.
    [-invo,--invocation]Lifecycle Invocation의 Invocation을 조회한다.
  • 예제

    [MASTER]domain1.adminServer>lifecycle-invocation-info -s server1
    Target Name                    : server1
    Target Type                    : Server
    Lifecycle Invocation Class Name: invocation.ClassName1
    Library Ref Information:
    ================================================================================
    +--------------+-----------------------+------------------------+--------------+
    | Library Name | Specification Version | Implementation Version | Failon Error |
    |              |     (Exact match)     |      (Exact match)     |              |
    +--------------+-----------------------+------------------------+--------------+
    (No data available)
    ================================================================================
    
    Invocation Information:
    ================================================================================
    +-------------+---------------+----------------------+-----------+-------------+
    |  Invocation |   Invocation  |  Invocation Argument |   Method  |    Method   |
    |     ID      |     Type      |                      |   Name    |   Params    |
    +-------------+---------------+----------------------+-----------+-------------+
    |           0 | BOOT          |                      | bootMethod|             |
    +-------------+---------------+----------------------+-----------+-------------+
    ================================================================================

특정 서버 혹은 클러스터의 Lifecycle Invocation을 조회한다.

  • alias

    listinvo, listlifecycleinvocations, listlifeinvo

  • 사용법

    list-lifecycle-invocations [-s,--server <server> | -c,--cluster <cluster>]
  • 파라미터

    파라미터설명
    [-s,--server <server> | -c,--cluster <cluster>]서버 혹은 클러스터를 지정할 경우 해당 서버 혹은 클러스터의 Lifecycle Invocation만 조회한다.
  • 예제

    [MASTER]domain1.adminServer>list-lifecycle-invocations
    List of Lifecycle invocations
    ================================================================================
    +------------------+------------------------+---------------------+------------+
    |      Target      |  Lifecycle Invocation  |  Invocation Library | Invocation |
    |                  |         Class          |         Ref         |            |
    +------------------+------------------------+---------------------+------------+
    | [Server]adminSer | lifecycle.LifeCycleTes |                     | [0]boot    |
    |ver               |ter                     |                     |            |
    +------------------+------------------------+---------------------+------------+
    | [Server]server1  | invocation.ClassName1  |                     | [0]bootMet |
    |                  |                        |                     |hod         |
    +------------------+------------------------+---------------------+------------+
    | [Server]server1  | invocation.ClassName2  | libName             | [0]method1,|
    |                  |                        |                     | [1]method2 |
    +------------------+------------------------+---------------------+------------+
    ================================================================================
    Use the "lifecycle-invocation-info" command for more information about Lifecycle invocation.

특정 서버에 등록된 MBean들의 리스트를 조회한다.

  • alias

    mbeaninfo

  • 사용법

    mbean-info -server <server-name>
               [<object-name>]
  • 파라미터

    파라미터설명
    -server <server-name>서버의 이름이다.
    [<object-name>]

    Object 이름에 대한 특정 쿼리이다.

    특정 Object 이름을 갖는 MBean의 목록을 조회하는 경우 사용한다.

    쿼리하는 Object 이름에 대해서는 "JEUS JMX 안내서"를 참고한다.

  • 예제

    [MASTER]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                           |
    +------------------------------------------------------------------------------+
    ================================================================================

특정 Lifecycle Invocation의 Invocation을 수정한다.

  • alias

    modinvo, modifyinvocation, modifyinvo

  • 사용법

    modify-invocation -id <invocation-id> | -m,--method <invocation-method>
                      [-mv,--rename <invocation-method>]
                      [-type <invocation-type>]
                      [-params <method-params>]
                      [-args <invocation-argument>]
                      -class <class>
                      -s,--server <server> | -c,--cluster <cluster>
                      [-f,--forceLock]
                      [-detail]
  • 파라미터

    파라미터설명
    -id <invocation-id> | -m,--method <invocation-method>수정할 Invocation을 ID 혹은 메서드 이름으로 지정한다. 만약 동일한 이름의 메서드가 여럿 있을 경우에는 ID로 지정해야 한다.
    [-mv,--rename <invocation-method>]Invocation의 메서드 이름을 변경한다.
    [-type <invocation-type>]

    Invocation의 타입(메서드 호출 시점)을 변경한다.

    다음 중에 하나를 지정할 수 있다.

    • BOOT

    • BEFORE_DEPLOY

    • AFTER_DEPLOY

    • READY

    • BEFORE_UNDEPLOY

    • AFTER_UNDEPLOY

    타입에 대한 자세한 내용은 JEUS Server 안내서”의 “2.3.5. Lifecycle Invocation 설정”의 Invocation Type을 참고한다.

    [-params <method-params>]메서드 파라미터의 Fully Qualified Class Name을 변경한다. 매개 변수가 여러 개인 경우 공백으로 구분한다. (설정값 예시: -params java.lang.String boolean)
    [-args <invocation-argument>]메서드를 호출할 때 사용하는 Argument를 변경한다. 인자가 여러 개인 경우 공백으로 구분한다. 만약 공백이 포함된 값을 인자로 해야할 경우 큰따옴표로 묶어 사용하면 된다. (설정값 예시: -args "tmaxsoft jeus" "hello world")
    -class <class>Invocation이 위치한 Lifecycle Invocation의 클래스 이름을 지정한다.
    -s,--server <server> | -c,--cluster <cluster>Lifecycle Invocation가 위치한 서버 혹은 클러스터의 이름을 지정한다.
    [-f,--forceLock]설정 변경을 강제로 진행하여 반영한다.
    [-detail]설정 변경 결과에 대한 상세한 정보가 출력된다.
  • 예제

    [MASTER]domain1.adminServer>modify-invocation -m bootMethod -mv newMethod -class invocation.ClassName1 -s server1
    Successfully performed the MODIFY operation for Invocation [newMethod](Invocation ID = 0), but all changes were non-dynamic. They will be applied after restarting.
    Check the results using "list-lifecycle-invocations or lifecycle-invocation-info".

특정 Lifecycle Invocation에 Library Ref를 수정한다.

  • alias

    modinvolib, modifyinvocationlibrary, modifyinvolib

  • 사용법

    modify-invocation-library <library>
                              [-mv,--rename <invocation-library>]
                              [-specVer <version>]
                              [-specMatch <true | false>]
                              [-implVer <version>]
                              [-implMatch <true | false>]
                              [-fail,--failOnError <true | false>]
                              -class <class>
                              -s,--server <server> | -c,--cluster <cluster>
                              [-f,--forceLock]
                              [-detail]
  • 파라미터

    파라미터설명
    <library>수정할 Library Ref의 라이브러리 이름이다.
    [-mv,--rename <invocation-library>]Library Ref의 라이브러리 이름을 변경한다.
    [-specVer <version>]

    해당 라이브러리의 Specification Version을 수정한다.

    [-specMatch <true | false>]Specification Version이 정확히 일치해야하는지 여부 설정을 수정한다.
    [-implVer <version>]해당 라이브러리의 Implementation Version을 수정한다.
    [-implMatch <true | false>]Implementation Version이 정확히 일치해야하는지 여부 설정을 수정한다.
    [-fail,--failOnError <true | false>]해당 Shared Library를 찾지 못할 경우 Deploy를 실패할지 여부 설정을 수정한다.
    -class <class>Library Ref가 위치한 Lifecycle Invocation의 클래스 이름을 지정한다.
    -s,--server <server> | -c,--cluster <cluster>Lifecycle Invocation가 위치한 서버 혹은 클러스터의 이름을 지정한다.
    [-f,--forceLock]설정 변경을 강제로 진행하여 반영한다.
    [-detail]설정 변경 결과에 대한 상세한 정보가 출력된다.
  • 예제

    [MASTER]domain1.adminServer>modify-invocation-library libName -mv newLibName -class invo.invoTestClass2 -s server1 
    Successfully performed the MODIFY operation for Invocation Library [newLibName], but all changes were non-dynamic. 
    They will be applied after restarting.
    Check the results using "list-lifecycle-invocations or lifecycle-invocation-info".

특정 서버에 있는 리스너의 설정을 수정한다.

  • 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을 강제로 취한다.
  • 예제

    [MASTER]domain1.adminServer>modify-listener -server adminServer -name base -dual -backlog 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.
    
    [MASTER]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  <true | false>]
                       [-count <rotation-count>]
                       [-dir <rotation-dir>]
                       [-buffer <buffer-size>]
                       [-append <true | false>]
                       [-hour <hour> | -day <day> | -size <size>]
                       [-f,--forceLock]
                       [-detail]
                       [-permission <permission>]
                       [-chown <chown>]
  • 파라미터

    파라미터설명
    -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 <true | false>]파일 로테이션을 가능하게 할지 여부를 설정한다. (기본값: true)
    [-count <rotation-count>]백업하는 로그 파일의 최대 개수이다.
    [-dir <rotation-dir>]백업하는 로그 파일이 위치하는 디렉터리 경로이다.
    [-buffer <buffer-size>]로그 메시지를 파일에 기록할 때의 버퍼 사이즈이다.
    [-append <true | false>]

    재부팅할 때 이전 파일에 계속 로그를 남길지 여부를 설정한다.

    (true | false, 기본값: true)

    [-hour <hour>]입력된 시간마다 새로운 로그 파일을 작성한다.
    [-day <day>]입력된 날마다 새로운 로그 파일을 작성한다.
    [-size <size>]입력된 사이즈에 따라 새로운 로그 파일을 작성한다.
    [-f,--forceLock]설정 변경을 강제로 진행하여 반영한다.
    [-detail]동적 변경 결과에 대한 상세한 정보가 출력된다.
    [-permission]입력된 퍼미션으로 로그파일을 설정한다. (설정값 예시: rwxrwxrwx)
    [-chown]입력된 소유자로 로그파일을 설정한다. owner와 group은 콤마( , )로 구분한다 (설정값 예시: owner-id,group-id)
  • 예제

    [MASTER]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"

특정 서버에 있는 리스너를 삭제한다. base 리스너나 다른 설정에서 참조하고 있는 리스너는 삭제할 수 없다.

  • alias

    removelistener, deletelistener

  • 사용법

    remove-listener -server <server-name>
                    -name <listener-name>
                    [-f,--forceLock]
  • 파라미터

    파라미터설명
    -server <server-name>서버의 이름이다.
    -name <listener-name>삭제할 리스너의 이름이다.
    [-f,--forceLock]수정을 위한 lock을 강제로 취한다.
  • 예제

    [MASTER]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 |
    +------------------------------------+---------+-------+
    ========================================================
    
    [MASTER]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.
    [MASTER]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

    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>]해당 노드로 분류된 서버에 대한 정보를 출력한다.
  • 예제

    [MASTER]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    |        |             |             |
    +--------+---------+-----+-------+-----+----------------+--------+-------------+-------------+
    | ds1 (d)| SHUTDOWN|node1| N/A   | temp| N/A            | N/A    | N/A         | N/A         |
    |        |         |     |       |late1|                |        |             |             |
    |        |         |     |       |     |                |        |             |             |
    +--------+---------+-----+-------+-----+----------------+--------+-------------+-------------+
    | ds2 (d)| SHUTDOWN|node1| N/A   | temp| N/A            | N/A    | N/A         | N/A         |
    |        |         |     |       |late1|                |        |             |             |
    |        |         |     |       |     |                |        |             |             |
    +--------+---------+-----+-------+-----+----------------+--------+-------------+-------------+
    ==============================================================================================

    참고

    1. 현재 접속 중인 서버의 경우 서버 이름 옆에 애스터리스트(*) 표기가 붙는다.

특정 서버의 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으로 지정한다.
  • 예제

    [MASTER]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).
    [MASTER]domain1.adminServer> 

현재 SCF View를 모니터링한다.

  • alias

    scfview, showscf

  • 사용법

    show-current-scf-view [-dump]
  • 파라미터

    파라미터설명
    [-dump]옵션을 지정할 경우 Server log를 dump한다.
  • 예제

    [MASTER]domain1.adminServer>show-current-scf-view
    ================================================================================
    Current SCF Views
    
    +------------------------------------------------------------------------------+
    |                                 Group Leader                                 |
    +------------------------------------------------------------------------------+
    | adminServer                                                                  |
    +------------------------------------------------------------------------------+
    ================================================================================
    
    ================================================================================
    Synchronized View
    
    +----------+---------------+-------+-----------------------+-------+-----------+
    |  Server  |    Address    |  PID  |      Started Time     | State |   Groups  |
    |   Name   |               |       |                       |       |           |
    +----------+---------------+-------+-----------------------+-------+-----------+
    | adminSer | 192.168.1.1:9 | 29660 | Tue Aug 30 02:43:15   | ALIVE | [domain1] |
    |ver       |736            |       |KST 2022               |       |           |
    +----------+---------------+-------+-----------------------+-------+-----------+
    | server1  | 192.168.1.5:1 | 20500 | Mon Aug 29 10:21:27   | ALIVE | [domain1] |
    |          |9736           |       |KST 2022               |       |           |
    +----------+---------------+-------+-----------------------+-------+-----------+
    ================================================================================
    
    ================================================================================
    Individual View
    
    +----------+---------------+-------+-----------------------+-------+-----------+
    |  Server  |    Address    |  PID  |      Started Time     | State |   Groups  |
    |   Name   |               |       |                       |       |           |
    +----------+---------------+-------+-----------------------+-------+-----------+
    | adminSer | 192.168.1.1:9 | 29660 | Tue Aug 30 02:43:15   | ALIVE | [domain1] |
    |ver       |736            |       |KST 2022               |       |           |
    +----------+---------------+-------+-----------------------+-------+-----------+
    | server1  | 192.168.1.5:1 | 20500 | Mon Aug 29 10:21:27   | ALIVE | [domain1] |
    |          |9736           |       |KST 2022               |       |           |
    +----------+---------------+-------+-----------------------+-------+-----------+
    ================================================================================
    [MASTER]domain1.adminServer>show-current-scf-view -dump
    ================================================================================
    Current SCF Views
    
    +------------------------------------------------------------------------------+
    |                                 Group Leader                                 |
    +------------------------------------------------------------------------------+
    | adminServer                                                                  |
    +------------------------------------------------------------------------------+
    ================================================================================
    
    ================================================================================
    Synchronized View
    
    +----------+---------------+-------+-----------------------+-------+-----------+
    |  Server  |    Address    |  PID  |      Started Time     | State |   Groups  |
    |   Name   |               |       |                       |       |           |
    +----------+---------------+-------+-----------------------+-------+-----------+
    | adminSer | 192.168.1.1:9 | 29660 | Tue Aug 30 02:43:15   | ALIVE | [domain1] |
    |ver       |736            |       |KST 2022               |       |           |
    +----------+---------------+-------+-----------------------+-------+-----------+
    | server1  | 192.168.1.5:1 | 20500 | Mon Aug 29 10:21:27   | ALIVE | [domain1] |
    |          |9736           |       |KST 2022               |       |           |
    +----------+---------------+-------+-----------------------+-------+-----------+
    ================================================================================
    
    ================================================================================
    Individual View
    
    +----------+---------------+-------+-----------------------+-------+-----------+
    |  Server  |    Address    |  PID  |      Started Time     | State |   Groups  |
    |   Name   |               |       |                       |       |           |
    +----------+---------------+-------+-----------------------+-------+-----------+
    | adminSer | 192.168.1.1:9 | 29660 | Tue Aug 30 02:43:15   | ALIVE | [domain1] |
    |ver       |736            |       |KST 2022               |       |           |
    +----------+---------------+-------+-----------------------+-------+-----------+
    | server1  | 192.168.1.5:1 | 20500 | Mon Aug 29 10:21:27   | ALIVE | [domain1] |
    |          |9736           |       |KST 2022               |       |           |
    +----------+---------------+-------+-----------------------+-------+-----------+
    ================================================================================
    Successfully dumped to server log.
    

현재 도메인에 속한 Managed Server들을 종료한다. JEUS Master Server의 종료는 local-shutdown 명령어를 통해서 가능하다.

  • alias

    stopdomain, shutdownall, downall

  • 사용법

    stop-domain [-to,--shutdowntimeout <timeout> | -f, --force | -g,--graceful]
                  [-i]
  • 파라미터

    파라미터설명
    [-f, --force]Graceful 타임아웃을 적용하지 않고 강제로 종료할지 여부를 설정한다.
    [-g, --graceful]Graceful하게 종료할지 여부를 설정한다. 처리 중인 요청이 끝나길 무한히 기다린다.
    [-to,--shutdowntimeout <timeout>]

    Graceful하게 종료할 때 사용할 타임아웃을 설정한다.

    처리 중인 요청을 입력한 시간만큼 완료되길 기다린다. (단위: second)

    [-i]

    사용자의 동의를 구하지 않고 바로 종료한다.

  • 예제

    [MASTER]domain1.adminServer>stop-domain
    Executing this command affects the service. Do you want to continue? (y/n)n
    [stop-domain] has been canceled.
    [MASTER]domain1.adminServer>stop-domain -i
    Stopping servers [adminServer, ms1].
    Stop server message to all managed servers in the domain were successfully sent.
    Unable to shut down JEUS Master Server. To shutdown JEUS Master Server, use the jeusadmin's "local-shutdown" command instead.

Domain Configuration 관련 명령어의 목록은 다음과 같다.

명령어설명
add-cluster동적으로 클러스터를 추가한다. JEUS Master Server-Managed Server 구조에서만 수행 가능한 명령어이다.
add-custom-resource동적으로 custom resource를 추가한다.
add-custom-resource-to-clusters클러스터에 동적으로 custom resource를 추가한다. JEUS Master Server-Managed Server 구조에서만 수행 가능한 명령어이다.
add-data-sources-to-cluster클러스터에 동적으로 데이터소스들을 등록한다. JEUS Master Server-Managed Server 구조에서만 수행 가능한 명령어이다.
add-external-resource동적으로 external resource를 추가한다.
add-external-resource-to-clusters클러스터에 동적으로 external resource를 추가한다. JEUS Master Server-Managed Server 구조에서만 수행 가능한 명령어이다.
add-server동적으로 서버를 추가한다. JEUS Master Server-Managed Server 구조에서만 수행 가능한 명령어이다.
add-servers-to-cluster동적으로 특정 서버를 특정 클러스터에 추가한다. JEUS Master Server-Managed Server 구조에서만 수행 가능한 명령어이다.
add-server-template동적으로 여러 서버에 공통적으로 적용할 수 있는 설정 템플릿을 추가한다. JEUS Master Server-Managed Server 구조에서만 수행 가능한 명령어이다.
apply-configuration-plan기존 domain.xml에 configuration plan을 적용한 새로운 domain.xml을 생성하는 Off-line 명령어이다.
create-domain새로운 도메인을 생성하는 Off-line 명령어이다. 기본으로 생성되는 사용자에 대한 암호는 별도로 입력해야 한다.
delete-domain생성된 도메인을 제거하는 Off-line 명령어이다.
disable-json-commandJsonCommand를 비활성화한다.
disable-to-resynchronize-applicationsManaged Server가 INDEPENDENT 상태에서 DEPENDENT 상태로 변경되었을 때 애플리케이션을 동기화하지 않는다.
enable-json-commandJsonCommand를 활성화한다.
enable-to-resynchronize-applicationsManaged Server가 INDEPENDENT 상태에서 DEPENDENT 상태로 변경되었을 때 애플리케이션을 동기화한다.
list-clusters현재 도메인에 존재하는 클러스터의 정보를 확인한다. JEUS Master Server-Managed Server 구조에서만 수행 가능한 명령어이다.
list-custom-resources현재 도메인에 설정된 custom resource를 확인한다.
list-external-resources현재 도메인에 설정된 external resource를 확인한다.
list-domains현재 구성된 도메인의 목록을 조회하는 Off-line 명령어이다.
list-servers현재 도메인에 존재하는 서버의 정보를 확인한다.
modify-cluster동적으로 특정 클러스터의 설정을 변경한다. JEUS Master Server-Managed Server 구조에서만 수행 가능한 명령어이다.
modify-server동적으로 특정 서버의 설정을 변경한다.
modify-dynamic-serversDynamic Servers 설정으로 만들어진 클러스터의 설정 정보를 변경한다. JEUS Master Server-Managed Server 구조에서만 수행 가능한 명령어이다.
pack-domain도메인 백업을 이용한 장애 극복을 위해 특정 도메인 폴더를 압축하는 명령어이다.
remove-cluster동적으로 클러스터를 삭제한다. JEUS Master Server-Managed Server 구조에서만 수행 가능한 명령어이다.
remove-custom-resource동적으로 custom resource를 삭제한다.
remove-custom-resource-from-clusters클러스터에 등록된 custom resource를 동적으로 삭제한다. JEUS Master Server-Managed Server 구조에서만 수행 가능한 명령어이다.
remove-data-sources-from-cluster클러스터에 등록된 데이터소스들을 동적으로 제거한다. JEUS Master Server-Managed Server 구조에서만 수행 가능한 명령어이다.
remove-domain-log-config도메인 내 log 파일들의 소유자 및 권한 설정을 삭제한다.
remove-external-resource동적으로 external resource를 삭제한다.
remove-external-resource-from-clusters클러스터에 등록된 external resource를 동적으로 삭제한다. JEUS Master Server-Managed Server 구조에서만 수행 가능한 명령어이다.
remove-server동적으로 특정 서버를 삭제한다.
remove-servers-from-cluster동적으로 특정 클러스터에서 특정 서버를 삭제한다. JEUS Master Server-Managed Server 구조에서만 수행 가능한 명령어이다.
set-domain-log-config도메인 내 log 파일들의 소유자 및 권한을 설정한다. 도메인에 속해 있는 서버들의 로거 설정 중 로그 파일 소유자 및 권한 설정이 없을 경우 이 설정을 따르게 된다.
show-domain-log-config도메인 내 log 파일들의 소유자 및 권한 설정을 보여준다.
show-dynamic-servers동적 서버 생성으로 만들어진 클러스터의 설정 정보를 보여준다. JEUS Master Server-Managed Server 구조에서만 수행 가능한 명령어이다.
show-server-template설정된 서버 템플릿의 리스트를 조회한다. JEUS Master Server-Managed Server 구조에서만 수행 가능한 명령어이다.
unpack-domain서버에 장애가 생겼을 때 pack-domain에 의해 압축된 파일을 해제하는 명령어이다.

동적으로 서버를 추가한다.

  • alias

    addserver

  • 사용법

    add-server [<server-name>]
              [-target,--duptargetserver <target-server>]
              [-port,--baseport <base-port>]
              [-addr,--baseaddr <base-addr>]
              [-http,--httpport <http-port>]
              [-node,--nodeName <node-name>]
              [-jvm,--jvmOptions <jvm-options>]
              [-logdir,--logHomeDirectory <server-log-home-directory>]
              [-a,--actionOnResourceLeak <action-on-resource-leak>]
              [-l,--logStdoutToRawFormat <true | false>]
              [-m,--mejb <true | false>]
              [-c,--classFtp <true | false>]
              [-f,--forceLock]
              [-detail]
  • 파라미터

    파라미터설명
    [<server-name>]서버의 이름이다.
    [-target,--duptargetserver <target-server>]서버 설정을 복사할 타켓 서버의 이름이다.
    [-port,--baseport <base-port>]

    서버의 기본 동작 포트 번호이다.

    기본값으로 9736이 지정되나 같은 머신에 여러 개의 서버를 생성할 경우 구분이 필요한 설정이다.

    [-addr,--baseaddr <base-addr>]서버의 기본 동작 주소이다.
    [-http,--httpport <http-port>]

    서버의 기본 HTTP Listener의 포트 번호이다.

    기본값으로 8088이 지정되나 같은 머신에 여러 개의 서버를 생성할 경우 구분이 필요한 설정이다.

    [-node,--nodeName <node-name>]

    서버가 실제로 동작하게 될 머신을 의미하는 노드의 이름이다.

    list-nodes를 통해 노드들의 정보를 확인할 수 있다.

    [-jvm,--jvmOptions <jvm-options>]

    서버에 적용하고 하는 JVM 옵션이다.

    공백이 존재하는 경우 큰따옴표(" ")로 묶어서 입력한다.

    [-logdir,--logHomeDirectory <server-log-home-directory>]서버에서 생성되는 로그들이 공통적으로 들어갈 로그 디렉터리를 의미한다.
    [-a,--actionOnResourceLeak <action-on-resource-leak>]

    리소스에 leak이 발생할 경우 취할 액션을 설정한다.

    다음 중 하나를 입력한다.

    • AutoClose

    • NoAction

    • Warning

    [-l,--logStdoutToRawFormat <true | false>][동적 변경] stdout을 그대로 출력할 것인지 JEUS 로거 포맷으로 출력할 것인지 설정한다. (true | false)
    [-m,--mejb <true | false>][동적 변경] MEJB를 사용할지 여부를 설정한다. (true | false)
    [-c,--classFtp <true | false>][동적 변경] class FTP 서비스를 사용할지 여부를 설정한다. (true | false)
    [-f,--forceLock]설정 변경을 강제로 진행하여 반영한다.
    [-detail]동적 변경 결과에 대한 상세한 정보가 출력된다.
  • 예제

    • 현재 존재하는 서버 리스트 확인

      [MASTER]domain1.adminServer>list-servers
                    List of Editable Servers
                    ================================================================================
                    +------+--------+-----+--------+---------+---------+-----+-----+---------+-----+
                    | Serv |  Base  | Node|   JVM  |  Action |  Stdout | MEJB| Cla |  Server | Type|
                    |  er  | Listen |     |Configs |   On    | to Raw  |     | ss  |Log Home |     |
                    |      |Address |     |        |Resource | Format  |     | FTP | Directo |     |
                    |      | /Port  |     |        |   Leak  |         |     |     |   ry    |     |
                    +------+--------+-----+--------+---------+---------+-----+-----+---------+-----+
                    | admi |0.0.0.0 | nod | -Xmx10 | Warning | true    | fal | true| none    | ser |
                    |nServ |/ 9736  |e1   |24m     |         |         |se   |     |         |ver  |
                    |er    |        |     |-XX:Max |         |         |     |     |         |     |
                    |      |        |     |Metaspa |         |         |     |     |         |     |
                    |      |        |     |ceSize= |         |         |     |     |         |     |
                    |      |        |     |512m    |         |         |     |     |         |     |
                    +------+--------+-----+--------+---------+---------+-----+-----+---------+-----+
                    | serve|0.0.0.0 | nod | -Xmx10 | Warning | true    | fal | fal | none    | ser |
                    |r1    |/ 19736 |e1   |24m     |         |         |se   |se   |         |ver  |
                    |      |        |     |-XX:Max |         |         |     |     |         |     |
                    |      |        |     |Metaspa |         |         |     |     |         |     |
                    |      |        |     |ceSize= |         |         |     |     |         |     |
                    |      |        |     |512m    |         |         |     |     |         |     |
                    +------+--------+-----+--------+---------+---------+-----+-----+---------+-----+
                    ================================================================================
    • 현재 존재하지 않는 이름으로 서버 추가

      [MASTER]domain1.adminServer>add-server server2 -port 10000 -node node1 -m false
                    Successfully performed the ADD operation for server (server2).
                    NOTICE : base-addr [0.0.0.0] base-port [10000] http-port [8088]
                    Check the results using "list-servers or add-server"
                    [MASTER]domain1.adminServer>add-server server3 -port 11000 -http 18088 -node node1
                    Successfully performed the ADD operation for server (server3).
                    NOTICE : base-addr [0.0.0.0] base-port [11000] http-port [18088]
                    Check the results using "list-servers or add-server"

동적으로 여러 서버에 공통적으로 적용할 수 있는 설정 템플릿을 추가한다.

  • 사용법

    add-server-template [<server-template-name>]
              [-port,--baseport <base-port>]
              [-addr,--baseaddr <base-addr>]
              [-http,--httpport <http-port>]
              [-node,--nodeName <node-name>]
              [-jvm,--jvmOptions <jvm-options>]
              [-logdir,--logHomeDirectory <server-log-home-directory>]
              [-a,--actionOnResourceLeak <action-on-resource-leak>]
              [-l,--logStdoutToRawFormat <true | false>]
              [-m,--mejb <true | false>]
              [-c,--classFtp <true | false>]
              [-f,--forceLock]
              [-detail]
  • 파라미터

    파라미터설명
    <server-template-name>추가할 서버 템플릿의 이름이다.
    [-port,--baseport <base-port>]

    서버의 기본 동작 포트 번호이다.

    기본값으로 9736이 지정된다.

    [-addr,--baseaddr <base-addr>]서버의 기본 동작 주소이다.
    [-http,--httpport <http-port>]

    서버의 기본 HTTP Listener의 포트 번호이다.

    기본값으로 8088이 지정된다.

    [-node,--nodeName <node-name>]

    서버가 실제로 동작하게 될 머신을 의미하는 노드의 이름이다.

    list-nodes를 통해 노드들의 정보를 확인할 수 있다.

    [-jvm,--jvmOptions <jvm-options>]

    템플릿에 추가할 JVM 옵션이다.

    공백이 존재하는 경우 큰따옴표(" ")로 묶어서 입력한다.

    [-logdir,--logHomeDirectory <server-log-home-directory>]템플릿으로 설정된 서버에서 생성되는 로그들이 공통적으로 들어갈 로그 디렉터리를 의미한다.
    [-a,--actionOnResourceLeak <action-on-resource-leak>]

    리소스에 leak이 발생할 경우 취할 액션을 설정한다.

    다음 중에 하나를 설정한다.

    • AutoClose

    • NoAction

    • Warning

    [-l,--logStdoutToRawFormat <true | false>][동적 변경] stdout을 그대로 출력할 것인지 JEUS 로거 포맷으로 출력할 것인지 설정한다. (true | false)
    [-m,--mejb <true | false>][동적 변경] MEJB를 사용할지 여부를 설정한다. (true | false)
    [-c,--classFtp <true | false>][동적 변경] class FTP 서비스를 사용할지 여부를 설정한다. (true | false)
    [-f,--forceLock]설정 변경을 강제로 진행하여 반영한다.
    [-detail]동적 변경 결과에 대한 상세한 정보가 출력된다.
  • 예제

    [MASTER]domain1.adminServer>add-server-template temp1
              Successfully performed the ADD operation for server template (temp1), but all changes were non-dynamic. They will be applied after restarting.
              NOTICE : base-addr [0.0.0.0] base-port [9736] http-port [8088]
              Check the results using "list-servers or show-server-template or add-server-template".

새로운 도메인을 생성하는 명령어이다. 기본으로 생성되는 사용자에 대한 암호는 별도로 입력해야 한다.

사용자 암호는 AES로 암호화되어 저장된다. option에 대한 default 값은 JEUS_HOME\setup\domain-config-template.properties의 값을 따른다.

  • alias

    createdomain

  • 사용법

    create-domain -domain <domain-name>
              [-mastername <master-name>]
              [-baseport <master-base-port>]
              [-baseaddress <master-base-address>]
              [-jmsport <jms-port>]
              [-user <user-name>]
              [-httpport <http-port>]
              [-jvmconfig <jvm-config>]
              [-node <node-name>]
              [-pw,--password]
              [-ttype,--transport.type <transport-type>]
              [-productionmode,--productionmode]
              [-taddress,--transport.address <transport-address>]
              [-tport,--transport.port <transport-port>]      
  • 파라미터

    파라미터설명
    -domain <domain-name>도메인의 이름이다.
    [-mastername <master-name>]도메인을 관리하는 JEUS Master Server의 이름이다.
    [-baseport <master-base-port>]JEUS Master Server의 기본 동작 포트 번호이다.
    [-baseaddress <master-base-address>]JEUS Master Server의 기본 동작 주소이다.
    [-user <user-name>]도메인의 사용자 이름이다.
    [-httpport <http-port>]JEUS Master Server의 HTTP 포트 번호이다.
    [-jvmconfig <jvm-config>]JEUS Master Server에 적용할 JVM 설정이다.
    [-node <node-name>]JEUS Master Server에 적용할 노드 이름이다.
    [-pw,--password]템플릿 프로퍼티 파일과 상관없이 무조건 password를 콘솔에서 입력받게 된다.
    [-ttype,--transport.type <transport-type>]SCF의 전송 형식을 지정한다.
    [-productionmode,--productionmode]생성하는 JEUS의 도메인을 production mode에서 사용할지 여부이다.
    [-taddress,--transport.address <transport-address>]

    SCF의 전송 주소를 지정한다.

    [-tport,--transport.port <transport-port>]

    SCF의 전송 포트를 지정한다.

  • 예제

    offline>create-domain -domain domain1 -mastername adminServer -baseport 9763 -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                                     |
              +--------------------------------+---------------------------------------------+
              | JEUS Master Server Name        | adminServer                                 |
              +--------------------------------+---------------------------------------------+
              | JEUS Master Server Base Listen | 9763                                        |
              | Port                           |                                             |
              +--------------------------------+---------------------------------------------+
              | JEUS Master Server Base Listen | 0.0.0.0                                     |
              | Address                        |                                             |
              +--------------------------------+---------------------------------------------+
              | HTTP Port                      | 8088                                        |
              +--------------------------------+---------------------------------------------+
              | User Name                      | administrator                               |
              +--------------------------------+---------------------------------------------+
              | Node Name                      | node1                                       |
              +--------------------------------+---------------------------------------------+
              | Password                       | {AES:256}lBljYlIlBrujFDC7v3NSoHZQprgnncVmdB |
              |                                |bkt4oxDRg=                                   |
              +--------------------------------+---------------------------------------------+
              | JVM Option                     | -Xmx1024m -XX:MaxMetaspaceSize=256m         |
              +--------------------------------+---------------------------------------------+
              | Production Mode                | true                                        |
              +--------------------------------+---------------------------------------------+
              | Transport Type                 | HYBRID                                      |
              +--------------------------------+---------------------------------------------+
              ================================================================================
  • 참고

    본 명령어는 서버에 접속하지 않은 상태에서도 사용할 수 있다.

현재 도메인에 존재하는 서버의 설정 정보를 확인한다. 상태 정보 확인을 위해서는 server-info 명령어를 사용한다.

  • 사용법

    list-servers [<server-name>]
  • 파라미터

    파라미터설명
    [<server-name>]서버의 이름이다.
  • 예제

    [MASTER]domain1.adminServer>list-servers
              List of Editable Servers
              ================================================================================
              +------+--------+-----+--------+---------+---------+-----+-----+---------+-----+
              | Serv |  Base  | Node|   JVM  |  Action |  Stdout | MEJB| Cla |  Server | Type|
              |  er  | Listen |     |Configs |   On    | to Raw  |     | ss  |Log Home |     |
              |      |Address |     |        |Resource | Format  |     | FTP | Directo |     |
              |      | /Port  |     |        |   Leak  |         |     |     |   ry    |     |
              +------+--------+-----+--------+---------+---------+-----+-----+---------+-----+
              | admi |0.0.0.0 | nod | -Xmx10 | Warning | true    | fal | true| none    | ser |
              |nServ |/ 9736  |e1   |24m     |         |         |se   |     |         |ver  |
              |er    |        |     |-XX:Max |         |         |     |     |         |     |
              |      |        |     |Metaspa |         |         |     |     |         |     |
              |      |        |     |ceSize= |         |         |     |     |         |     |
              |      |        |     |512m    |         |         |     |     |         |     |
              +------+--------+-----+--------+---------+---------+-----+-----+---------+-----+
              | serv | 192.16 | nod | -Xmx10 | Warning | true    | fal | fal | none    | ser |
              |er1   |8.0.124 |e1   |24m     |         |         |se   |se   |         |ver  |
              |      | / 9836 |     |-XX:Max |         |         |     |     |         |     |
              |      |        |     |Metaspa |         |         |     |     |         |     |
              |      |        |     |ceSize= |         |         |     |     |         |     |
              |      |        |     |512m    |         |         |     |     |         |     |
              +------+--------+-----+--------+---------+---------+-----+-----+---------+-----+
              | serv | 192.16 | nod | -Xmx10 | Warning | true    | fal | fal | none    | ser |
              |er2   |8.0.124 |e1   |24m     |         |         |se   |se   |         |ver  |
              |      | / 9936 |     |-XX:Max |         |         |     |     |         |     |
              |      |        |     |Metaspa |         |         |     |     |         |     |
              |      |        |     |ceSize= |         |         |     |     |         |     |
              |      |        |     |512m    |         |         |     |     |         |     |
              +------+--------+-----+--------+---------+---------+-----+-----+---------+-----+
              | dy_s |0.0.0.0 | nod | -Xmx10 | Warning | true    | fal | fal | none    | dyn |
              |erver |/ 9737  |e1   |24m     |         |         |se   |se   |         |amic |
              |_1    |        |     |        |         |         |     |     |         |(t1) |
              +------+--------+-----+--------+---------+---------+-----+-----+---------+-----+
              | dy_s |0.0.0.0 | nod | -Xmx10 | Warning | true    | fal | fal | none    | dyn |
              |erver |/ 9837  |e1   |24m     |         |         |se   |se   |         |amic |
              |_1    |        |     |        |         |         |     |     |         |(t1) |
              +------+--------+-----+--------+---------+---------+-----+-----+---------+-----+
              ================================================================================

동적으로 특정 서버의 설정을 변경한다.

  • 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 <true | false>]
              [-m,--mejb <true | false>]
              [-c,--classFtp <true | false>]
              [-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이 발생할 경우 취할 액션을 설정한다.

    다음 중에 하나를 설정한다.

    • AutoClose

    • NoAction

    • Warning

    [-l,--logStdoutToRawFormat <true | false>][동적 변경]stdout을 그대로 출력할 것인지 JEUS 로거 포맷으로 출력할 것인지 설정한다. (true | false)
    [-m,--mejb <true | false>][동적 변경] MEJB를 사용할지 여부를 설정한다. (true | false)
    [-c,--classFtp <true | false>][동적 변경] class FTP 서비스를 사용할지 여부를 설정한다. (true | false)
    [-f,--forceLock]설정 변경을 강제로 진행하여 반영한다.
    [-detail]동적 변경 결과에 대한 상세한 정보가 출력된다.
  • 예제

    [MASTER]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>]
              [-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 옵션 뒤에 아무 인자도 넘겨주지 않으면 된다.

    [-prefix,--serverNamePrefix <server-name-prefix>]

    서버의 이름 앞에 붙을 prefix를 변경한다.

    Prefix가 설정되지 않은 경우에는 클러스터 이름 뒤에 '_server_'를 불인다.

    [-template,--serverTemplateName <server-template-name>]동적(Dynamic) 서버들에게 공통적으로 적용될 설정 템플릿을 지정한다.
    [-step,--listenPortStep <listen-port-step>]같은 노드에 생성된 서버들의 포트 번호를 몇 씩 증가시킬지 변경한다.
    [-f,--forceLock]설정 변경을 강제로 진행하여 반영한다.
    [-detail]동적 변경 결과에 대한 상세한 정보가 출력된다.
  • 예제

    [MASTER]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-server [<server-name>]
              [-f,--forceLock]
              [-detail]
  • 파라미터

    파라미터설명
    [<server-name>]서버의 이름이다.
    [-f,--forceLock]설정 변경을 강제로 진행하여 반영한다.
    [-detail]동적 변경 결과에 대한 상세한 정보가 출력된다.
  • 예제

    • 현재 존재하는 서버 리스트 확인

      [MASTER]domain1.adminServer>server-info
                    Information about Domain (domain1)
                    ================================================================================
                    +--------+--------+-----+-----+-----+----------+-------+-----------+-----------+
                    | Server | Status |Node | PID | Clu |  Latest  |  Need |   Listen  |  Running  |
                    |        |        |Name |     |ster |  Start   |  to   |   Ports   |  Engines  |
                    |        |        |     |     |     |  Time /  |Restart|           |           |
                    |        |        |     |     |     | Shutdown |       |           |           |
                    |        |        |     |     |     |   Time   |       |           |           |
                    +--------+--------+-----+-----+-----+----------+-------+-----------+-----------+
                    | adminS | RUNNIN | nod | 237 | N/A | 2021-03- | false | base-0.0. | jms, web, |
                    |erver   |G(00:46 |e1   |60   |     |25 (목)   |       |0.0:9736   |ejb        |
                    |(*)     |:06)    |     |     |     |오후      |       | http-serv |           |
                    |        |        |     |     |     |01:13:48  |       |er-0.0.0.0 |           |
                    |        |        |     |     |     |KST       |       |:8088      |           |
                    +--------+--------+-----+-----+-----+----------+-------+-----------+-----------+
                    | server | RUNNIN | nod | 132 | N/A | 2021-03- | false | base-0.0. | jms, web, |
                    |1       |G(00:02 |e1   |75   |     |25 (목)   |       |0.0:9836   |ejb        |
                    |        |:45)    |     |     |     |오후      |       |           |           |
                    |        |        |     |     |     |01:13:48  |       |           |           |
                    |        |        |     |     |     |KST       |       |           |           |
                    +--------+--------+-----+-----+-----+----------+-------+-----------+-----------+
                    | server | SHUTDO | nod | N/A | N/A | N/A      | N/A   | N/A       | N/A       |
                    |2       |WN      |e1   |     |     |          |       |           |           |
                    +--------+--------+-----+-----+-----+----------+-------+-----------+-----------+
                    ================================================================================
    • 삭제할 서버가 종료되어 있는지 확인 후 삭제

      [MASTER]domain1.adminServer>remove-server server2
                    Successfully performed the REMOVE operation for server (server1).
                    Check the results using "list-servers or remove-server"

도메인 내 log 파일들의 소유자 및 권한을 설정한다. 도메인에 속해 있는 서버들의 로거 설정 중 로그 파일 소유자 및 권한 설정이 없을 경우 이 설정을 따르게 된다.

만약 로거의 소유자 또는 권한 설정이 따로 존재할 경우에는 이 설정보다는 해당 설정을 따르게 된다.

  • alias

    setdomainlog, setdomainlogcon, setdomainlogconfig

  • 사용법

    set-domain-log-config [-perm,--permission <permission>]
              [-own,--owner <chown>]
  • 파라미터

    파라미터설명
    [-perm,--permission <permission>]

    도메인 내 log 파일의 권한을 설정한다. 형식은 rwxrw-r-- 와 같이 입력하면 된다.

    POSIX 호환 OS에서만 사용가능한 설정이다.

    [-own,--owner <chown>]

    도메인 내 log 파일의 소유자를 설정한다. 형식은 소유자명,그룹 과 같이 입력하면 된다.

    만약 소유자명만 지정하고 싶을 경우에는 소유자명 만 입력하면 된다. 그룹만 지정하고 싶을 경우에는 ,그룹 과 같이 입력하면 된다.

  • 예제

    [MASTER]domain1.adminServer>set-domain-log-config -own user,tmax
              Successfully performed the MODIFY operation for Domain Log file configuration for domain1, but all changes were non-dynamic. They will be applied after restarting.
              Check the results using "show-domain-log-config or set-domain-log-config".
              [MASTER]domain1.adminServer>set-domain-log-config -own ,tmax -perm rwxrwxrwx
              Successfully performed the MODIFY operation for Domain Log file configuration for domain1, but all changes were non-dynamic. They will be applied after restarting.
              Check the results using "show-domain-log-config or set-domain-log-config".

서버에 장애가 생겼을 때, pack-domain에 의해 압축된 파일을 해제하는 명령어이다. 해당 도메인 설정에 JEUS Master Server의 동작 주소와 동작 포트 번호가 설정된 경우와 JEUS Master Server의 노드이름이 노드 설정에 설정된 경우 변경 여부를 설정할 수 있다.

  • alias

    unpackdomain

  • 사용법

    unpack-domain -p <file-path> | <domain-name>
              [-delete]
              [-overwrite]
              [-masterurl <master-url>]
              [-nodename <node-name>]
  • 파라미터

    파라미터설명
    -p <file-path>

    압축을 풀 파일의 경로이다.

    (예: JEUS_HOME/<domain-name>_packed.zip)

    <domain-name>

    압축을 풀 파일의 대상 도메인을 지정한다.

    압축을 풀 파일은 반드시 JEUS_HOME/backups 디렉터리 안에 있어야 한다.

    [-delete]Unpack을 하려는 대상 도메인이 DOMAIN_HOME에 이미 존재하면 기존 도메인을 삭제하고 unpack을 진행하도록 한다.
    [-overwrite]Unpack을 하려는 대상 도메인이 DOMAIN_HOME에 이미 존재하면 unpack하려는 도메인이 기존 도메인을 덮어쓰도록 한다.
    [-masterurl <master-url>]Unpack을 진행하는 domain.xml에 설정될 JEUS Master Server의 동작 주소를 설정한다.
    [-nodename <node-name>]Unpack을 진행하는 domain.xml에 설정될 JEUS Master Server의 노드 이름을 설정한다.
  • 예제

    offline>unpack-domain domain1
              The JEUS Master Server listener address is already set to [192.168.34.55]. Do you want to change it? (y/n): y
              Enter the JEUS Master Server base listener address: 192.168.34.56
              The JEUS Master Server listener port is already set to [9736]. Do you want to change it? (y/n): n
              The JEUS Master Server nodename is already set to [node1]. Do you want to change it? (y/n): y
              Enter the JEUS Master Server nodename: node2
              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-traceServlet Thread 또는 EJB RMI Thread의 Stack Trace를 출력한다.
show-service-thread-poolSystem Thread Pool에서 특정 서비스에 할당된 Thread의 정보를 조회한다.
show-system-thread-poolSystem 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>
                         <thread-id> | -wct | -ctx <web-context-name>
                         [-svg <Service Group Name>]
  • 파라미터

    파라미터설명
    -server <server-name>서버의 이름이다.
    <thread-id> | -wct | -ctx <web-context-name>시그널을 전송할 Thread의 ID이다.
    -wct인자없이 옵션을 주어야 하며, interrupt할 thread pool이 WebContainer 레벨의 thread pool인지 알려준다.
    -ctx <web-context-name>interrupt할 thread pool이 Context 레벨의 thread pool일 때, context name을 인자로 적어준다.
    -svg <Service Group Name>Context 레벨의 Thread Pool 이름이다. -ctx 옵션이 설정되었을 경우만 옵션을 줄 수 있다. -svg 옵션이 없을 경우 모든 Context 레벨의 Thread Pool을 interrupt한다.
  • 예제

    [MASTER]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>에 다음 중에 하나를 선택한다.

    • transaction

    • scheduler

    • namingserver

    <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>에 다음 중에 하나를 설정한다.

    • IgnoreAndReplace

    • Interrupt

    • None

    [-stcp,--stuckthreadcheckperiod <stuck-thread-check-period>][동적 변경] Thread들이 STUCK 상태임을 확인하는 주기를 설정한다. (단위: ms)
    [-f,--forceLock]설정 변경을 강제로 진행하여 반영한다.
    [-detail]동적 변경 결과에 대한 상세한 정보가 출력된다.
  • 예제

    [MASTER]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>에 다음 중에 하나를 선택한다.

    • IgnoreAndReplace

    • Interrupt

    • None

    [-stcp,--stuckthreadcheckperiod <stuck-thread-check-period>][동적 변경] Thread들이 STUCK 상태임을 확인하는 주기를 설정한다. (단위: ms)
    [-service <service-name>]

    System Thread Pool을 사용하는 서비스의 이름이다.

    <service name>에 다음 중에 하나를 선택한다.

    • transaction

    • scheduler

    • namingserver

    [-r,--reservednum <reserved-number>][동적 변경] System Thread Pool을 사용하는 서비스에 보장되는 최소 Thread 개수이다.
    [-f,--forceLock]설정 변경을 강제로 진행하여 반영한다.
    [-detail]동적 변경 결과에 대한 상세한 정보가 출력된다.
  • 예제

    [MASTER]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>
                      <thread-id> | -wct | -ctx <web-context-name>
                      [-svg <Service Group Name>]
  • 파라미터

    파라미터설명
    -server <server-name>서버의 이름이다.
    <thread-id> | -wct | -ctx <web-context-name>Thread의 ID이다.
    -wct인자없이 옵션을 주어야 하며, Stack Trace를 보여 줄 thread pool이 WebContainer 레벨의 thread pool인지 알려준다.
    -ctx <web-context-name>Stack Trace를 보여 줄 thread pool이 Context 레벨의 thread pool일 때, context name을 인자로 적어준다.
    -svg <Service Group Name>Context 레벨의 Thread Pool 이름이다. -ctx 옵션이 설정되었을 경우만 옵션을 줄 수 있다. -svg 옵션이 없을 경우 모든 Context 레벨의 Thread Pool의 Stack Thrace를 보여준다.
  • 예제

    [MASTER]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)

요청을 처리하는 Servlet Thread와 EJB RMI Thread의 정보 및 그 외의 JEUS Thread Pool들을 조회한다.

Servlet에서는 리스너의 Thread Pool과 각 작업 Thread(Worker Thread)에 대한 정보를 조회하며, EJB에서는 EJB 리모트 요청을 처리하는 EJB RMI Thread의 정보를 출력한다. 서버에서는 기본적으로 서버 Thread Pool에 대한 정보만을 조회하며 옵션에 따라 모든 Pool 정보를 볼 수도 있다. Batch 애플리케이션의 경우 Thread Pool을 설정했다면, 이 Thread Pool에 대한 정보를 조회하여 출력한다.

  • alias

    threadinfo, ti

  • 사용법

    thread-info -server <server-name>
                [-type <thread-type>] 
                [-ctx <web-context-name>] 
                [-r,--request | -a,--all] 
                [-s <thread-state>]
                [-os,--only-stats]
                [-st,--stacktrace]
  • 파라미터

    파라미터설명
    -server <server-name>서버의 이름이다.
    [-type <thread-type>]

    <thread-type>에 다음 중에 하나를 입력한다.

    • servlet : Servlet Thread

    • ejb : EJB RMI Thread

    • jms : JMS Thread

    • server : Server Thread Pool

    • batch : Batch 애플리케이션에서 사용되는 Thread Pool

    이외에도 -ctx 옵션이 지정된 경우 다음의 값을 입력한다.

    • context : Context Thread Pool

    • webasync : Servlet 3.0 Async Processing을 위한 Thread Pool

    • websocket : WebSocket Container의 Async Send를 위한 Thread Pool

    [-ctx <context-name>]

    특정 웹 컨텍스트를 지정한다. Asynchronout Servlet을 지정할 경우 Asynchronous Processing을 위한 Thread Pool의 정보를 보여준다.

    Servlet Thread에서만 유효하다.

    [-r,--request ]

    Servlet Thread의 요청 정보만을 확인한다.

    Servlet Thread에 대해서만 유효하다.

    [ -a,--all]Servlet에서는 Servlet Thread의 모든 정보를 확인하며 서버에서는 JEUS 내부적인 모든 pool의 정보 확인을 의미한다.
    [-s <thread-state>]

    특정 상태의 Thread만 조회하는 경우 그 상태를 입력한다.

    • active

    • idle

    • blocked

    • reconn

    [-os,--only-stats]Servlet에서는 각 리스너별 통계 정보만을 출력한다. 서버에서는 pool의 통계 정보만을 출력한다.
    [-st,--stacktrace]서버에서 조회한 Pool들에 속한 모든 Active Threads(실제 task를 부여받고 수행 중인 Thread)의 trace를 조회한다. 서버에서만 유효하다.
  • 예제

    [MASTER]domain1.adminServer>thread-info -server server1
    
    Thread information for the server [server1]
    There are no EJB RMI threads for the server [server1].
    There is no batch thread pool in server [server1].
    
    =============================================================
    The web engine threads for 'ADMIN-HTTP'.
    
    +----+------------------------------+--------+---------+----+
    | tid|             name             |  state | elapsed | uri|
    +----+------------------------------+--------+---------+----+
    | 45 | ADMIN-HTTP-w00               | waiting| 48521870|    |
    +----+------------------------------+--------+---------+----+
    
    elsapsed: Elapsed time (ms)
    =============================================================
    
    ===================================================================
    Thread statistics for the 'ADMIN-HTTP'.
    
    +---------------------------+------+-------+-----+--------+-------+
    |                           | total| active| idle| blocked| reconn|
    +---------------------------+------+-------+-----+--------+-------+
    | The number of threads.    |    1 |     0 |   1 |      0 |     0 | 
    +---------------------------+------+-------+-----+--------+-------+
    
    total = active + idle, reconn: reconnecting
    ===================================================================
    
    =====================================================
    The web engine threads for 'http1'.
    
    +------+--------------------+--------+---------+----+
    |  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)
    =====================================================
    
    ===================================================================
    Thread statistics for the 'http1'.
    
    +---------------------------+------+-------+-----+--------+-------+
    |                           | 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    |           |           |           |          |                   |
    +-----------+-----------+-----------+-----------+----------+-------------------+
    ================================================================================
    
    ==========================================================
    The threads for the 'chunk_checkpoint' thread pool.
    
    +-----+------+--------------+----------------------------+
    | tid | name | thread state |        active thread       |
    +-----+------+--------------+----------------------------+
    (No data available)
    ==========================================================
    
    ================================================================================
    The statistics for the 'chunk_checkpoint' thread pool.
    
    +-----------+-----------+-----------+-----------+----------+-------------------+
    | pool name |  minimum  |  maximum  |  current  |   work   |   remaining work  |
    |           | pool size | pool size | pool size |queue size|    queue size     |
    +-----------+-----------+-----------+-----------+----------+-------------------+
    | chunk_che |         0 |        10 |         0 |     4096 |              4096 |
    |ckpoint    |           |           |           |          |                   |
    +-----------+-----------+-----------+-----------+----------+-------------------+
    ================================================================================

애플리케이션 관련 명령어의 목록은 다음과 같다.

명령어설명
add-application-repository새로운 애플리케이션 저장소를 등록한다.
add-application-targetdeploy되어 있는 애플리케이션의 Target에 서버나 클러스터를 추가한다. 해당 서버나 클러스터에 해당 애플리케이션을 deploy한다. JEUS Master Server-Managed Server 구조에서만 수행 가능한 명령어이다.
application-info도메인에 존재하는 애플리케이션의 정보를 확인한다.
deploy-application

설치한 애플리케이션을 Target 서버로 deploy한다.

Target으로 지정된 서버 중 하나라도 deploy가 실패하면 성공한 서버에도 undeploy를 수행한다.

deploy-library설치되어 있는 라이브러리 파일을 서버나 클러스터를 대상으로 하여 배포한다.
deployment-plan-info설치되어 있는 Deployment Plan의 정보를 확인한다.
distribute-application

설치된 애플리케이션을 각 서버나 클러스터로 배포한다.

파일 배포 기능으로 실제 서비스를 위해서는 start-application 명령어로 애플리케이션을 시작해야 한다.

install-application애플리케이션을 설치한다. 애플리케이션의 ID를 정의할 수 있다.
install-deployment-planDeployment Plan을 설치한다. Deployment Plan의 식별자를 정의할 수 있다.
install-library라이브러리 파일을 설치한다.
library-info설치 및 배포한 라이브러리들에 대한 정보를 출력한다.
list-application-repositories등록되어 있는 애플리케이션 저장소들의 정보를 확인한다.
redeploy-application특정 애플리케이션을 다시 deploy한다.
remove-application-repository등록되어 있는 애플리케이션 저장소를 삭제한다.
remove-application-target특정 서버나 특정 클러스터에 deploy 또는 배포된 애플리케이션을 해당 서버나 클러스터에서 제거한다. JEUS Master Server-Managed Server 구조에서만 수행 가능한 명령어이다.
start-application배포된 애플리케이션의 서비스를 시작한다.
stop-application서비스 중인 애플리케이션을 정지시킨다.
undeploy-applicationdeploy된 애플리케이션을 undeploy한다.
uninstall-application설치되어 있는 애플리케이션을 제거한다.
uninstall-deployment-plan설치되어 있는 Deployment Plan을 제거한다.
undeploy-librarydeploy한 라이브러리를 undeploy한다.
uninstall-library설치되어 있는 라이브러리 파일을 삭제한다.

도메인에 존재하는 애플리케이션의 정보를 확인한다.

  • 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>에 다음 중 하나를 설정한다.

    • EAR

    • EJB

    • WAR

    • CAR

    • RAR

    [-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'라고 출력한다.

  • 예제

    • 기본적인 출력

      다음은 기본적인 출력 결과물이다.

      [MASTER]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'라고 표시한다.

      [MASTER]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]
                   [-exmaster,--excludeMaster]
                   [-vh,--virtualHost <virtual-host>]
                   [-svh,--systemVirtualHost]
                   [-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]
                   [-thn <thread-pool-name>]
                   [-tmin <thread-pool-min>]
                   [-tmax <thread-pool-max>]
                   [-tidle <thread-pool-maxIdleTimeout>]
                   [-qs <thread-pool-maxQueueCount>]
                   [-b <thread-pool base> | -uri <thread-pool-uri>]
                   [-ss,--sessionScope <scope-name>]
  • 파라미터

    파라미터설명
    [<application-id>]애플리케이션을 설치(install-application)할 때 입력한 애플리케이션의 ID이다. 한 개 이상의 애플리케이션을 deploy하려면 콤마(,)를 통해 ID를 구분한다. 파일 경로를 통해 distribute할 때도 애플리케이션에 ID를 부여할 수 있다. 이 경우에는 하나의 경로와 하나의 ID만 올 수 있다.
    [-path,--applicationPath <path>]애플리케이션을 설치하지 않고 파일 경로를 이용할 때 사용한다. JEUS Master Server와 같은 머신에 있는 파일만 가능하다.
    [-servers <server-list>]애플리케이션을 deploy할 서버들이다. 서버 이름은 콤마(,)로 구분한다.
    [-clusters <cluster-list>]애플리케이션을 deploy할 클러스터들이다. 클러스터 이름은 콤마(,)로 구분한다.
    [-all]도메인에 존재하는 모든 서버에 deploy할 때 지정한다.
    [-exmaster,--excludeMaster]all 옵션을 사용하는 경우 JEUS Master Server를 애플리케이션을 deploy할 대상 서버 목록에서 제외하고자 할 때 지정한다.
    [-vh,--virtualHost <virtual-host>]가상 호스트 주소이다. 웹 엔진에 설정한 가상 호스트 이름 중 하나를 선택한다. 웹 모듈에서만 동작한다.
    [-svh,--systemVirtualHost]애플리케이션을 시스템 가상 호스트에 배포한다.
    [-type,--applicationType <application-type>]

    애플리케이션의 종류를 지정한다.

    <application-type>에 다음 중 하나를 설정한다.

    • EAR

    • EJB

    • WAR

    • CAR

    • RAR

    옵션을 주지 않더라도 DD나 Annotation을 통해 자동으로 지정될 수 있다.

    [-cl,--classloading <classloading-mode>]

    클래스 로딩 형식을 지정한다.

    <classloading-mode>에 다음 중 하나를 설정한다.

    • SHARED

    • ISOLATED (기본값)

    [-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을 현재 버전에 맞는 형식으로 바꿔주기 위한 옵션이다.
    [-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할지 여부를 설정한다.
    [-thn <thread-pool name>]애플리케이션 관련 요청을 처리할 Thread Pool 이름을 설정한다. command로는 하나의 Context Thread Pool만 설정할 수 있다. 해당 옵션을 적용할 경우 -tmin, -tmax 옵션은 필수 값이다.
    [-tmin <thread-pool min>]Context Thread Pool에서 Worker Thread를 유지해야 하는 최소 개수를 설정한다.
    [-tmax <thread-pool max>]Context Thread Pool에서 Worker Thread를 유지해야 하는 최대 개수를 설정한다.
    [-tidle <thread-pool max-idle-time>]Context Thread Pool에서 제거되기 전에 Idle 상태로 머물러 있는 Worker Thread의 최대 시간을 설정한다.
    [-qs <thread-pool max-queue>]Context Thread Pool에서 Queue에 대기할 수 있는 최대 요청값을 설정한다.
    [-b <thread-pool base> | -uri <thread-pool uri>]추가하고자 하는 Thread Pool이 base인지 Service Group인지 구분하고자 옵션을 추가해야 한다. -b 옵션을 줄 경우 base Thread Pool로 인식하고, 아무 옵션도 안 줄 경우에는 Service Group Thread Pool을 생성하고 uri에는 Empty String이 들어간다. 하나 이상의 uri를 설정하려면 스페이스 없이 ','로 구분해서 넣는다.
    [-ss,--sessionScope <scope-name>]application이 포함될 scope를 지정한다.
  • 예제

    [MASTER]domain1.adminServer>deploy-application myApp -servers server1 
    deploy the application for the application [myApp] succeeded.

설치되어 있는 애플리케이션을 각 서버나 클러스터로 배포한다. 파일 배포 기능으로써 실제 서비스를 위해서는 start-application 명령어로 애플리케이션을 시작해야 한다.

  • alias

    distributeapp, distapp, distribute

  • 사용법

    distribute-application [<application-id>]
                   [-path,--applicationPath <path>]
                   [-servers <server-list>]
                   [-clusters <cluster-list>]
                   [-all]
                   [-exmaster,--excludeMaster]
                   [-vh,--virtualHost <virtual-host>]
                   [-svh,--systemVirtualHost]
                   [-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>]애플리케이션을 설치하지 않고 파일 경로를 이용할 때 사용한다. JEUS Master Server와 같은 머신에 있는 파일만 가능하다.
    [-servers <server-list>]애플리케이션을 설치할 서버들이다. 서버 이름은 콤마(,)로 구분한다.
    [-clusters <cluster-list>]애플리케이션을 설치할 클러스터들이다. 클러스터 이름은 콤마(,)로 구분한다.
    [-all]도메인에 존재하는 모든 서버에 설치할 때 지정한다.
    [-exmaster,--excludeMaster]all 옵션을 사용하는 경우 JEUS Master Server를 애플리케이션을 deploy할 대상 서버 목록에서 제외하고자 할 때 지정한다.
    [-vh,--virtualHost <virtual-host>]가상 호스트 주소로 웹 엔진에 설정한 가상 호스트 이름 중 하나를 선택한다. 웹 모듈에서만 동작한다.
    [-svh,--systemVirtualHost]애플리케이션을 시스템 가상 호스트에 배포한다.
    [-type,--applicationType <application-type>]

    애플리케이션의 종류를 지정한다.

    <application-type>에 다음 중 하나를 설정한다.

    • EAR

    • EJB

    • WAR

    • CAR

    • RAR

    옵션을 주지 않더라도 DD나 Annotation을 통해 자동으로 지정될 수 있다.

    [-cl,--classloading <classloading-mode>]

    클래스 로딩 형식을 지정한다.

    <classloading-mode>에 다음 중 하나를 설정한다.

    • SHARED

    • ISOLATED(기본값)

    [-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을 현재 버전에 맞는 형식으로 바꿔주기 위한 옵션이다.
    [-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할지 여부를 설정한다.
  • 예제

    [MASTER]domain1.adminServer>distribute-application myApp -servers server1
    distribute the application for the application [myApp] succeeded.

특정 애플리케이션을 다시 deploy한다.

  • alias

    redepapp, redeploy

  • 사용법

    redeploy-application <application-id>
                         [-path,--uploadPath <application-upload-path>]
                         [-masterPath,--pathManuallyInstalled
                         <application-source-path-in-master>]
                         [-to <graceful-timeout>]
                         [-f,--force]
                         [-distonly,--distributeOnly]
                         [-plan,-deploymentPlanName <deployment-plan-name>]
                         [-lib,--libraryId <library-IDs>]
                         [-version,--libraryVersion <library-versions>]
                         [-u,--upgrade]
  • 파라미터

    파라미터설명
    <application-id>애플리케이션의 ID이다. 한 개 이상의 애플리케이션을 redeploy하려면 콤마(,)로 구분한다.
    [-path, --uploadPath <application-upload-path>]변경된 애플리케이션의 파일 경로이다. 파일 재설치 동작을 포함한다.
    [-masterPath, --pathManuallyInstalled <application-source-path-in-master>]JEUS Master Server 머신에서 접근가능한 변경된 애플리케이션의 로컬 파일 경로이다. 설치하는 작업을 포함하지 않는다.
    [-to <graceful-timeout>]Graceful undeploy의 타임아웃 값이다. (단위: 초)
    [-f,--force]기존의 애플리케이션이 계속 서비스되도록 한다.
    [-distonly,--distributeOnly]새 애플리케이션을 서비스하지 않고 각 서버로의 설치까지만 진행한다.
    [-plan,-deploymentPlanName <deployment-plan-name>]Deployment Plan 파일의 이름을 설정하기 위한 옵션이다.
    [-lib,--libraryId <library-IDs>]애플리케이션이 참조할 라이브러리들을 지정한다. 여러 라이브러리를 지정할 경우 콤마(,)로 구분한다.
    [-version,--libraryVersion <library-versions>]참조할 라이브러리들에 대한 버전을 지정한다. 여러 라이브러리를 지정할 경우 콤마(,)로 구분한다.
    [-u,--upgrade]새 애플리케이션이 갖고 있는 DD를 현재 버전에 맞게 업그레이드한다. 이 옵션은 path 옵션이나 masterPath 옵션을 사용하여 새 애플리케이션 경로를 지정하였을 경우에만 동작한다.
  • 예제

    [MASTER]domain1.adminServer>redeploy-application myApp
    redeploy application on JEUS Master Server 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]
                         [-rss,--removeSessionScope]
  • 파라미터

    파라미터설명
    <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할지 여부를 설정한다.
    [-rss,--removeSessionScope]설정한 scope에서 application을 제거한다.
  • 예제

    [MASTER]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)

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 정보를 확인한다.

웹 엔진 관련 명령어는 크게 다음과 같이 2가지로 구분할 수 있다.

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>
                         -conn <connection-count>
                         [-hth <hth-count>]
                         [-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 커넥터의 이름이다.
    -conn <connection-count>WebtoB와 연결할 Connection 갯수이다.
    [-hth <hth-count>]hth process의 갯수이다.
    -ver <wjp-version>WebtoB와 통신할 때 사용하는 프로토콜 버전을 나타낸다. 1 또는 2를 입력한다.
    -addr <server-address>WebtoB 서버 주소이다. -port 사용할 때 필수 옵션이다.
    -port <server-port>WebtoB 서버 포트 번호이다.
    -regid <registration-id>WebtoB와의 등록 ID이다.
    -dsocketUnix 도메인 소켓(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 -conn 10 -hth 2 -regid MyGroup -port 9999 -addr localhost

웹 엔진의 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>]
       [-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 컴파일러를 지정한다.

    다음 중에 하나를 설정한다.

    • java6 (기본값)

    • sun.tools.javac

    • javac

    • com.sun.tools.javac

    • eclipse

    각 값들에 대한 설명은 스키마를 참고한다. 기본값으로 설정하는 것이 가장 효율적이기 때문에 별도의 설정을 하지 않는 것을 권장한다.

    [-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을 이용하여 설정한 값을 삭제할 수 있다.

    [-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

가상 호스트의 액세스 로그 포맷 설정을 변경한다. 만약 가상 호스트의 액세스 로그가 enable 상태가 아닐 경우 실제로 서비스에 적용하려면 서버를 재시작해야 한다.

  • 관련 스키마

    web-engine.xsd - web-engine/virtual-host

  • alias

    modvh

  • 사용법

    modify-virtual-host [-cluster <cluster-name> | -server <server-name>]
                        [-f, --forceLock]
                        <virtual-host-name>
                        [-tmin <minimum-thread-num>]
                        [-tmax <maximum-thread-num>]
                        [-tidle <max-idle-time>]
                        [-aluph <true | false>|
                         -alf <access-log-format> | 
                         -aluse <true | false> |
                         -alhnl <true | false> |
                         -alext <access-log-excluded-extensions>]
                        [-hnrm <host-name> | -hnadd <host-name>]
                        [-ast <attach-stacktrace-on-error>]
                        [-fhn <access-log-handler-file-handler-name>]
                        [-fhp <access-log-handler-file-handler-permission>]

  • 파라미터

    파라미터설명
    [-f, --forceLock]설정 변경을 강제로 진행하여 반영한다.
    <virtual-host-name>가상 호스트의 이름이다.
    [-tmin <minimum-thread-num>][동적 변경] Thread Pool의 최소 Thread 수이다.
    [-tmax <maximum-thread-num>][동적 변경] Thread Pool의 최대 Thread 수이다.
    [-tidle <max-idle-time>]Thread Pool의 Thread별 유후 대기 시간이다.
    -aluph <true | false>

    [동적 변경] 웹 엔진 액세스 로그에 남길지 여부를 지정한다.

    (true | false 또는 t | f)

    [-alf <access-log-format>]

    [동적 변경] 액세스 로그 포맷이다. 중간에 스페이스 문자가 있는 경우 큰따옴표(" ")로 감싸야 한다.

    포맷에 관한 자세한 사항은 JEUS Web Engine 안내서”의 절 1.6.10. “액세스 로그 포맷 설정”을 참고한다.

    -aluse <true | false>

    [동적 변경] 액세스 로그 사용 여부를 지정한다.

    (true | false 또는 t | f)

    -alhnl <true | false>[동적 변경] %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를 첨부할지 여부를 설정한다.
    [-fhn <access-log-handler-file-handler-name>]Permission을 수정할 file-handler의 이름이다. -fhp를 사용할 때 필수 옵션이다.
    [-fhp <access-log-handler-file-handler-permission>]Log 파일의 접근 권한 설정인 Permission을 수정한다. -fhn을 사용할 때 필수 옵션이다.
  • 예제

    modify-virtual-host -server server1 vhost1 -tmin 1 -tmax 20 -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 <true | false>]
                                   [-alhnl <true | false>]
                                   [-alext <access-log-excluded-extensions>]
                                   [-ast <attach-stacktrace-on-error>]
                                   [-att <async-timeout-min-threads>]
                                   [-rerp | -erp <default-error-page>]
                                   [-tmin <minimum-thread-num>]
                                   [-tmax <maximum-thread-num>]
                                   [-tidle <max-idle-time>]
                                   [-fhn <access-log-handler-file-handler-name>]
                                   [-fhp <access-log-handler-file-handler-permission>]

  • 파라미터

    파라미터설명
    [-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 <true | false>]

    [동적 변경] 액세스 로그 사용 여부를 지정한다.

    (true | false 또는 t | f)

    [-alhnl <true | false>][동적 변경] %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를 이용하여 설정을 삭제할 수 있다.
    [-tmin <minimum-thread-num>] [동적 변경] Thread Pool의 최소 Thread 수이다.
    [-tmax <maximum-thread-num>][동적 변경] Thread Pool의 최대 Thread 수이다.
    [-tidle <max-idle-time>]Thread Pool의 Thread별 유후 대기 시간이다.
    [-fhn <access-log-handler-file-handler-name>]Permission을 수정할 file-handler의 이름이다. -fhp를 사용할 때 필수 옵션이다.
    [-fhp <access-log-handler-file-handler-permission>]Log 파일의 접근 권한 설정인 Permission을 수정한다. -fhn을 사용할 때 필수 옵션이다.
  • 예제

    • [-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
    • WebContainer 레벨의 Thread Pool을 변경한 예

      modify-web-engine-configuration -server server1 -tmin 30 -tmax 60 -tidle 50000

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>
                            [-conn <connection-count>]
                            [-hth <hth-count>]
                            [-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 커넥터의 이름이다.
    [-conn <connection-count>][동적 변경]WebtoB와 연결할 Connection 갯수이다.
    [-hth <hth-count>]hth process의 갯수이다.
    [-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가 설치된 절대 경로이다. -dsocket을 사용할 때 설정할 수 있다.
    [-ipcport <ipc-base-port>]Windows 환경에서 WebtoB의 내부 프로세스간 통신을 할 때 사용하는 기본 포트 번호이다. -dsocket을 사용할 때 설정할 수 있다.
    [-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 -conn 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> | -id <application-id>]
                   [-e <excluded-jsp-list-file> | -l <included-jsp-list-file>]
  • 파라미터

    파라미터설명
    [-ctx <context-name>]웹 컨텍스트 이름을 설정한다. EAR 안에 있는 경우 ear-name#context-name으로 입력한다.
    [-id <application-id>]웹 컨텍스트가 포함된 애플리케이션의 ID를 설정한다. EAR 안에 있는 경우엔 설정할 수 없으며, -ctx 옵션을 사용해야한다.
    [-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
  • 참고

    본 명령어는 서버에 접속하지 않은 상태에서도 사용할 수 있다.

일시 중지된 웹 컴포넌트(서블릿)를 재시작한다.

  • 관련 스키마

    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

웹 엔진에 대한 설정 정보를 조회한다. 이 명령어를 실행하여 조회되는 구성 항목과 필드들에 대한 정보는 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]
                                  [-tp --thread-pool
  • 파라미터

    파라미터설명
    [-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의 추가 여부 설정 정보를 출력한다.
    [-tp,--thread-pool]Web Container에서 사용하는 Thread Pool 정보를 출력한다.
  • 예제

    • 웹 엔진 설정 모두 조회

      show-web-engine-configuration -server server1
    • 옵션별 웹 엔진 설정 조회

      show-web-engine-configuration -erp -att -server server1
      
      show-web-engine-configuration -server server1 -sc -tp

지정한 서블릿을 중지하여 클라이언트로 에러 페이지를 보여주도록 한다.

  • 관련 스키마

    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-sessionidle 시간 기준으로 정렬된 세션들의 정보를 보여준다.
    remove-session세션 타임아웃과 무관하게 입력한 타임아웃 동안 access가 없는 세션들을 제거할 때 사용한다.
    show-session-server-backup-table세션 서버의 현재 backup table 정보를 보여준다.
  • 설정 변경 관련 명령어

    세션 설정을 추가, 삭제, 수정할 수 있는 명령어들이다. 설정 변경 사항들은 XML에는 적용하지만 실제 운영 중인 서비스(메모리 영역)에 적용하지 않는다. XML만 변경되는 것이며 실제로 서비스에 적용하려면 서버를 재시작해야 한다.

    명령어설명
    show-session-configuration세션 관련 설정 정보를 확인한다.
    modify-session-configuration세션 관련 설정 정보를 확인하고 수정한다.
  • 세션 서버 관련 명령어

    세션 스토리지 설정을 할 수 있는 명령어들이다. 설정 후 서버를 재시작해야 설정내용들이 적용된다.

    명령어설명
    list-sessionstorages현재 존재하는 세션 스토리지의 목록을 보여준다.
    add-sessionstorage세션 서버에 세션 스토리지를 추가한다. 여러 개의 세션 스토리지가 있는 경우 이름은 중복 되서는 안된다.
    remove-sessionstorage세션 서버에서 세션 스토리지를 제거한다.
    rename-sessionstorage세션 스토리지의 이름을 변경한다.
    set-sessionstorage-property세션 스토리지의 프로퍼티를 추가/변경한다.
    remove-sessionstorage-property세션 스토리지의 프로퍼티를 제거한다.
    add-sessionstorage-scope세션 스토리지에 스코프를 추가한다. 여러 개의 스코프가 있는 경우 다른 스코프와 중복되면 안된다. DOMAIN_WIDE 클러스터 모드를 사용하는 경우 DOMAIN_WIDE로 설정하면 해당 스코프를 사용할 수 있다.
    set-sessionstorage-scope스코프에 포함될 application이나 cluster를 변경한다.
    remove-sessionstorage-scope세션 스토리지에서 스코프를 제거한다.
    set-sessionstorage-scope-session-config스코프에 포함된 컨텍스트에서 사용될 세션 관련 설정을 한다.
    list-sessionserver-property세션 서버의 프로퍼티 목록을 보여준다.
    set-sessionserver-property세션 서버의 프로퍼티를 추가/변경한다.
    remove-sessionserver-property세션 서버의 프로퍼티를 제거한다.

세션 관련 설정 정보를 수정한다.

  • 관련 스키마

    jeus-session-server.xsd, jeus-session-domain.xsd

  • alias

    setsc, msc

  • 사용법

    modify-session-configuration [-server <server-name>]
              [-f,--forceLock]
              [-to,--timeout <int timeout>]
              [-mc,--max-session-count <int limit count>]
              [-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>]
              [-sucn,--session-cookie.url-cookie-name <string url-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>]
              [-sca,--session-cookie.same-site <string same-site>]
              [-scc,--session-cookie.comment <string comment>] 
  • 파라미터

    파라미터설명
    [-server <server-name>]웹 엔진에 설정된 세션 설정을 변경한다.
    [-f, --forceLock]설정 변경을 강제로 진행하여 반영한다.
    [-to,--timeout <int timeout>]session-config의 세션 타임아웃을 설정한다.
    [-mc,--max-session-count <int maxCount>]저장할 세션의 최대 갯수를 설정한다.
    [-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>]세션 쿠키의 이름을 설정한다.
    [-sucn,--session-cookie.url-cookie-name <string url-cookie-name>]url rewriting을 사용하여 세션을 전달할 때 해당 세션 쿠키의 이름을 설정한다.
    [-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 요청에 의해서만 세션 쿠키를 사용할지를 결정한다.
    [-sca,--session-cookie.same-site <string same-site>]세션 ID 쿠키가 사용자 의도와 상관없는 요청에 쓰이는 공격(사이트 간 요청위조)을 방지하는 보안기술을 설정한다.
    [-scc,--session-cookie.comment <string comment>]쿠키 버전이 1일 때에 해당 세션 쿠키의 설명을 설정한다.
  • 예제

    • [-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            

스코프에 포함된 컨텍스트에서 사용될 세션 관련 설정을 할 수 있다.

  • 관련 스키마

    jeus-session-server.xsd, jeus-session-domain.xsd

  • alias

    setsessionstoragescopesessionconfig, setssssc, setsessionstorscopesc

  • 사용법

    set-sessionstorage-scope-session-config <scope-name>
                                      [-timeout <timeout>]
                                      [-shared <shared>]
                                      [-msc, --max-session-count <limit-count>]
                                      [-rp, --reload-persistent <reload-persistent>]
                                      [-tm, --tracking-mode <tracking-mode>]
                                      [-sc, --session-cookie <session-cookie>]
  • 파라미터

    파라미터설명
    <scope-name>세션관련 설정을 할 스코프의 이름이다.
    [-timeout <timeout>]session-config의 세션 타임아웃을 설정한다. (기본값: 30)
    [-shared <shared>]session-config의 SHARED 모드를 설정한다. (기본값: false)
    [-msc, --max-session-count <limit-count>]저장할 세션의 최대 갯수를 설정한다. (기본값: -1(무제한))
    [-rp, --reload-persistent <reload-persistent>]session-config의 Reload Persistent를 설정한다. (기본값: false)
    [-tm, --tracking-mode <tracking-mode>]

    추가하거나 변경할 property이다. 이미 key가 설정되어 있다면 property의 value를 변경하고, 없다면 새로 추가한다.

    property에 들어갈 수 있는 key는 다음과 같다.

    • cookie : session-config의 트래킹 모드 중 쿠키를 설젛한다. value의 type은 Boolean이다. (기본값: true)

    • url : session-config의 트래킹 모드 중 URL rewriting 설젛한다. value의 type은 Boolean이다. (기본값: false)

    • ssl : session-config의 트래킹 모드 중 SSL를 설젛한다. value의 type은 Boolean이다. (기본값: false)

    [-sc, --session-cookie <session-cookie>]

    추가하거나 변경할 property이다. 이미 key가 설정되어 있다면 property의 value를 변경하고, 없다면 새로 추가한다.

    property에 들어갈 수 있는 key는 다음과 같다.

    • cookie-name : 쿠키를 사용하여 세션을 전달할 때 해당 세션 쿠키의 이름을 설정한다. value의 type은 String이다. (기본값: JSESSIONID)

    • url-cookie-name : url rewriting을 사용하여 세션을 전달할 때 해당 세션 쿠키의 이름을 설정한다. value의 type은 String이다. (기본값: jsessionid)

    • version : 쿠키 ID 버전을 설정한다. value의 type은 Integer이다. (기본값: 0)

    • domain : 세션 쿠키가 적용되는 도메인 이름을 설정한다. value의 type은 String이다. 한 글자 이상의 문자열이여야 한다.

    • path : 세션 쿠키가 적용되는 경로를 설정한다. value의 type은 String이다. 한 글자 이상의 문자열이여야 한다.

    • max-age : 브라우저에서 세션 쿠키의 유지 시간을 결정한다. value의 type은 Integer이다. (기본값: -1)

    • secure : 세션 ID 쿠키의 Secure 속성을 설정한다. true로 설정하면 세션 ID 쿠키는 오직 Secure HTTPS 커넥션으로 보내진다. value의 type은 Boolean이다. (기본값: false)

    • http-only : 브라우저가 HTTP 요청에 의해서만 세션 쿠키를 사용할지를 결정한다. value의 type은 Boolean이다. (기본값: true)

    • same-site : 세션 ID 쿠키가 사용자 의도와 상관없는 요청에 쓰이는 공격(사이트 간 요청위조)을 방지하는 보안기술을 설정한다. value의 Type은 [None, Strict, Lax, Disable] 중 하나이다.

    • comment : 해당 쿠키에 대한 목적 또는 설명을 기록한다. value의 type은 String이다. 한 글자 이상의 문자열이여야 한다.

  • 예제

    set-sessionstorage-scope-session-config scope1 -timeout 20 
    -shared true -session-cookie secure=true,http-only=true,path=/ -tracking-mode cookie=true

JMS 엔진 명령어는 다음과 같다.

명령어설명
ban-jms-client지정된 JMS 클라이언트와의 연결을 강제로 끊는다.
add-jms-connection-factory새로운 Connection Factory를 추가한다.
add-jms-destination새로운 Destination을 추가한다.
add-jms-durable-subscription새로운 Durable Subscription을 추가한다.
add-jms-message-sort새로운 Message Sort를 추가한다.
add-jms-quota새로운 Quota를 추가한다.
add-jms-service-config새로운 Service Config를 추가한다.
commit-jms-pending-transaction지정된 pending 트랜잭션을 강제로 commit한다.
control-jms-destination지정된 Destination의 서비스 상태를 제어한다.
control-jms-durable-subscription지정된 Durable Subscription의 서비스 상태를 제어한다.
delete-jms-messages지정된 Destination 안의 지정된 메시지를 삭제한다.
export-jms-messages지정된 Destination 안의 지정된 메시지를 XML 형태로 내보낸다.
import-jms-messages지정된 Destination로 내보내진 XML 형태의 메시지를 가져온다.
list-jms-clients접속 중인 클라이언트 목록을 조회하고 정보를 출력한다.
list-jms-connection-factoriesConnection Factory 목록을 조회하거나 지정된 Conntection Factory의 정보를 출력한다.
list-jms-destinationsDestination 목록을 조회하거나 지정된 Destination 정보를 출력한다.
list-jms-durable-subscriptionsDurable Subscription 목록을 조회한다.
list-jms-message-sortsMessage Sort 목록을 조회한다.
list-jms-messages지정된 Destination 안의 메시지 정보를 조회한다.
list-jms-pending-transactionspending 트랜잭션 목록을 출력한다.
list-jms-quotasQuota 목록을 조회하거나 지정된 Quota 정보를 출력한다.
list-jms-service-configsService Config 목록을 조회하거나 지정된 Service Config 정보를 출력한다.
modify-jms-connection-factory지정된 Connection Factory 정보를 수정한다.
modify-jms-destination지정된 Destination 정보를 수정한다.
modify-jms-durable-subscription지정된 Durable Subscription 정보를 수정한다.
modify-jms-message-sort지정된 Message Sort 정보를 수정한다.
modify-jms-quota지정된 Quota 정보를 수정한다.
modify-jms-service-config지정된 Service Config 정보를 수정한다.
move-jms-messages지정된 Destination 안의 지정된 메시지를 주어진 Destination으로 옮긴다.
remove-jms-connection-factory지정된 Connection Factory를 제거한다.
remove-jms-destination지정된 Destination을 제거한다.
remove-jms-durable-subscription지정된 Durable Subscription을 제거한다.
remove-jms-message-sort지정된 Message Sort를 제거한다.
remove-jms-quota지정된 Quota를 제거한다.
remove-jms-service-config지정된 Service Config를 제거한다.
set-jms-engine-quotaJMS 엔진의 Quota를 설정한다.
set-jms-failover-checkFailover 전 JMS 엔진의 생존 여부 확인을 위한 옵션을 설정한다.
set-jms-persistence-storeJMS 엔진의 Persistence Store를 설정한다.
view-jms-message지정된 메시지의 상세한 정보를 조회한다.

동적으로 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을 결정한다.

    다음 중에 하나를 설정한다.

    • nonxa

    • xa

    • queue

    • topic

    • xaqueue

    • xatopic

    -name <factory-name>

    새로 생성할 Connection Factory의 이름을 입력한다.

    이 이름은 JMS 엔진 내에서 다른 Connection Factory와 중복되지 않도록 주의한다.

    [-export <export-name>]

    새로 생성할 Connection Factory의 JNDI 이름을 입력한다.

    이 이름은 JEUS JNDI 서버 내에서 다른 객체와 중복되지 않도록 주의한다.

    [-clientid <client-id>]Connection Factory로부터 생성한 커넥션에 부여할 클라이언트 ID를 입력한다.
  • 예제

    [MASTER]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'.
    [MASTER]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 엔진에 새로운 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과 동일한 값이 지정된다.

  • 예제

    [MASTER]domain1.adminServer>add-jms-destination -server adminServer -type queue -name MyQueue
    Executed Successfully.
    View the results using 'list-jms-destinations -server adminServer -name MyQueue'.
    [MASTER]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 엔진에 새로운 Durable Subscription을 추가한다.

  • alias

    add-durable, adddur, createdur

  • 사용법

    add-jms-durable-subscription -cluster <cluster-name> | -server <server-name>
                                 -clientid <client-id>
                                 -name <durable-subscription-name>
                                 -topic <topic-name>
                                 [-shared]
  • 파라미터

    파라미터설명
    -cluster <cluster-name> | -server <server-name>Durable Subscription이 속할 클러스터 또는 서버를 지정한다.
    -clientid <client-id>subscribe 하게 될 client의 id를 지정한다.
    -name <durable-subscription-name>

    새로 생성할 Durable Subscription의 이름을 입력한다.

    이 이름은 JMS 엔진 내에서 다른 Durable Subscription과 중복되지 않도록 주의한다.

    -topic <topic-name>Durable Subscription에 대한 Topic의 이름을 입력한다.
    [-shared]Shared 형태의 Durable Subscription을 생성할 경우 사용하는 옵션이다.
  • 예제

    [MASTER]domain1.adminServer>add-jms-durable-subscription -server adminServer -clientid testClient -name testDurable -topic testTopic
    Executed Successfully.
    View the results using 'list-jms-durable-subscriptions -server adminServer'.
    [MASTER]domain1.adminServer>list-jms-durable-subscriptions -server adminServer
    Durable Subscription Information
    ================================================================================
    +--------------+-----------+--------+------------------+-----------------------+
    | Durable Name | Client ID | Shared | Message Selector |   Remaining Messages  |
    +--------------+-----------+--------+------------------+-----------------------+
    | testDurable  | testClient| false  |                  |                     0 |
    +--------------+-----------+--------+------------------+-----------------------+
    ================================================================================

JMS 엔진에 새로운 Message Sort를 추가한다.

  • alias

    add-message-sort, addmsgsort

  • 사용법

    add-jms-message-sort -server <server-name>
                         -name <message-sort-name>
                         -key <key>
                         [-type <type>]
                         -direction <direction>
  • 파라미터

    파라미터설명
    -server <server-name>Message Sort가 속할 서버를 지정한다.
    -name <message-sort-name>

    새로 생성할 Message Sort의 이름을 입력한다.

    이 이름은 JMS 엔진 내에서 다른 Message Sort와 중복되지 않도록 주의한다.

    -key <key>메시지 정렬의 기준이 되는 Key를 입력한다.
    [-type <type>]Key의 타입을 입력한다.
    -direction <direction>메시지 정렬 순서를 입력한다.
  • 예제

    [MASTER]domain1.adminServer>add-jms-message-sort -server adminServer -name testSort -key JMSPriority -type Integer -direction Ascending
    Executed successfully, but some configurations were not applied dynamically. It might be necessary to restart the server.
    View the results using 'list-jms-message-sorts -server adminServer -name testSort'.
    [MASTER]domain1.adminServer>list-jms-message-sorts -server adminServer -name testSort
    Detailed Message Sort Information
    =============================================================
    testSort
    
    +---------------------------------------------+-------------+
    | Message Sort Name                           | testSort    |
    | Key                                         | JMSPriority |
    | Type                                        | INTEGER     |
    | Direction                                   | ASCENDING   |
    +---------------------------------------------+-------------+
    =============================================================
    

JMS 엔진에 새로운 서비스를 추가한다.

  • alias

    add-service-config, addjmsservice

  • 사용법

    add-jms-service-config -server <server-name>
                           -name <service-name>
                           [-limit <client-limit>]
                           [-timeout <client-keepalive-timeout>]
                           [-listener <listener>]
                           [-virtual]
                           [-address <address>]
                           [-port <port>]
  • 파라미터

    파라미터설명
    -server <server-name>서비스가 속할 서버를 지정한다.
    -name <service-name>

    새로 생성할 서비스의 이름을 입력한다.

    이 이름은 JMS 엔진 내에서 다른 서비스와 중복되지 않도록 주의한다.

    [-limit <client-limit>]허용 되는 client의 최대값을 입력한다 .
    [-timeout <client-keepalive-timeout>]비정상 종료 될 때 재연결을 기다릴 시간을 입력한다.
    [-listener <listener>]서비스의 Listener를 입력한다 .
    [-virtual]Virtual Listener를 선택할 경우 사용하는 옵션이다 .
    [-address <address>]Virtual Listener의 address를 입력한다 .
    [-port <port>]Virtual Listener의 port를 입력한다.
  • 예제

    [MASTER]domain1.adminServer>add-jms-service-config -server adminServer -name testService -limit 1000 -timeout 30 -listener base
    Executed Successfully.
    View the results using 'list-jms-service-configs -server adminServer -name testService'.
    [MASTER]domain1.adminServer>list-jms-service-configs -server adminServer -name testService
    Detailed Service Config Information
    ===================================================================
    testService
    
    +---------------------------------------------------+-------------+
    | Service Config Name                               | testService |
    | Client Limit                                      |        1000 |
    | Client Keepalive Timeout                          |          30 |
    | Listener Name                                     | base        |
    +---------------------------------------------------+-------------+
    ===================================================================
    

JMS 엔진에서 특정 Durable Subscription의 상태를 제어한다.

  • alias

    control-durable, durctrl

  • 사용법

    control-jms-durable-subscription -cluster <cluster-name> | -server <server-name>
                                     -name <durable-subscription-name>
                                     -suspend | -resume
  • 파라미터

    파라미터설명
    -cluster <cluster-name> | -server <server-name>Durable Subscription이 속한 클러스터 또는 서버를 지정한다.
    -name <durable-subscription-name>제어할 Durable Subscription의 이름이다.
    -suspend | -resume

    제어할 Durable Subscription의 상태이다.

    • suspend : 해당 Durable Subscription의 서비스가 일시 정지된다.

    • resume : 해당 Durable Subscription의 서비스가 재개된다.

  • 예제

    [MASTER]domain1.adminServer>control-jms-durable-subscription -server adminServer -name testDS -suspend
    Executed Successfully
    View the results using 'list-jms-durable-subscriptions -server adminServer'.
    [MASTER]domain1.adminServer>list-jms-durable-subscriptions -server adminServer
    Durable Subscription Information
    ================================================================================
    +----------+-------+--------+------------+---------------------+---------------+
    |  Durable |Client | Shared |   Message  |  Remaining Messages |   Suspended   |
    |   Name   |  ID   |        |  Selector  |      (current)      |   (current)   |
    +----------+-------+--------+------------+---------------------+---------------+
    | testDS   | testDS| false  |            |                   0 | true          |
    +----------+-------+--------+------------+---------------------+---------------+
    ================================================================================
    

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가 존재하는 경우 덮어 쓴다.
  • 예제

    [MASTER]domain1.adminServer>list-jms-messages -server adminServer -dest ExamplesQueue
    There are no messages in ExamplesQueue.
    
    [MASTER]domain1.adminServer>import-jms-messages -server adminServer -dest ExamplesQueue -path exported.xml
    Successfully imported 5 of 5 messages.
    [MASTER]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         |
    +----------------------------+--------------+--------------------------------------+
    ====================================================================================

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에 관한 간략한 정보가 출력된다.
  • 예제

    [MASTER]domain1.adminServer>list-jms-connection-factories -server adminServer
    Connection Factory Information
    ================================================================================
    +-------------------------------------+--------------------------------+-------+
    |             Factory Name            |           Export Name          |  Type |
    +-------------------------------------+--------------------------------+-------+
    | ConnectionFactory                   | ConnectionFactory              | nonxa |
    | XAConnectionFactory                 | XAConnectionFactory            | xa    |
    +-------------------------------------+--------------------------------+-------+
    ================================================================================
    
    [MASTER]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 엔진에 등록되어 있는 모든 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에 대한 간략한 정보가 출력된다.
  • 예제

    [MASTER]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 
    ================================================================================
    
    [MASTER]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 엔진에 등록되어 있는 모든 Message Sort의 목록을 조회하거나 지정한 Message Sort의 정보를 출력한다.

  • alias

    list-message-sorts, msgsort

  • 사용법

    list-jms-destinations -server <server-name>
                          [-name <message-sort-name>] 
  • 파라미터

    파라미터설명
    -server <server-name>Message Sort가 속한 서버를 지정한다.
    [-name <message-sort-name>]정보를 출력할 Message Sort의 이름이다. 지정하지 않으면 모든 Message Sort에 대한 간략한 정보가 출력된다.
  • 예제

    [MASTER]domain1.adminServer>list-jms-message-sorts -server adminServer 
    Message Sort Information
    =============================================================
    +-----------------------------------+-------------+---------+
    |         Message Sort Name         |     Key     |   Type  |
    +-----------------------------------+-------------+---------+
    | testSort                          | JMSPriority | INTEGER |
    +-----------------------------------+-------------+---------+
    =============================================================
    
    [MASTER]domain1.adminServer>list-jms-message-sorts -server adminServer -name testSort 
    Detailed Message Sort Information
    =============================================================
    testSort
    
    +---------------------------------------------+-------------+
    | Message Sort Name                           | testSort    |
    | Key                                         | JMSPriority |
    | Type                                        | INTEGER     |
    | Direction                                   | DESCENDING  |
    +---------------------------------------------+-------------+
    =============================================================

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>]특정 시점 이전에 들어온 메시지를 선택할 때 그 시점을 지정한다.
  • 예제

    [MASTER]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       |
    +-----------------------------+-------------+------------------------------------+
    ==================================================================================

JMS 엔진에 등록되어 있는 모든 서비스의 목록을 조회하거나 지정한 서비스의 정보를 출력한다.

  • alias

    list-service-config, jmsservice

  • 사용법

    list-jms-service-configs -server <server-name>
                             [-name <service-name>] 
  • 파라미터

    파라미터설명
    -server <server-name>서비스가 속한 서버를 지정한다.
    [-name <service-name>]정보를 출력할 서비스의 이름이다. 지정하지 않으면 모든 서비스에 대한 간략한 정보가 출력된다.
  • 예제

    [MASTER]domain1.adminServer>list-jms-service-configs -server adminServer 
    Service Config Information
    ================================================================================
    +------------------------------+---------------------+-------------------------+
    |      Service Config Name     |    Listener Name    |     Virtual Listener    |
    +------------------------------+---------------------+-------------------------+
    | default                      | jms                 |                         |
    | testService                  | base                |                         |
    +------------------------------+---------------------+-------------------------+
    ================================================================================
    
    [MASTER]domain1.adminServer>list-jms-service-configs -server adminServer -name testService
    Detailed Service Config Information
    ===================================================================
    testService
    
    +---------------------------------------------------+-------------+
    | Service Config Name                               | testService |
    | Client Limit                                      |        1000 |
    | Client Keepalive Timeout                          |          30 |
    | Listener Name                                     | base        |
    +---------------------------------------------------+-------------+
    ===================================================================

지정된 Connection Factory의 정보를 수정한다.

  • alias

    modify-connection-factory, modifyconf

  • 사용법

    modify-jms-connection-factory -server <server-name>
                                  -name <factory-name>
                                  [-type <factory-type>]
                                  [-service <service-name>]
                                  [-export <export-name>]
                                  [-clientid <client-id>]
                                  [-policy <server-selection-policy>]
                                  [-time <request-blocking-time>]
                                  [-re <reconnect-enabled>]
                                  [-period <reconnect-period>]
                                  [-interval <reconnect-interval>]
  • 파라미터

    파라미터설명
    -server <server-name>대상이 되는 서버를 입력한다.
    -name <factory-name>

    수정할 Connection Factory의 이름을 입력한다.

    [-type <factory-type>]

    Connection Factory의 type을 입력한다.

    다음 중에 하나를 설정한다.

    • nonxa

    • xa

    • queue

    • topic

    • xaqueue

    • xatopic

    [-service <service-name>]

    Connection Factory의 서비스를 입력한다.

    [-export <export-name>]

    Connection Factory의 JNDI 이름을 입력한다.

    이 이름은 JEUS JNDI 서버 내에서 다른 객체와 중복되지 않도록 주의한다.

    [-clientid <client-id>]Connection Factory로부터 생성한 커넥션에 부여할 클라이언트 ID를 입력한다.
    [-policy <server-selection-policy>]

    커넥션을 생성할 때 채널 선택을 결정하는 정책을 입력한다.

    다음 중에 하나를 설정한다.

    • Round-robin

    • Random

    [-time <request-blocking-time>]클라이언트에서 응답을 기다리는 시간을 입력한다.
    [-re <reconnect-enabled>]연결이 끊어질 때 재연결 여부를 입력한다.
    [-period <reconnect-period>]재연결을 시도할 최대 시간을 입력한다.
    [-interval <reconnect-interval>]재연결을 시도할 때 시간 간격을 입력한다.
  • 예제

    [MASTER]domain1.adminServer>modify-jms-connection-factory -server adminServer -name MyConnectionFactory -type xa -service testService -export MyCF -clientid MyId -policy Random
    Executed successfully, but some configurations were not applied dynamically. It might be necessary to restart the server.
    View the results using 'list-jms-connection-factories -server adminServer -name MyConnectionFactory'.
    [MASTER]domain1.adminServer>list-jms-connection-factories -server adminServer -name MyConnectionFactory
    Detailed Connection Factory Information
    ====================================================================
    MyConnectionFactory
    
    +--------------------------------------------+---------------------+
    | Factory Name                               | MyConnectionFactory |
    | Export Name                                | MyCF                |
    | Type                                       | xa                  |
    | Client ID                                  | MyId                |
    | Max Client Session Threads                 |                 100 |
    | Clustered                                  | false               |
    | Server Selection Policy                    | Random              |
    +--------------------------------------------+---------------------+
    ====================================================================
    
    ================================================================================
    +------------------------------------------------------------------------------+
    |                                   Addresses                                  |
    +------------------------------------------------------------------------------+
    | 192.168.13.13:9736(JMSServiceChannel-testService)                            |
    +------------------------------------------------------------------------------+
    ================================================================================
    

지정된 Destination의 정보를 수정한다.

  • alias

    modify-destination, modifydest

  • 사용법

    modify-jms-destination -cluster <cluster-name> | -server <server-name>
                           -name <destination-name>
                           [-type <destination-type>]
                           [-export <export-name>]
                           [-subLimit <subscription-limit>]
                           [-quota <quota>]
                           [-pendLimit <max-pending-limit>]
                           [-dispatch <resume-dispatch-factor>]
                           [-sort <message-sort>]
                           [-deadLetter <dead-letter-destination>]
                           [-policy <expiration-policy>]
                           [-delay <redelivery-delay>]
  • 파라미터

    파라미터설명
    -cluster <cluster-name | -server <server-name>수정할 Destination이 속한 클러스터 또는 서버를 입력한다.
    -name <destination-name>수정할 Destination의 이름을 입력한다.
    [-type <destination-type>]

    Destination의 type을 입력한다. (queue 또는 topic)

    [-export <export-name>]

    Destination의 JNDI 이름을 입력한다.

    이 이름은 JEUS JNDI 서버 내에서 다른 객체와 중복되지 않도록 주의한다.

    [-subLimit <subscription-limit>]

    Destination에 접근가능한 Consumer의 최대값을 입력한다.

    [-quota <quota>]

    Destination의 메시지 데이터 제한을 위한 Quota를 입력한다.

    [-pendLimit <max-pending-limit>]

    ACKNOWLEDGE를 수신하지 않은 메시지의 최대 허용 범위를 입력한다.

    [-disptach <resume-dispatch-factor>]

    Pending 메시지가 다시 Dispatch 될 수 있는 인수를 입력한다.

    [-sort <message-sort>]

    Destination에 적용 될 Message Sort를 입력한다.

    [-deadLetter <dead-letter-destination>]

    처리 되지 못한 메시지들을 보관 할 Destination의 이름을 입력한다.

    [-policy <expiration-policy>]

    만료된 메시지들을 처리할 방법을 입력한다.

    다음 중에 하나를 설정한다.

    • Delete

    • Redirect

    [-delay <redelivery-delay>]

    메시지가 재전송 되기까지의 지연시간을 입력한다.

  • 예제

    [MASTER]domain1.adminServer>modify-jms-destination -server adminServer 
    -name MyQueue -type topic -export MyTopic -deadLetter ExamplesTopic
    Executed successfully, but some configurations were not applied dynamically. It might be necessary to restart the server.
    View the results using 'list-jms-destinations -server adminServer -name MyQueue'.
    [MASTER]domain1.adminServer>list-jms-destinations -server adminServer -name MyQueue
    Detailed destination information in Server adminServer
    ======================================================================
    MyQueue
    
    +----------------------------------------------------+---------------+
    | Export Name                                        | MyTopic       |
    | Type                                               | Topic         |
    | Dead Letter Destination                            | ExamplesTopic |
    | Consumer Count                                     |             0 |
    | Processed Messages                                 |             0 |
    | Remaining Messages (current)                       |             0 |
    | Remaining Messages (high mark)                     |             0 |
    | Pending Messages                                   | -             |
    | Dispatched Messages                                | -             |
    | Delivered Messages                                 |             0 |
    | Expired Messages                                   |             0 |
    | Moved Messages                                     | -             |
    | Removed Messages                                   | -             |
    | Poisoned Messages                                  |             0 |
    | Memory Usage (current)                             | 0kb           |
    | Memory Usage (high mark)                           | 0kb           |
    | Production Suspended                               | false         |
    | Consumption Suspended                              | false         |
    +----------------------------------------------------+---------------+
    ======================================================================
    

지정된 Durable Subscription의 정보를 수정한다.

  • alias

    modify-durable-subscription, modify-durable, modifydur

  • 사용법

    modify-jms-durable-subscription -cluster <cluster-name> | -server <server-name>
                                    -name <durable-subscription-name>
                                    [-clientid <client-id>]
                                    [-topic <topic-name>]
                                    [-shared <shared>]
                                    [-selector <message-selector>]
                                    [-sort <message-sort>]
  • 파라미터

    파라미터설명
    -cluster <cluster-name> | -server <server-name>수정할 Durable Subscription이 속한 클러스터 또는 서버를 입력한다.
    -name <durable-subscription-name>

    수정할 Durable Subscription의 이름을 입력한다.

    [-clientid <client-id>]subscribe 하게 될 client의 id를 지정한다.
    [-topic <topic-name>]Durable Subscription에 대한 Topic의 이름을 입력한다.
    [-shared <shared>]Durable Subscription의 Shared 여부를 입력한다.
    [-selector <message-selector>]Durable Subscription에 대한 Message Selector의 이름을 입력한다.
    [-sort <message-sort>]Durable Subscription에 대한 Message Sort의 이름을 입력한다.
  • 예제

    [MASTER]domain1.adminServer>modify-jms-durable-subscription -server adminServer
    -name testDS -clientid testClientID -shared false -selector TESTNO>=1
    Executed successfully, but some configurations were not applied dynamically. It might be necessary to restart the server.
    View the results using 'list-jms-durable-subscriptions -server adminServer'.
    [MASTER]domain1.adminServer>list-jms-durable-subscriptions -server adminServer
    Durable Subscription Information
    ================================================================================
    +---------+---------+--------+------------+---------------------+--------------+
    | Durable |  Client | Shared |   Message  |  Remaining Messages |   Suspended  |
    |   Name  |   ID    |        |  Selector  |      (current)      |  (current)   |
    +---------+---------+--------+------------+---------------------+--------------+
    | testDS  | testCli | false  | TESTNO>=1  |                   0 | false        |
    |         |entID    |        |            |                     |              |
    +---------+---------+--------+------------+---------------------+--------------+
    ================================================================================

지정된 서비스의 정보를 수정한다.

  • alias

    modify-service-config, modifyjmsservice

  • 사용법

    modify-jms-service-config -server <server-name>
                              -name <service-name>
                              [-limit <client-limit>]
                              [-timeout <client-keepalive-timeout>]
                              [-listener <listener>]
                              [-virtual]
                              [-address <address>]
                              [-port <port>]
  • 파라미터

    파라미터설명
    -server <server-name>수정할 서비스가 속한 서버를 지정한다.
    -name <service-name>

    수정할 서비스의 이름을 입력한다.

    [-limit <client-limit>]허용 되는 client의 최대값을 입력한다 .
    [-timeout <client-keepalive-timeout>]비정상 종료 될 때 재연결을 기다릴 시간을 입력한다.
    [-listener <listener>]서비스의 Listener를 입력한다 .
    [-virtual]Virtual Listener를 선택할 경우 사용하는 옵션이다 .
    [-address <address>]Virtual Listener의 address를 입력한다 .
    [-port <port>]Virtual Listener의 port를 입력한다.
  • 예제

    [MASTER]domain1.adminServer>modify-jms-service-config -server adminServer 
    -name testService -limit 2000 -timeout 100
    Executed successfully, but some configurations were not applied dynamically. It might be necessary to restart the server.
    View the results using 'list-jms-service-configs -server adminServer -name testService'.
    [MASTER]domain1.adminServer>list-jms-service-configs -server adminServer -name testService
    Detailed Service Config Information
    ===================================================================
    testService
    
    +---------------------------------------------------+-------------+
    | Service Config Name                               | testService |
    | Client Limit                                      |        2000 |
    | Client Keepalive Timeout                          |         100 |
    | Listener Name                                     | base        |
    +---------------------------------------------------+-------------+
    ===================================================================

지정된 메시지를 클러스터나 서버 내의 다른 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을 지정한다.
  • 예제

    [MASTER]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 
    ================================================================================
    
    [MASTER]domain1.adminServer>move-jms-messages -server adminServer -dest ExamplesQueue -all -target MyQueue
    Successfully moved all messages from ExamplesQueue to MyQueue is successful
    [MASTER]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 
    ================================================================================

동적으로 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의 이름이다.
  • 예제

    [MASTER]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    |
    +-------------------------------------+--------------------------------+-------+
    ================================================================================
    
    [MASTER]domain1.adminServer>remove-jms-connection-factory -server adminServer -name MyConnectionFactory
    Executed Successfully.
    View the results using 'list-jms-connection-factories -server adminServer'.
    [MASTER]domain1.adminServer>list-jms-connection-factories -server adminServer
    Connection Factory information
    ================================================================================
    +-------------------------------------+--------------------------------+-------+
    |             Factory Name            |           Export Name          |  Type |
    +-------------------------------------+--------------------------------+-------+
    | ConnectionFactory                   | ConnectionFactory              | nonxa |
    | XAConnectionFactory                 | XAConnectionFactory            | xa    |
    +-------------------------------------+--------------------------------+-------+
    ================================================================================

동적으로 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의 이름이다.
  • 예제

    [MASTER]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 
    ==============================================================================
    
    [MASTER]domain1.adminServer>remove-jms-destination -server adminServer -name MyQueue
    Executed Successfully.
    View the results using 'list-jms-destinations -server adminServer'.
    [MASTER]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 엔진에서 특정 Durable Subscription을 제거한다.

  • alias

    remove-durable, deletedur, removedur

  • 사용법

    remove-jms-durable-subscription -cluster <cluster-name> | -server <server-name>
                                    -name <durable-subscription-name>
  • 파라미터

    파라미터설명
    -cluster <cluster-name> | -server <server-name>Durable Subscription이 속한 클러스터 또는 서버를 지정한다.
    -name <durable-subscription-name>제거할 Durable Subscription의 이름이다.
  • 예제

    [MASTER]domain1.adminServer>list-jms-durable-subscriptions -server adminServer
    Durable Subscription Information
    ================================================================================
    +--------------+-----------+--------+------------------+-----------------------+
    | Durable Name | Client ID | Shared | Message Selector |   Remaining Messages  |
    +--------------+-----------+--------+------------------+-----------------------+
    | testDurable1 | client1   | false  |                  |                     5 |
    | testDurable2 | client2   | false  |                  |                     0 |
    +--------------+-----------+--------+------------------+-----------------------+
    ================================================================================
    
    [MASTER]domain1.adminServer>remove-jms-durable-subscription -server adminServer -name testDurable2
    Executed Successfully.
    View the results using 'list-jms-durable-subscriptions -server adminServer'.
    [MASTER]domain1.adminServer>list-jms-durable-subscriptions -server adminServer
    Durable Subscription Information
    ================================================================================
    +--------------+-----------+--------+------------------+-----------------------+
    | Durable Name | Client ID | Shared | Message Selector |   Remaining Messages  |
    +--------------+-----------+--------+------------------+-----------------------+
    | testDurable1 | client1   | false  |                  |                     5 |
    +--------------+-----------+--------+------------------+-----------------------+
    ================================================================================

JMS 엔진에서 특정 Message Sort를 제거한다.

  • alias

    remove-message-sort, removemsgsort

  • 사용법

    remove-jms-message-sort -server <server-name>
                            -name <message-sort-name>
  • 파라미터

    파라미터설명
    -server <server-name>Message Sort가 속한 서버를 지정한다.
    -name <message-sort-name>제거할 Message Sort의 이름이다.
  • 예제

    [MASTER]domain1.adminServer>list-jms-message-sorts -server adminServer
    Message Sort Information
    =============================================================
    +----------------------------------+--------------+---------+
    |         Message Sort Name        |      Key     |   Type  |
    +----------------------------------+--------------+---------+
    | testSort                         | JMSMessageID | STRING  |
    | testSort2                        | JMSPriority  | INTEGER |
    +----------------------------------+--------------+---------+
    =============================================================
    
    [MASTER]domain1.adminServer>remove-jms-message-sort -server adminServer -name testSort2
    Executed successfully, but some configurations were not applied dynamically. It might be necessary to restart the server.
    View the results using 'list-jms-message-sorts -server adminServer'.
    [MASTER]domain1.adminServer>list-jms-message-sorts -server adminServer
    Message Sort Information
    =============================================================
    +-----------------------------------+--------------+--------+
    |         Message Sort Name         |      Key     |  Type  |
    +-----------------------------------+--------------+--------+
    | testSort                          | JMSMessageID | STRING |
    +-----------------------------------+--------------+--------+
    =============================================================

JMS 엔진에서 특정 Service Config를 제거한다.

  • alias

    remove-service-config,deletejmsservice, removejmsservice

  • 사용법

    remove-jms-service-config -server <server-name>
                              -name <service-name>
  • 파라미터

    파라미터설명
    -server <server-name>서비스가 속한 서버를 지정한다.
    -name <service-name>제거할 서비스의 이름이다.
  • 예제

    [MASTER]domain1.adminServer>list-jms-service-configs -server adminServer
    Service Config Information
    ================================================================================
    +------------------------------+---------------------+-------------------------+
    |      Service Config Name     |    Listener Name    |     Virtual Listener    |
    +------------------------------+---------------------+-------------------------+
    | default                      | jms                 |                         |
    | testService                  | base                |                         |
    +------------------------------+---------------------+-------------------------+
    ================================================================================
    
    [MASTER]domain1.adminServer>remove-jms-service-config -server adminServer -name testService
    Executed successfully, but some configurations were not applied dynamically. It might be necessary to restart the server.
    View the results using 'list-jms-service-configs -server adminServer'.
    [MASTER]domain1.adminServer>list-jms-service-configs -server adminServer
    Service Config Information
    ================================================================================
    +------------------------------+---------------------+-------------------------+
    |      Service Config Name     |    Listener Name    |     Virtual Listener    |
    +------------------------------+---------------------+-------------------------+
    | default                      | jms                 |                         |
    +------------------------------+---------------------+-------------------------+
    ================================================================================

JMS 엔진의 Persistent Object들을 위한 Store 정보를 설정한다.

  • alias

    set-jms-store, set-persistence-store, setjmsstore

  • 사용법

    set-jms-persistence-store -server <server-name>
                              -none | -journal | -jdbc
                              [-dir <base-dir>]
                              [-init <initial-log-file-count>]
                              [-max <max-log-file-count>]
                              [-size <log-file-size>]
                              [-dest <destination-table>]
                              [-durSub <durable-subscription-table>]
                              [-property <property>]
                              [-source <data-source>]
                              [-msg <message-table>]
                              [-subMsg <subscription-message-table>]
                              [-tx <transaction-table>]
  • 파라미터

    파라미터설명
    -server <server-name>설정할 JMS 엔진이 속한 서버를 지정한다.
    -none | -journal | -jdbcStore의 타입을 선택하는 옵션이다.
    [-dir <base-dir>]Journal Store를 설정할 디렉터리를 입력한다 .
    [-init <initial-log-file-count>]Journal Store를 생성할 때 초기에 생성할 로그 파일의 개수를 입력한다.
    [-max <max-log-file-count>]Journal Store의 최대 로그 파일의 개수를 입력한다.
    [-size <log-file-size>]Journal Store의 로그 파일의 크기를 입력한다.
    [-dest <destination-table>]Journal과 JDBC Store의 Destination 테이블 이름을 입력한다.
    [-durSub <durable-subscription-table>]Journal과 JDBC Store의 Durable Subscription 테이블 이름을 입력한다.
    [-property <property>]Journal Store의 추가적인 설정을 입력한다.
    [-source <data-source>]JDBC Store의 Data Source를 입력한다.
    [-msg <message-table>]JDBC Store의 Message 테이블 이름을 입력한다.
    [-subMsb <subscription-message-table>]JDBC Store의 Subscription 테이블 이름을 입력한다.
    [-tx <transaction-table>]JDBC Store의 Transaction 테이블 이름을 입력한다.
  • 예제

    [MASTER]domain1.adminServer>set-jms-persistence-store -server adminServer 
    -journal -dir store -init 5 -max 50 -size 256M -dest ADMIN_DEST -durSub ADMIN_DS
    Executed successfully, but some configurations were not applied dynamically. It might be necessary to restart the server.
    View the results using 'set-jms-persistence-store -server adminServer'.
    [MASTER]domain1.adminServer>set-jms-persistence-store -server adminServer
    Persistence Store Information
    ====================================================================
    Persistence Store
    
    +-----------------------------------------------------+------------+
    | Persistence Store Type                              | Journal    |
    | Base Dir                                            | store      |
    | Initial Log File Count                              |          5 |
    | Max Log File Count                                  |         50 |
    | Log File Size                                       | 256M       |
    | Destination Table                                   | ADMIN_DEST |
    | Durable Subscription Table                          | ADMIN_DS   |
    | Property                                            |            |
    +-----------------------------------------------------+------------+
    ====================================================================
    

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를 지정한다.
  • 예제

    [MASTER]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               |
    +--------------------+--------------+--------------------------------------------+
    ==================================================================================
    
    [MASTER]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                                              |
    +------------------+-----------------------------------------------------------+
    ================================================================================

데이터소스 관리 및 설정 변경, 설정 확인 등의 기능을 제공한다. 명령어들의 목록은 다음과 같다.

명령어설명
add-cluster-data-source클러스터 데이터소스를 도메인에 동적으로 추가한다.
add-data-source데이터소스를 도메인에 동적으로 추가한다.
list-cluster-data-sources도메인에 존재하는 모든 클러스터 데이터소스의 목록을 조회한다. 특정 데이터소스의 ID를 명시할 경우 해당 클러스터 데이터소스의 설정을 자세히 조회한다.
list-data-sources도메인에 존재하는 모든 데이터소스의 목록을 조회한다. 특정 데이터소스의 ID를 명시할 경우 해당 데이터소스의 설정을 자세히 조회한다.
modify-cluster-data-source클러스터 데이터소스의 설정을 변경한다. 대부분의 설정이 동적으로 변경 가능하다.
modify-data-source데이터소스의 설정을 변경한다. 일부 설정은 동적으로 변경 가능하다.
remove-cluster-data-source클러스터 데이터소스를 도메인으로부터 동적으로 삭제한다.
remove-data-source데이터소스를 도메인으로부터 동적으로 삭제한다.
test-data-source-config데이터소스의 설정이 올바른지 확인한다.

클러스터 데이터소스를 도메인에 동적으로 추가한다.

  • alias

    addcds

  • 사용법

    add-cluster-data-source [-id,--dataSourceID <data-source-id>]
                            [-en,--exportName <export-name>]
                            [-dss,--dataSourceSelector <data-source-selector>]
                            [-lb,--loadBalance <true | false>]
                            [-ipc,--isPreConn <is-pre-conn>]
                            [-ufb,--useFailback <use-failback>]
                            [-cds,--componentDataSources <component-data-sources>]
                            [-oc,--onsConfig <ons-config>]
                            [-dsa,--dataSourceAffinity <data-source-affinity>]
                            [-f,--forceLock]
                            [-detail]
  • 파라미터

    파라미터설명
    [-id,--dataSourceID <data-source-id>]클러스터 데이터소스의 ID이다. 하나의 도메인에서 클러스터 데이터소스 ID는 클러스터 데이터소스의 유일한 식별자로서 동작하도록 설정해야 한다.
    [-en,--exportName <export-name>]

    클러스터 데이터소스의 JNDI 이름을 설정한다. 서로 다른 두 데이터소스가 서로 다른 서버에 JNDI 바인드되는 것을 보장할 수 있으면 해당 데이터소스들은 서로 같은 JNDI 이름을 가질 수 있다. 이는 임의의 서버에서 동일한 JNDI 이름을 가지는 서로 다른 데이터소스를 허용하지 않음을 의미한다.

    설정되지 않으면 클러스터 데이터소스 ID를 JNDI 이름으로 사용한다.

    콤마(,)를 구분자로 사용하여 여러 개 입력할 수 있으며, 이 경우 구분자로 구분 된 어떠한 값을 사용하여도 JNDI lookup이 가능하다.

    [-dss,--dataSourceSelector <data-source-selector>]

    클러스터 데이터소스로부터 커넥션을 얻을 때 사용자나 개발자가 특정 컴포넌트 데이터소스 선택에 대한 정책을 직접 정의할 수 있다. jeus.jdbc.helper.DataSourceSelector 추상 클래스를 상속하여 구현하고 그 구현 클래스의 패키지 이름을 포함하는 이름을 적어준다. 이것을 설정하면 --loadBalance 설정은 아무런 기능을 하지 않으며 failover와 failback을 무조건 시도한다.

    • failover는 이 설정을 통하여 최초 선택된 컴포넌트 데이터소스 다음 인덱스의 컴포넌트 데이터소스를 시작으로 하여 한 번만 라운딩하는 방식으로 이루어진다.

    • failback은 Use Failback을 설정하는 경우 Failback이 수행되는 방식과 유사하게 이루어진다. 정책을 정의할 때는 대체로 동기화를 고려해야 하며 이는 구현자의 몫이다.

    [-lb,--loadBalance <true | false>]

    load balancing 여부를 설정한다.

    • true : --useFailback 설정은 아무런 기능을 하지 않게 된다.

    [-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
    [-dsa,--dataSourceAffinity <data-source-affinity>]트랜잭션 사용 중 데이터소스에 대한 Affinity 설정 여부를 정한다. 이 설정이 켜지면 트랜잭션 처리가 하나의 멤버 데이터소스 인스턴스에 한정하여 이루어져 글로벌 트랜잭션은 처리 성능 향상을 도모할 수 있고, XA Emulation을 설정한 로컬 트랜잭션도 클러스터 데이터소스 사용 간 보장 될 수 있다.
    [-f,--forceLock]설정 변경을 강제로 진행하여 반영한다.
    [-detail]변경 결과에 대한 상세 정보가 출력된다.
  • 예제

    [MASTER]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

    addds

  • 사용법

    add-data-source [-id,--dataSourceID <data-source-id>]
                 [-user,--user <user>]
                 [-pw,--password <password>]
                 [-algorithm,--algorithm <algorithm>]
                 [-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 <true | false>]
                 [-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 <true | false>]
                 [-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>]
                 [-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는 데이터소스의 유일한 식별자로서 동작하도록 설정해야 한다.
    [-user,--user <user>]데이터베이스 사용자의 ID를 설정한다. 트랜잭션 처리 등을 위해서는 충분한 권한을 가지고 있어야 한다.
    [-pw,--password <password>]데이터베이스 사용자의 패스워드를 설정한다. 패스워드를 암호화해서 저장할 때에는 '{algorithm:keysize}ciphertext' 와 같은 형식으로 쓴다.
    [-algorithm,--algorithm <algorithm>]

    [동적 변경] 데이터베이스 사용자 패스워드의 알고리듬을 설정한다.

    algorithm 옵션은 password 옵션과 함께 사용될 때에만 의미가 있다.

    다음의 알고리듬을 사용할 수 있다.

    • base64

    • DES

    • DESede

    • AES

    • SEED

    • Blowfish

    [-ac,--autoCommit < TRUE | FALSE | DRIVER> ]

    데이터소스의 기본 auto-commit 설정으로 다음 중에 하나를 설정한다.

    • TRUE

    • FALSE

    • DRIVER : DRIVER로 설정하면 JEUS는 auto-commit 설정에 관여하지 않으며 JDBC 드라이버의 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 컴포넌트 - Servlet/JSP, stateless Session Bean, MDB)에서 사용하고 제대로 반환하지 않은 JDBC 커넥션을 감지했을 때 JEUS가 취하는 액션을 정의한다.

    다음의 값 중에 하나를 설정한다. 설정하지 않을 경우 서버의 설정을 따른다.

    • NO_ACTION : 아무런 액션을 취하지 않는다.

    • WARNING : 설정하면 반환되지 않은 JDBC 커넥션 정보를 로그로 남긴다.

    • AUTO_CLOSE : 반환되지 않은 JDBC 커넥션 정보를 로그로 남기며 해당 JDBC 커넥션을 회수한다.

    [-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 <true | false>]

    Connection Pool에 사용 가능한 커넥션이 없고 커넥션도 더 이상 늘릴 수 없을 때 커넥션 요청을 처리하는 방법을 결정한다.

    • true : 이용 가능한 커넥션을 얻기 위해 기다린다.

    • false : 새로운 커넥션을 만들어서 제공하지만 그 커넥션은 반환되었을 때 Pooling되지 않고 버려진다. 이를 일회용(disposable) 커넥션이라고도 한다.

    [-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에 있는 다른 커넥션들에 대한 처리 정책을 설정한다.

    • FAILED_CONNECTION_ONLY : 유효하지 않은 것으로 확인된 커넥션만 제거한다.

    • ALL_CONNTECTIONS : 유효하지 않은 것으로 확인된 커넥션을 제거하고 Connection Pool에 있는 다른 커넥션의 유효성을 한 번 더 확인한다. 그조차 유효하지 않은 것으로 확인되면 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 <true | false>]

    커넥션과 관련된 부가 정보 제공 여부를 결정한다.

    • false : --getConnectionTrace와 --autoCommitTrace가 모두 무효하다.

    [-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 이름으로 사용한다.

    콤마(,)를 구분자로 사용하여 여러 개 입력할 수 있으며, 이 경우 구분자로 구분 된 어떠한 값을 사용하여도 JNDI lookup이 가능하다.

    [-dscn,--dataSourceClassName <data-source-class-name>]JDBC 드라이버 데이터소스 클래스의 이름을 설정한다. 패키지 이름을 포함하는 완전한 형태로 적는다.
    [-dst,--dataSourceType <data-source-type>]

    데이터소스의 타입을 설정한다.

    • DATA_SOURCE : Connection Pooling 서비스는 제공되지 않는다.

    • CONNECTION_POOL_DATA_SOURCE : Connection Pooling 서비스가 제공된다.

    • XA_DATA_SOURCE : Connection Pooling 서비스와 더불어 XA 연동이 지원된다.

    [-vendor,--vendor <vendor>]JDBC 드라이버 벤더의 이름을 설정한다.
    [-desc,--description <description>]데이터소스에 대한 설명이다.
    [-sn,--serverName <server-name>]데이터베이스가 실행되는 호스트 이름 또는 IP를 설정한다.
    [-pn,--portNumber <port-number>]데이터베이스 리스너의 포트 번호를 설정한다.
    [-dn,--databaseName <database-name>]

    데이터베이스의 이름을 설정한다.

    Oracle의 경우 데이터베이스의 SID를 설정한다.

    [-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]변경 결과에 대한 상세 정보가 출력된다.
  • 예제

    [MASTER]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"

도메인에 존재하는 모든 클러스터 데이터소스의 목록을 조회한다. 특정 데이터소스의 ID를 명시할 경우 해당 클러스터 데이터소스의 설정을 자세히 조회한다.

  • alias

    listcds, lscds

  • 사용법

    list-cluster-data-sources [-id,--dataSourceID <data-source-id>]
  • 파라미터

    파라미터설명
    [-id,--dataSourceID <data-source-id>]클러스터 데이터소스 ID이다.
  • 예제

    [MASTER]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]                      |
    +--------------------+-----------------------+---------------------------------+
    ================================================================================
    
    [MASTER]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]                        |
    +------------------------------------------+-----------------------------------+
    ================================================================================

도메인에 존재하는 모든 데이터소스의 목록을 조회한다. 특정 데이터소스의 ID를 명시할 경우 해당 데이터소스의 설정을 자세히 조회한다.

  • alias

    listds, lsds

  • 사용법

    list-data-sources [-id,--dataSourceID <data-source-id>]
  • 파라미터

    파라미터설명
    [-id,--dataSourceID <data-source-id>]데이터소스 ID이다.
  • 예제

    [MASTER]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             |
    +----------------+----------------------+--------------------------------------+
    ================================================================================
    
    [MASTER]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

    modifycds

  • 사용법

    modify-cluster-data-source -id,--dataSourceID <data-source-id>
                               [-en,--exportName <export-name>]
                               [-dss,--dataSourceSelector <data-source-selector>]
                               [-lb,--loadBalance <true | false>]
                               [-ipc,--isPreConn <is-pre-conn>]
                               [-ufb,--useFailback <use-failback>]
                               [-cds,--componentDataSources <component-data-sources>]
                               [-oc,--onsConfig <ons-config>]
                               [-dsa,--dataSourceAffinity <data-source-affinity>]
                               [-f,--forceLock]
                               [-detail]
  • 파라미터

    파라미터설명
    -id,--dataSourceID <data-source-id>]

    클러스터 데이터소스의 ID을 설정한다.

    하나의 도메인에서 클러스터 데이터소스 ID는 클러스터 데이터소스의 유일한 식별자로서 동작하도록 설정해야 한다.

    [-en,--exportName <export-name>]

    클러스터 데이터소스의 JNDI 이름을 설정한다. 서로 다른 두 데이터소스가 서로 다른 서버에 JNDI 바인드되는 것을 보장할 수 있으면 해당 데이터소스들은 서로 같은 JNDI 이름을 가질 수 있다. 이는 임의의 서버에서 동일한 JNDI 이름을 가지는 서로 다른 데이터소스를 허용하지 않음을 의미한다.

    설정되지 않으면 클러스터 데이터소스 ID를 JNDI 이름으로 사용한다. 설정을 해제하려면 옵션 값으로 "unset"을 입력한다.

    콤마(,)를 구분자로 사용하여 여러 개 입력할 수 있으며, 이 경우 구분자로 구분 된 어떠한 값을 사용하여도 JNDI lookup이 가능하다.

    [-dss,--dataSourceSelector <data-source-selector>]

    [동적 변경] 클러스터 데이터소스로부터 커넥션을 얻을 때 사용자나 개발자가 특정 컴포넌트 데이터소스 선택에 대한 정책을 직접 정의할 수 있다.

    jeus.jdbc.helper.DataSourceSelector 추상 클래스를 상속하여 구현하고 그 구현 클래스의 패키지 이름을 포함하는 이름을 적어준다. 이것을 설정하면 --loadBalance 설정은 아무런 기능을 하지 않으며 failover와 failback을 무조건 시도한다.

    • failover는 이 설정을 통하여 최초 선택된 컴포넌트 데이터소스 다음 인덱스의 컴포넌트 데이터소스를 시작으로 하여 한 번만 라운딩하는 방식으로 이루어진다.

    • failback은 Use failback을 설정할 때 failback이 수행되는 방식과 유사하게 이루어진다. 정책을 정의할 때는 대체로 동기화를 고려해야 하며 이는 구현자의 몫이다.

    설정을 해제하려면 옵션 값으로 "unset"을 입력한다.

    [-lb,--loadBalance <true | false>]

    [동적 변경] load balancing 여부를 설정한다.

    • true : --useFailback 설정은 아무런 기능을 하지 않게 된다.

    [-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
    [-dsa,--dataSourceAffinity <data-source-affinity>]트랜잭션 사용 중 데이터소스에 대한 Affinity 설정 여부를 정한다. 이 설정이 켜지면 트랜잭션 처리가 하나의 멤버 데이터소스 인스턴스에 한정하여 이루어져 글로벌 트랜잭션은 처리 성능 향상을 도모할 수 있고, XA Emulation을 설정한 로컬 트랜잭션도 클러스터 데이터소스 사용 간 보장 될 수 있다.
    [-f,--forceLock]설정 변경을 강제로 진행하여 반영한다.
    [-detail]변경 결과에 대한 상세 정보가 출력된다.
  • 예제

    [MASTER]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"

데이터소스의 설정을 변경한다. 일부 설정은 동적으로 변경 가능하다.

  • alias

    modifyds

  • 사용법

    modify-data-source -id,--dataSourceID <data-source-id>
                 [-user,--user <user>]
                 [-pw,--password <password>]
                 [-algorithm,--algorithm <algorithm>]
                 [-ac,--autoCommit < TRUE | FALSE | DRIVER> ]
                 [-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 <true | false>]
                 [-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 <true | false>]
                 [-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>]
                 [-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는 데이터소스의 유일한 식별자로서 동작하도록 설정해야 한다.
    [-user,--user <user>]

    [동적 변경] 데이터베이스 사용자의 ID를 설정한다. 트랜잭션 처리 등을 위해서는 충분한 권한을 가지고 있어야 한다.

    설정을 해제하려면 옵션 값으로 "unset"을 입력한다.

    [-pw,--password <password>]

    [동적 변경] 데이터베이스 사용자의 패스워드를 설정한다.

    패스워드는 '{algorithm:keysize}ciphertext' 와 같은 형식으로 암호화해서 저장한다.

    설정을 해제하려면 옵션 값으로 "unset"을 입력한다.

    [-algorithm,--algorithm <algorithm>]

    [동적 변경] 데이터베이스 사용자 패스워드의 알고리듬을 설정한다.

    algorithm 옵션은 password 옵션과 함께 사용될 때에만 의미가 있다.

    사용할 수 있는 알고리듬은 다음 중에 선택한다.

    • base64

    • DES

    • DESede

    • AES

    • SEED

    • Blowfish

    [-ac,--autoCommit <TRUE | FALSE | DRIVER>]

    [동적 변경] 데이터소스의 기본 auto-commit 설정으로 다음 중에 하나를 설정한다.

    • TRUE

    • FALSE

    • DRIVER : JEUS는 auto-commit 설정에 관여하지 않으며 JDBC 드라이버의 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 컴포넌트 - Servlet/JSP, stateless Session Bean, MDB)에서 사용하고 제대로 반환하지 않은 JDBC 커넥션을 감지했을 때 JEUS가 취하는 액션을 정의한다.

    다음의 값 중에 하나를 설정한다.

    • NO_ACTION : 아무런 액션을 취하지 않는다.

    • WARNING : 반환되지 않은 JDBC 커넥션 정보를 로그로 남긴다.

    • AUTO_CLOSE : 반환되지 않은 JDBC 커넥션 정보를 로그로 남기며 해당 JDBC 커넥션을 회수한다.

    설정하지 않을 경우 서버의 설정을 따른다.설정을 해제하려면 옵션 값으로 "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 <true | false>]

    [동적 변경] Connection Pool에 사용 가능한 커넥션이 없고 커넥션도 더 이상 늘릴 수 없을 때 커넥션 요청을 처리하는 방법을 결정한다.

    • true : 이용 가능한 커넥션을 얻기 위해 기다린다.

    • false : 새로운 커넥션을 만들어서 제공하지만 그 커넥션은 반환되었을 때 Pooling되지 않고 버려진다. 이를 일회용(disposable) 커넥션이라고도 한다.

    [-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에 있는 다른 커넥션들에 대한 처리 정책을 설정한다.

    • FAILED_CONNECTION_ONLY : 유효하지 않은 것으로 확인된 커넥션만 제거한다.

    • ALL_CONNTECTIONS : 유효하지 않은 것으로 확인된 커넥션을 제거하고 Connection Pool에 있는 다른 커넥션의 유효성을 한 번 더 확인한다. 그조차 유효하지 않은 것으로 확인되면 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 <true | false>]

    [동적 변경] 커넥션 관련 부가 정보 제공 여부를 결정한다.

    • false : --getConnectionTrace와 --autoCommitTrace가 모두 무효가 된다.

    [-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"을 입력한다.

    콤마(,)를 구분자로 사용하여 여러 개 입력할 수 있으며, 이 경우 구분자로 구분 된 어떠한 값을 사용하여도 JNDI lookup이 가능하다.

    [-dscn,--dataSourceClassName <data-source-class-name>]JDBC 드라이버 데이터소스 클래스의 이름을 설정한다. 패키지 이름을 포함하는 완전한 형태로 적는다.
    [-dst,--dataSourceType <data-source-type>]

    데이터소스의 타입을 설정한다.

    • DATA_SOURCE : Connection Pooling 서비스는 제공되지 않는다.

    • CONNECTION_POOL_DATA_SOURCE : Connection Pooling 서비스가 제공되며 XA_DATA_SOURCE로 설정한 경우 Connection Pooling 서비스와 더불어 XA 연동이 지원된다.

    [-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"을 입력한다.
    [-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]변경 결과에 대한 상세 정보가 출력된다.
  • 예제

    [MASTER]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"

JDBC나 JCA Connection Pool에 대한 모니터링 및 제어 기능을 제공한다. 명령어들의 목록은 다음과 같다.

명령어설명
connection-pool-info

JDBC나 JCA Connection Pool을 모니터링한다.

특정 Connection Pool의 ID를 명시할 경우 해당 Connection Pool의 정보를 자세히 조회한다.

control-connection-pool

JDBC나 JCA Connection Pool을 제어한다.

Connection Pool 생성, Connection Pool 활성화, Connection Pool 비활성화, Connection Pool refresh, Connection Pool shrink가 가능하다.

control-cluster-data-source클러스터 데이터소스를 제어한다. 클러스터 데이터소스에 속한 컴포넌트 데이터소스의 목록을 보여주거나 failback을 수행할 수 있다.
create-connection-pool

JDBC Connection Pool을 생성한다.

JCA Connection Pool에 대해서는 동작하지 않는다.

destroy-connectionActive 상태의 커넥션의 연결을 강제로 끊는다.
disable-connection-pool

JDBC Connection Pool을 비활성화한다.

JCA Connection Pool에 대해서는 동작하지 않는다.

enable-connection-pool

JDBC Connection Pool을 활성화한다.

JCA Connection Pool에 대해서는 동작하지 않는다.

refresh-connection-poolJDBC Connection Pool의 커넥션들을 새로운 커넥션으로 교체한다. JCA Connection Pool에 대해서는 동작하지 않는다.
return-connectionActive 상태의 커넥션을 Connection Pool로 반환한다.
shrink-connection-poolJDBC Connection Pool의 커넥션 개수를 설정된 커넥션 최솟값으로 조정한다. JCA Connection Pool에 대해서는 동작하지 않는다.

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의 정보를 표시한다.
  • 예제

    [MASTER]domain1.adminServer>cpinfo -server server1 -jndi -jdbc
    The connection pool information on the server [server1].
    ================================================================================
    +------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
    | Connection |JNDI | Min | Max | Act | Act | Act | Idle| Dis | Tot | Wait| Ena |
    |   Pool ID  |Expo |     |     | ive | ive | ive |     |posa | al  |     |bled |
    |            | rt  |     |     | Max |     |Aver |     | ble |     |     |     |
    |            |Name |     |     |     |     | age |     |     |     |     |     |
    +------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
    | ds1        | ds1 |   2 |  30 |   0 |   0 | 0.0 |   2 |   0 |   2 | fal | true|
    |            |     |     |     |     |     |     |     |     |     |se   |     |
    +------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
    | ds2 *      | ds2 |   2 |  30 |   0 |   0 | 0.0 |   0 |   0 |   0 | fal | fal |
    |            |     |     |     |     |     |     |     |     |     |se   |se   |
    +------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
    
    * : has not been created, total = active + idle + disposable
    ================================================================================
    
    [MASTER]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 |             |
    +---------------+-------+-------------------+-----------+--------+-------------+
    ================================================================================
    
    [MASTER]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 |
    +--------------+-----------+--------+---------+--------+-----------+-----------+
    ================================================================================

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을 생성한다.
  • 예제

    [MASTER]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.
    
    [MASTER]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.
    
    [MASTER]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.
    
    [MASTER]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.
    
    [MASTER]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.

Active 상태의 커넥션의 연결을 강제로 끊는다.

애플리케이션에서 커넥션을 요청하여 커넥션이 현재 Active 상태인데 이 커넥션에 문제가 있다고 판단되는 경우 해당 커넥션을 중도에 강제로 파기하기 위해 이 명령어를 사용할 수 있다. 이 명령어는 Active 상태의 커넥션에 대해서만 동작한다. 단, 이 기능은 실제로 물리적 연결을 강제로 끊는 것이므로 사용에 주의를 요한다.

  • alias

    destroyconnection

  • 사용법

    destroy-connection -server <server-name>
                       [-cpid <connection-pool-id> | -cid <connection-id>]      
  • 파라미터

    파라미터설명
    -server <server-name>연결을 강제로 끊고자 하는 커넥션을 가지고 있는 Connection Pool이 있는 서버의 이름이다.
    [-cpid <connection-pool-id>]Connection Pool에 존재하는 모든 커넥션들에 대해 연결 끊기를 시도할 때 입력하는 Connection Pool의 ID이다.
    [-cid <connection-id>]Connection Pool에 존재하는 특정 커넥션의 연결을 강제로 끊을 때 입력하는 Connection ID이다. Connection ID는 connection-pool-info 명령에 -id 옵션을 주어 확인할 수 있다. 한번에 여러 개의 커넥션을 강제로 연결 끊고자 할 땐 여러 개의 Connection ID 값을 콤마(,)로 구분하여 입력한다.
  • 예제

    [MASTER]domain1.adminServer>destroy-connection -server server1 -cpid ds1
    Successfully destroyed the connections from the connection pool. 
    
    [MASTER]domain1.adminServer>return-connection -server server1 -cid ds1-1,ds1-2
    Successfully destroyed the connections from the connection pool.

Active 상태의 커넥션을 Connection Pool로 반환한다.

애플리케이션에서 커넥션을 close해주지 않았을 때 데이터소스 설정에서 Action On Connection Leak 설정값이 AutoClose로 되어있지 않으면 지속적으로 커넥션이 Active 상태로 남아 있게 되는 Leak이 발생하는데, 이러한 경우에 이 명령어를 사용할 수 있다. 이 명령어는 Active 상태의 커넥션에 대해서만 동작한다. 단, 반환하려는 커넥션이 현재 진행 중인 트랜잭션에 작업 중인 경우 반환되지 않는다. 그리고 명령어가 수행되어 커넥션 반환하는 중에 에러가 발생하면 해당 커넥션은 destroy 된다.

  • alias

    returnconnection

  • 사용법

    return-connection -server <server-name>
                      [-cpid <connection-pool-id> | -cid <connection-id>]        
  • 파라미터

    파라미터설명
    -server <server-name>연결 반환하고자 하는 커넥션을 가지고 있는 Connection Pool이 있는 서버의 이름이다.
    [-cpid <connection-pool-id>]Connection Pool에 존재하는 모든 커넥션들에 대해 연결 반환을 시도할 때 입력하는 Connection Pool의 ID이다.
    [-cid <connection-id>]Connection Pool에 존재하는 특정 커넥션의 연결을 Connection Pool로 반환할 때 입력하는 Connection ID이다. Connection ID는 connection-pool-info 명령에 -id 옵션을 주어 확인할 수 있다. 한번에 여러 개의 커넥션을 Connection Pool로 연결 반환하고자 할 땐 여러 개의 Connection ID 값을 콤마(,)로 구분하여 입력한다.
  • 예제

    [MASTER]domain1.adminServer>return-connection -server server1 -cpid ds1
    Successfully returned the connections to the connection pool. 
    
    [MASTER]domain1.adminServer>return-connection -server server1 -cid ds1-1,ds1-2
    Successfully returned the connections to the connection pool.

트랜잭션 관련 명령어의 목록은 다음과 같다.

명령어설명
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]결과를 자세하게 조회한다.
  • 예제

    • 현재 설정 확인

      [MASTER]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                                                  |
      +---------------------+--------------------------------------------------------+
      ================================================================================
    • 동적 설정인 트랜잭션 자동 복구 기능 켜기

      [MASTER]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"
    • 서버 재시작으로 반영되는 타임아웃 설정 변경

      [MASTER]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"
    • 동적 반영 설정과 서버 재시작으로 반영되는 설정 함께 변경

      [MASTER]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

    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 자체적으로 재시도 중인 트랜잭션이다.
  • 예제

    [MASTER]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 관리 명령어로 분류되고, 목록은 다음과 같다.

주의

본 절에서 소개하는 명령어는 민감한 사안을 다루므로, 이 명령어를 실행하기에 적절한 권한을 가진 사용자로 로그인해야 한다.

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 파일 형태로 넣어놓은 클래스의 이름이다. 해당 클래스는 jeus.util.PasswordValidator 인터페이스를 구현해야 한다.
  • 예제

    [MASTER]domain1.adminServer> add-custom-password-validator -class MyValidator
              Custom password validator [MyValidator] is added successfully.
              Check the results using show-custom-password-validator.

동적으로 보안 시스템에 새로운 그룹를 추가한다. 설정된 그룹 이름은 현재 도메인 내에서 유일해야 한다(list-group-names 명령어로 확인 가능). 그룹 이름은 일련의 호출 과정에서 특정 그룹을 참조하기 위해 사용한다. 즉, 그룹에 대한 ID에 해당된다.

  • alias

    addgroup

  • 사용법

    add-group <group-name>
              [-domain <domain-name>]
              [-f,--forceLock]
  • 파라미터

    파라미터설명
    <group-name>그룹 이름이다.
    [-f,--forceLock]설정 변경을 강제로 진행하여 반영한다.
  • 예제

    [MASTER]domain1.adminServer> add-group group1
              The group [group1] has been successfully added.

동적으로 보안 시스템에 새로운 리소스를 추가한다. 주어진 리소스의 이름과 actions의 조합은 현재 도메인과 컨텍스트 내에서 유일해야 한다(show-policy 명령어로 확인 가능).

  • alias

    addresource

  • 사용법

    add-resource <resource-name>
              <actions>
              [-contextid <context-id>]
              [-classname <class-name>]
              [-role <role-name>]
              [-excluded]
              [-unchecked]
              [-domain <domain-name>]
              [-f,--forceLock]
  • 파라미터

    파라미터설명
    <resource-name>추가할 리소스의 이름이다.
    <actions>

    리소스에 부여될 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 <class-name>]

    Permission 클래스 이름이다.

    -classname으로 설정한 클래스는 java.security.Permission 추상 클래스를 확장한 Java 클래스여야 하며 최소한 하나의 String 타입의 "resource"을 받아 들이는 생성자를 가지고 있어야 한다.

    Resource Permission에 대한 자세한 정보는 jeus.security.resource.ResourcePermission 클래스를 참고한다. JEUS가 어떤 Resource Permission을 체크하는지에 관한 정보는 JEUS Security 안내서”의 “Appendix B. JEUS Server Permissions”을 참고한다.

    [-role <role-name>]해당 리소스를 할당할 Role 목록이다.
    [-excluded]누구도 해당 Permission에 대한 허가를 가질 수 없도록 한다.
    [-unchecked]누구나 해당 Permission에 대한 허가를 가질 수 있도록 한다.
    [-f,--forceLock]설정 변경을 강제로 진행하여 반영한다.
  • 예제

    [MASTER]domain1.adminServer> add-resource resource1 jeus.*
              The resource [name=resource1, actions=jeus.*] has been successfully added.

동적으로 보안 시스템에 새로운 Role를 추가한다. 주어진 Role 이름은 현재 도메인 내에서 유일해야 한다(show-policy 명령어로 확인 가능).

  • alias

    addrole

  • 사용법

    add-role <role-name>
              [-principal <principal>]
              [-classname <classname>]
              [-excluded]
              [-unchecked]
              [-actions <actions>]
              [-domain <domain-name>]
              [-f,--forceLock]
  • 파라미터

    파라미터설명
    <role-name>추가할 Role의 이름이다.
    [-principal <principal>]해당 Role을 할당할 principal을 지정한다.
    [-classname <classname>]

    Permission 클래스 이름이다.

    -classname으로 설정한 클래스는 java.security.Permission 추상 클래스를 확장한 Java 클래스여야 하며 최소한 하나의 String 타입의 "role"을 받아 들이는 생성자를 가지고 있어야 한다.

    Role Permission에 대한 자세한 정보는 jeus.security.resource.RolePermission 클래스를 참고한다. JEUS가 어떤 Role Permission을 체크하는지에 관한 정보는 JEUS Security 안내서”의 “Appendix B. JEUS Server Permissions”을 참고한다.

    [-excluded]누구도 해당 Permission에 대한 허가를 가질 수 없도록 한다.
    [-unchecked]누구나 해당 Permission에 대한 허가를 가질 수 있도록 한다.
    [-actions <actions>]Role의 action 목록이다.
    [-f,--forceLock]설정 변경을 강제로 진행하여 반영한다.
  • 예제

    [MASTER]domain1.adminServer> add-role role1
              The role [role1] has been successfully added.

동적으로 보안 시스템에 새로운 사용자를 추가한다. 주어진 사용자 이름은 현재 도메인 내에서 유일해야 한다(list-user-names 명령어로 확인 가능). 사용자 이름은 일련의 호출 과정에서 특정 사용자를 참조하기 위해 사용한다. 즉, 사용자에 대한 ID에 해당된다.

  • alias

    adduser

  • 사용법

    add-user <user-name>
              [-domain <domain-name>]
              [-f,--forceLock]
              [<password>]
  • 파라미터

    파라미터설명
    <user-name>사용자 이름이다.
    [-f,--forceLock]설정 변경을 강제로 진행하여 반영한다.
    [<password>]비밀번호를 지정한다.
  • 예제

    [MASTER]domain1.adminServer> add-user user1
              The user [user1] has been successfully added.

동적으로 Role에 특정 리소스와 Action을 할당한다.

  • alias

    assignresource, assignres

  • 사용법

    assign-resource-to-role <resource-name>
              <actions>
              <role-name>
              [-contextid <context-id>]
              [-classname <classname>]
              [-domain <domain-name>]
              [-f,--forceLock]
  • 파라미터

    파라미터설명
    <resource-name>[동적 변경] 리소스 이름이다. 리소스 이름은 보통 "jeus.server"와 같은 리스스를 나타내는 Java 클래스명이다.
    <actions>

    [동적 변경] 리소스에 부여된 Action 목록이다.

    Actions는 리소스에 대한 Action 목록이며, 각 Action은 공백으로 구분된다. 예를 들어 jeus.server resource의 경우 "boot", "down"과 같은 Action이 있다.

    actions 파라미터를 설정한 경우 -classname으로 설정한 클래스에 두 번째 생성자 파라미터로 "actions"를 전달할 때 사용한다. 디폴트 클래스명은 jeus.security.resource.ResourcePermission이고, 이는 "resouce"와 "actions"를 생성자 파라미터로 차례로 받아 들인다.

    <role-name>Role 이름이다.
    [-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]설정 변경을 강제로 진행하여 반영한다.

  • 예제

    [MASTER]domain1.adminServer> assign-resource-to-role jeus.* deploy-applications deployRole
              The resource [name=jeus.*, actions=deploy-applications] is assigned to the role [deployRole].

특정 사용자에 만료시간을 설정한다. SubjectExpirationtValidationService가 서버에 제대로 구성되어 있다면, 해당 사용자는 만료시간까지만 유효하며 만료시간 후 로그인 시도는 unexpire-user가 호출되기 전에 모두 실패로 끝난다. Subjcet validation은 JEUS Security 안내서”의 “5.4.1. SubjectValidationService SPI”를 참고한다.

  • alias

    expireuser, exuser

  • 사용법

    expire-user <user-name>
              [-domain <domain-name>]
              [-year <year>]
              [-month <month>]
              [-day <day>]
              [-hour <hour>]
              [-minute <minute>]
  • 파라미터

    파라미터설명
    <user-name>사용자 이름이다.
    [-year <year>]만료시간의 '연도'이다. yyyy로 입력해야 한다. (기본값: 현재 시간의 연도)
    [-month <month>]만료시간의 '달/월'이다. MM으로 입력해야 한다. (기본값: 현재 시간의 달/월)
    [-day <day>]만료시간의 '날/일'이다. dd로 입력해야 한다. (기본값: 현재 시간의 날/일)
    [-hour <hour>]만료시간의 '시'이다. hh로 입력해야 한다. (기본값: 현재 시간의 시)
    [-minute <minute>]만료시간의 '분'이다. mm으로 입력해야 한다. (기본값: 현재 시간의 분)
  • 예제

    [MASTER]domain1.adminServer> expire-user user1 -year 2020 -month 12 -day 31 -hour 12 -minute 30
              The user [user1] is valid only until [2020-12-31 12:30].

동적으로 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 <true|false>]
              [-digit <true|false>]
              [-capital <true|false>]
              [-small <true|false>>]
              [-excludeID <true|false>]
  • 파라미터

    파라미터설명
    [-disable][동적 변경] Default Password Validator를 사용 안함으로 설정하고 기존 설정 값들을 모두 삭제한다.
    [-min <min-length>]

    [동적 변경] 패스워드의 최소 자릿수를 설정한다.

    (범위: 1 ~ 255, 기본값: 1)

    [-max <max-length>]

    [동적 변경] 패스워드의 최대 자릿수를 설정한다.

    (범위: 1 ~ 255, 기본값: 1)

    [-special <true|false>][동적 변경] 패스워드에 반드시 특수문자가 들어가도록 할지 설정한다. (기본값: false)
    [-digit <true|false>]

    [동적 변경] 패스워드에 반드시 숫자가 들어가도록 할지 설정한다.

    (기본값: false)

    [-capital <true|false>]

    [동적 변경] 패스워드에 반드시 대문자가 들어가도록 할지 설정한다.

    (기본값: false)

    [-small <true|false>]

    [동적 변경] 패스워드에 반드시 소문자가 들어가도록 할지 설정한다.

    (기본값: false)

    [-excludeID <true|false>][동적 변경] 패스워드에 사용자의 ID가 들어가지 못하도록 할지 설정한다. (기본값: false)
  • 예제

    [MASTER]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".

동적으로 리소스 설정을 변경한다. 다만, Role에 할당된 리소스 설정을 변경하기 위해서는 해당 명령어가 아닌 AssignResourceToRole 혹은 UnassignResourceFromRole 명령어를 사용해야 한다.

  • alias

    modifyresource

  • 사용법

    modify-resource <resource-name>
              <actions>
              [-contextid <context-id>]
              [-classname <classname>]
              [-excluded <true|false>]
              [-unchecked <true|false>]
              [-domain <domain-name>]
              [-f,--forceLock]
  • 파라미터

    파라미터설명
    <resource-name>설정 변경할 리소스의 이름이다.
    <actions>설정 변경할 리소스의 action 목록이다.
    [-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”을 참고한다.

    [-excluded <true|false>]누구도 해당 Permission에 대한 허가를 가질 수 없도록 한다. (true | false)
    [-unchecked <true|false>]누구나 해당 Permission에 대한 허가를 가질 수 있도록 한다. (true | false)
    [-f,--forceLock]설정 변경을 강제로 진행하여 반영한다.
  • 예제

    [MASTER]domain1.adminServer> modify-resource resource1 jeus.* -excluded true -unchecked false
              The resource [name=resource1, actions=jeus.*] has been successfully modified.

동적으로 Role 설정을 변경한다. 다만, 사용자에 할당된 Role 설정을 변경하기 위해서는 해당 명령어가 아닌 AssignRoleToPrincipal 혹은 UnassignRoleFromPrincipal 명령어를 사용해야 한다.

  • alias

    modifyrole

  • 사용법

    modify-role <role-name>
              [-classname <classname>]
              [-excluded <true|false>]
              [-unchecked <true|false>]
              [-actions <actions>]
              [-domain <domain-name>]
              [-f,--forceLock]
  • 파라미터

    파라미터설명
    <role-name>설정 변경할 Role의 이름이다.
    [-classname <classname>]

    Permission 클래스 이름이다.

    -classname으로 설정한 클래스는 java.security.Permission 추상 클래스를 확장한 Java 클래스여야 하며 최소한 하나의 String 타입의 "role"을 받아 들이는 생성자를 가지고 있어야 한다.

    Role Permission에 대한 자세한 정보는 jeus.security.resource.RolePermission 클래스를 참고한다. JEUS가 어떤 Role Permission을 체크하는지에 관한 정보는 JEUS Security 안내서”의 “Appendix B. JEUS Server Permissions”을 참고한다.

    [-excluded <true | false>]누구도 해당 Permission에 대한 허가를 가질 수 없도록 한다. (true | false)
    [-unchecked <true | false>]누구나 해당 Permission에 대한 허가를 가질 수 있도록 한다. (true | false)
    [-actions <actions>]Role의 action 목록이다.
    [-f,--forceLock]설정 변경을 강제로 진행하여 반영한다.
  • 예제

    [MASTER]domain1.adminServer> modify-role role1 -excluded true -unchecked false
              The role [role1] has been successfully modified.

Custom Password Validator에 등록된 클래스를 삭제한다. Password Validation은 JEUS Security 안내서”의 “2.5.4. 패스워드 보안 설정”을 참고한다.

  • alias

    remove-custom-validator

  • 사용법

    remove-custom-password-validator [-class <class-name>]
  • 파라미터

    파라미터설명
    -class <class-name>사용자가 DOMAIN_HOME/lib/application에 jar 파일 형태로 넣고 add-custom-password-validator 명령어로 Custom Password Validator에 등록한 클래스의 이름이다.
  • 예제

    [MASTER]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
  • 예제

    [MASTER]domain1.adminServer> show-custom-password-validator
              ================================================================================
              +------------------------------------------------------------------------------+
              |                     custom password validator class names                    |
              +------------------------------------------------------------------------------+
              | MyValidator                                                                  |
              +------------------------------------------------------------------------------+
              ================================================================================

현재의 Default Password Validator 설정을 조회한다. Password Validation은 JEUS Security 안내서”의 “2.5.4. 패스워드 보안 설정”을 참고한다.

  • alias

    show-password-validator

  • 사용법

    show-default-password-validator
  • 예제

    [MASTER]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 |
              +----------------------------------------------------------------------+-------+
              ================================================================================

현재의 Subject Validation Service 설정을 조회한다. Subject Validation은 JEUS Security 안내서”의 절 2.4.1. “[Subject Validation] 메뉴 ”을 참고한다.

  • alias

    ssv

  • 사용법

    show-subject-validation
  • 예제

    [MASTER]domain1.adminServer> show-subject-validation
              ================================================================================
              +--------------------------+---------------------------------------------------+
              |           Type           |                     Class name                    |
              +--------------------------+---------------------------------------------------+
              | DefaultSubjectValidation | jeus.security.impl.expiration.SubjectExpirationVa |
              |                          |lidationService                                    |
              +--------------------------+---------------------------------------------------+
              | DefaultSubjectValidation | jeus.security.impl.lockout.SubjectLockoutValidati |
              |                          |onService                                          |
              +--------------------------+---------------------------------------------------+
              ================================================================================

expire-user로 설정했던 ExpiryTime을 해제한다.

  • alias

    unexpireuser, unexuser

  • 사용법

    unexpire-user <user-name>
                [-domain <domain-name>] 
  • 파라미터

    파라미터설명
    <user-name>사용자 이름이다.
  • 예제

    [MASTER]domain1.adminServer> unexpire-user user2
                The expiry time for user [user2] is canceled.

동적으로 lock-user로 설정했던 Lock을 해제한다.

  • alias

    unlockuser

  • 사용법

    unlock-user  <user-name>
              [-domain <domain-name>] 
  • 파라미터

    파라미터설명
    <user-name>사용자 이름이다.
  • 예제

    [MASTER]domain1.adminServer> unlock-user user2
              The user [user2] has been successfully unlocked.

OSGi 기능과 관련한 명령어의 목록은 다음과 같다.

명령어설명
add-osgi-framework도메인에 OSGi 프레임워크 설정을 추가한다.
install-bundle지정한 위치에 있는 번들을 지정한 OSGi 프레임워크에 설치한다.
list-osgi-frameworks도메인에 설정되어 있는 OSGi 프레임워크들에 대한 목록을 출력한다.
modify-osgi-frameworkOSGi 프레임워크 설정을 수정한다.
remove-osgi-frameworkOSGi 프레임워크 설정을 삭제한다.
show-osgi-framework-info지정한 서버에서 실행 중인 OSGi 프레임워크들에 대한 정보를 출력한다.
start-bundle지정한 번들을 시작한다.
stop-bundle지정한 번들을 정지한다.
uninstall-bundle지정한 번들을 삭제한다.
update-bundle지정한 번들을 갱신한다.

도메인에 OSGi 프레임워크 설정을 추가한다.

  • alias

    addfwk

  • 사용법

    add-osgi-framework -n,--name <framework-name>
                       [-en,--exportName <jndi-export-name>]
                       [-s,--servers <server-list>]
                       [-iib <true | false>]
                       [-ibd <path>]
                       [-dsl <start-level>]
                       [-foe <true | false>]
                       [-bid <path-list>]
                       [-f,--forceLock]
                       [-detail]
  • 파라미터

    파라미터설명
    -n,--name <framework-name>OSGi 프레임워크에 대한 고유한 이름을 지정한다.
    [-en,--exportName <jndi-export-name>]OSGi 프레임워크에 대한 JNDI 이름을 지정한다.
    [-s,--servers <server-list>]OSGi 프레임워크를 사용할 서버 목록을 지정한다. 여러 서버를 지정할 경우 각 이름은 콤마(,)를 사용하여 구분한다.
    [-iib <true | false>]Initial Bundles Directory에 있는 번들의 설치 여부를 지정한다. (true | false)
    [-ibd <path>]Initial Bundles Directory의 경로를 지정한다. 지정하지 않은 경우 기본 경로로 JEUS_HOME/lib/osgi/FRAMEWORK_NAME을 사용한다.
    [-dsl <start-level>]초기 번들 디렉터리에 위치한 번들들에 대한 start level 기본값을 지정한다.
    [-foe <true | false>]초기 번들 설치가 제대로 이루어지지 않았을 경우 이를 오류로 간주할지 여부를 설정한다. (true | false)
    [-bid <path-list>]Bundle Installation Descriptor XML 파일들의 위치를 지정한다. 여러 파일을 지정할 경우 콤마(,)를 구분자로 사용한다.
    [-f,--forceLock]설정 변경을 강제로 진행하여 반영한다.
    [-detail]동적 변경 결과에 대한 상세한 정보가 출력된다.
  • 예제

    [MASTER]domain1.adminServer>list-osgi-frameworks
    No OSGi Frameworks exists.
    
    [MASTER]domain1.adminServer>add-osgi-framework -name framework-0 -servers server1
    Successfully performed the ADD operation for OSGi Framework framework-0, but all changes were non-dynamic. They will be applied after restarting.
    Check the results using "list-osgi-frameworks".
    
    [MASTER]domain1.adminServer>list-osgi-frameworks
    List of OSGi Frameworks
    ================================================================================
    +------------------------+----------------------------+------------------------+
    |     Framework Name     |      JNDI Export Name      |     Target Servers     |
    +------------------------+----------------------------+------------------------+
    | framework-0            |                            | server1                |
    +------------------------+----------------------------+------------------------+
    ================================================================================
    [MASTER]domain1.adminServer>

도메인에 설정되어 있는 OSGi 프레임워크들에 대한 목록을 출력한다.li

  • alias

    lsfwks

  • 사용법

    list-osgi-frameworks [-f,--framework <framework-name>]
  • 파라미터

    파라미터설명
    [-f,--framework <framework-name>]지정한 OSGi 프레임워크 설정에 대한 상세를 출력한다.
  • 예제

    [MASTER]domain1.adminServer>list-osgi-frameworks
    List of OSGi Frameworks
    ================================================================================
    +------------------------+----------------------------+------------------------+
    |     Framework Name     |      JNDI Export Name      |     Target Servers     |
    +------------------------+----------------------------+------------------------+
    | framework-0            |                            | server1                |
    +------------------------+----------------------------+------------------------+
    ================================================================================
    
    [MASTER]domain1.adminServer>list-osgi-frameworks -framework framework-0
    OSGi Framework [framework-0]
    ================================================================================
    +--------------------------------------------------------------+---------------+
    |                        Attribute Name                        |     Value     |
    +--------------------------------------------------------------+---------------+
    | Framework Name                                               | framework-0   |
    | JNDI Export Name                                             | Not Specified |
    | Target Servers                                               | server1       |
    | Install Initial Bundles                                      | true          |
    | Initial Bundles Directory Location                           | Not Specified |
    | Default Start Level                                          |            30 |
    | Fail On Error                                                | true          |
    +--------------------------------------------------------------+---------------+
    ================================================================================
    
    Framework Configuration Properties
    ====================================================
    +-----+--------------------------------------------+
    | Key |                    Value                   |
    +-----+--------------------------------------------+
    (No data available)
    ====================================================
    
    Bundle Installation Descriptors
    ================================================================================
    +------------------------------------------------------------------------------+
    |                                   Location                                   |
    +------------------------------------------------------------------------------+
    (No data available)
    ================================================================================

OSGi 프레임워크 설정을 추가한다.

  • alias

    modfwk

  • 사용법

    modify-osgi-framework -n,--name <framework-name>
                          [-en,--exportName <jndi-export-name>]
                          [-s,--servers <server-list>]
                          [-iib <true | false>]
                          [-ibd <path>]
                          [-dsl <start-level>]ve
                          [-foe <true | false>]
                          [-bid <path-list>]
                          [-f,--forceLock]
                          [-detail]
  • 파라미터

    파라미터설명
    -n,--name <framework-name>OSGi 프레임워크에 대한 고유한 이름을 지정한다.
    [-en,--exportName <jndi-export-name>]OSGi 프레임워크에 대한 JNDI 이름을 지정한다.
    [-s,--servers <server-list>]OSGi 프레임워크를 사용할 서버 목록을 지정한다. 여러 서버를 지정할 경우, 각 이름은 콤마(,)를 사용하여 구분한다.
    [-iib <true | false>]Initial Bundles Directory에 있는 번들들을 설치 여부를 지정한다. (true | false)
    [-ibd <path>]Initial Bundles Directory의 경로를 지정한다. 지정하지 않은 경우 기본 경로로 JEUS_HOME/lib/osgi/FRAMEWORK_NAME을 사용한다.
    [-dsl <start-level>]초기 번들 디렉터리에 위치한 번들들에 대한 start level 기본값을 지정한다.
    [-foe <true | false>]초기 번들 설치가 제대로 이루어지지 않았을 경우 이를 오류로 간주할지 여부를 설정한다. (true | false)
    [-bid <path-list>]Bundle Installation Descriptor XML 파일들의 위치를 지정한다. 여러 파일을 지정할 경우 콤마(,)를 구분자로 사용한다.
    [-f,--forceLock]설정 변경을 강제로 진행하여 반영한다.
    [-detail]동적 변경 결과에 대한 상세한 정보가 출력된다.
  • 예제

    [MASTER]domain1.adminServer>modify-osgi-framework -name framework-0 -dsl 45    
    Successfully performed the MODIFY operation for OSGi Framework framework-0, but some changes were non-dynamic. They will be applied after restarting.
    Check the results using "list-osgi-frameworks".
    [MASTER]domain1.adminServer>

지정한 서버에서 실행 중인 OSGi 프레임워크들에 대한 정보를 출력한다.

  • alias

    osgiinfo, fwkinfo

  • 사용법

    show-osgi-framework-info -s,--server <server-name>
                             [-f,--framework <framework-name>]
                             [-lb]
  • 파라미터

    파라미터설명
    -s,--server <server-name>대상 서버를 지정한다.
    [-f,--framework <framework-name>]정보를 출력할 OSGi 프레임워크의 이름을 지정한다.
    [-lb]설치되어 있는 번들들에 대한 정보를 출력할지 여부를 지정한다. f 옵션과 함께 사용해야 한다.
  • 예제

    [MASTER]domain1.adminServer>show-osgi-framework-info -server server1 -framework framework-0 -lb
    OSGi Framework [framework-0] Information in the server[framework-0]
    Framework [framework-0] Overview
    ======================================================================
    +----------------------------------------------------------+---------+
    |                    System Bundle Name                    | Version |
    +----------------------------------------------------------+---------+
    | org.apache.felix.framework                               | 5.4.0   |
    +----------------------------------------------------------+---------+
    ======================================================================
    
    Installed Bundles in the framework [framework-0].
    ================================================================================
    +----+-----------------+-------------+------------------+--------+-------------+
    | Id |  Symbolic Name  |   Version   |     Location     |  State | Start-level |
    +----+-----------------+-------------+------------------+--------+-------------+
    |  0 | org.apache.feli | 5.4.0       | System Bundle    | ACTIVE |           0 |
    |    |x.framework      |             |                  |        |             |
    +----+-----------------+-------------+------------------+--------+-------------+
    |  1 | jeus.osgi.hello | 1.0.0.Final | file:/home/user/ | ACTIVE |          30 |
    |    |-api             |             |workspace/jeus8/j |        |             |
    |    |                 |             |eus8/target/jeus/ |        |             |
    |    |                 |             |lib/osgi/framewor |        |             |
    |    |                 |             |k-0/hello-api-1.0 |        |             |
    |    |                 |             |.0.Final.jar      |        |             |
    +----+-----------------+-------------+------------------+--------+-------------+
    |  2 | org.ops4j.pax.u | 1.3.7       | http://central.m | ACTIVE |          31 |
    |    |rl.mvn           |             |aven.org/maven2/o |        |             |
    |    |                 |             |rg/ops4j/pax/url/ |        |             |
    |    |                 |             |pax-url-mvn/1.3.7 |        |             |
    |    |                 |             |/pax-url-mvn-1.3. |        |             |
    |    |                 |             |7.jar             |        |             |
    +----+-----------------+-------------+------------------+--------+-------------+
    ================================================================================
    [MASTER]domain1.adminServer>

HTTP POST 요청을 사용하여 명령어 실행을 요청하는 JSON 문장을 보내면, 서버에서 요청을 처리한 후 명령어 실행 결과를 담은 JSON 문장을 HTTP 응답으로 보내주는 구조이다.

설명을 위해 사용할 예제 명령어는 다음과 같다.

serverinfo -server server1 -state

위 명령어를 JSON을 사용하여 실행하는 과정은 다음과 같다.

  1. 명령어 수행을 요청하는 JSON 문장을 작성한다.

    예제 명령어를 실행하기 위해 작성해야 하는 JSON 문장은 다음과 같다.

    {
        "jeusadmin": {
            "command": "server-info",
            "options":[
                "-server server1",
                "-state"
                ],
            "argument": null
        }
    }
    구분설명
    command실행할 명령어 이름
    options명령어에 적용할 옵션과 옵션에 대한 인자들
    argument명령어에 적용할 인자들
  2. 작성한 JSON 문장을 서버로 전송하여 명령어 실행을 요청한다. 전송할 때 사용하는 프로토콜은 HTTP이며, method는 POST를 사용해야 한다.

    JEUS 서버에서 JSON 명령어 실행을 위한 요청을 받는 URL은 다음과 같다.

    http://${SERVER_HOST}:${SERVER_BASE_PORT}/jsonCommand/command.json

    참고

    JEUS 서버에서 명령어를 실행하려면 사용자 인증이 필요하다. 사용자 인증은 HTTP Basic Authentication을 사용한다.

  3. 서버가 요청한 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","Running Engines"
                    ],
                    "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가지 구성 요소로 이루어져 있다.

      • row-key : 해당 행의 이름이다.

      • values : 해당 행에 들어갈 값이다.

      footer표의 꼬릿말이다.
    • post-message

      하단에 출력할 메시지이다. post-message가 여러 개인 경우 List 형태로 표현한다. 명령어에 따라 존재하지 않을 수도 있다.

본 절에서는 JSON을 사용하여 애플리케이션을 설치하거나 배포하는 방법을 설명한다. 애플리케이션을 설치하거나거 배포하는 작업은 일반 명령어와 다르게 실행할 JSON 명령어와 배포할 애플리케이션을 함께 전달해야 한다.

다음은 JSON을 사용하여 애플리케이션을 설치하거나 배포하는 과정에 대한 설명이다.

참고

애플리케이션 설치 또는 배포에 관련한 명령어는 install-application, deploy-application, distribute-application이 있다.

본 절에서는 Script 모드 사용법 및 Script 작성법에 대해서 설명한다.

jeusadmin은 Script 모드로 동작할 때에 JEUS 커맨드 실행을 위한 메서드와 결과 데이터를 제공한다.

  • 커맨드 실행

    아래와 같은 방법으로 각 스크립트 언어별로 JEUS 커맨드를 실행할 수 있다.

    • Python, Ruby 공통

      result = command("server-info")
    • Ruby

      result = command "server-info"

    선택 사항으로 JEUS 커맨드에 verbose 옵션을 추가적으로 실행할 수 있다. 기본적으로 비활성화(false) 상태이다. JEUS 커맨드에 verbose 옵션을 활성화(true) 한 경우에는 해당 커맨드의 실행 결과를 화면에 상세하게 출력한다.

    • Python:

      result = command("server-info", [True | False])
    • Ruby:

      result = command "server-info", [true | false]
  • 결과 데이터

    JEUS 커맨드 실행에 대한 결과로 JeusResult 객체가 리턴되며 결과가 표 형태의 결과를 포함할 경우 JeusResult로부터 JeusTabularData 객체를 얻을 수 있다. 각 데이터 타입은 아래와 같은 메소드를 제공한다.

    • JeusResult

      메소드설명
      isComplete()JEUS 커맨드 실행이 정상적으로 완료되었는지 리턴한다.
      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]))
    • 스크립트의 인자로 애플리케이션 경로와 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))

참고

현재 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 클라이언트, 서버 애플리케이션은 이 툴을 실행할 필요가 없다.

이 툴은 다음과 같은 경우에 사용하면 효과적이다.

  1. EJB 2.x 표준에 준하는 Bean들이 많아서 최초 디플로이 시간이 오래 걸리는 경우

  2. 서비스 타임에 JSP 컴파일할 시간이 오래 걸려서 미리 컴파일을 해두어야 하는 경우

EJB 2.x 모듈의 경우에는 deploy할 때에 애플리케이션에 fast-deploy 설정을 해야 한다. 또는 jeusadmin 콘솔 툴의 deploy 명령어에 [-fast] 옵션을 추가한다. 이 옵션을 통해서 모듈의 런타임 deploy하는 경우 appcompiler가 자동으로 수행되는 것을 막을 수 있다. EJB 엔진은 fast-deploy 옵션이 설정된 경우 인터페이스 Impl, Skeleton, Stub 클래스들을 생성하고 컴파일하는 과정을 수행하지 않고, 미리 생성된 클래스들을 사용해서 deploy할 때 시간을 줄일 수 있다. EJB 3.x 모듈의 경우 appcompiler가 수행되지 않는다. 따라서 하나의 모듈안에 EJB 3.x 모듈내에 EJB 2.x가 함께존재하더라도 appcompiler는 수행되지 않는다.

웹 엔진은 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 파일의 이름을 설정한다.

    • <clientview_filename>은 EJB archived 파일 형식인 JAR만 지원하며, 컴파일하는 대상(archived or exploded application)이 존재하는 디렉터리에 생성된다. 이 옵션은 standalone EJB 모듈과 EJB 모듈을 가지고 있는 EAR 애플리케이션에만 적용된다.

    • <clientview_filename>은 <application_file_or_directory_name>과 동일한 경우에는 지원하지 않는다.

    • <clientview_filename>과 동일한 이름의 파일이 존재할 경우 clientview를 위한 인터페이스 클래스와 생성된 Stub 클래스를 이미 존재하는 동일한 이름의 파일에 포함시킨다. clientview 파일은 서버에 설치된 EJB를 이용하는 클라이언트 애플리케이션을 개발하기 위해 클라이언트에게 제공한다.

    [-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에서 지원하는 프로퍼티 목록이다. 각 프로퍼티에 대한 상세 설명은 대응되는 jeus-ejb-dd.xml 태그의 description을 참고한다.

프로퍼티Type비고
sourceString대상 EJB 모듈의 경로이다. jeus-ejb-dd.xml의 태그와 관련 없다.
logging-levelStringejbddinit를 실행할 때 화면에 출력되는 로그의 레벨로 jeus-ejb-dd.xml의 태그와 관련 없다.
export-nameStringjeus-ejb-dd.xml의 <export-name> 태그에 대응한다. 특정 EJB에 대해서만 사용을 권장한다. 사용하는 경우 패턴을 지원한다. 자세한 내용은 export-name 프로퍼티에 대한 패턴 지원을 참고한다.
local-export-nameStringjeus-ejb-dd.xml의 <local-export-name> 태그에 대응한다. 특정 EJB에 대해서만 사용을 권장한다.
export-portint (not negative)jeus-ejb-dd.xml의 <export-port> 태그에 대응한다.
export-iiopbooleanjeus-ejb-dd.xml의 <export-iiop> 태그에 대응한다.
thread-maxint (not negative)jeus-ejb-dd.xml의 <thread-max> 태그에 대응한다.
bean-pool-minint (not negative)jeus-ejb-dd.xml의 <bean-pool>/<pool-min> 태그에 대응한다.
bean-pool-maxint (not negative)jeus-ejb-dd.xml의 <bean-pool>/<pool-max> 태그에 대응한다.
connect-pool-minint (not negative)jeus-ejb-dd.xml의 <connect-pool>/<pool-min> 태그에 대응한다.
connect-pool-maxint (not negative)jeus-ejb-dd.xml의 <connect-pool>/<pool-max> 태그에 대응한다.
capacityint (not negative)jeus-ejb-dd.xml의 <capacity> 태그에 대응한다.
passivation-timeoutlong (not negative or -1 for disable)jeus-ejb-dd.xml의 <passivation-timeout> 태그에 대응한다.
disconnect-timeoutlong (not negative or -1 for disable)jeus-ejb-dd.xml의 <disconnect-timeout> 태그에 대응한다.
engine-typeString (defined)

jeus-ejb-dd.xml의 <engine-type> 태그에 대응한다.

다음 중에 하나를 설정한다.

  • EXCLUSIVE_ACCESS

  • SINGLE_OBJECT

  • MULTIPLE_OBJECT

subengine-typeString (defined)

jeus-ejb-dd.xml의 <subengine-type> 태그에 대응한다.

다음 중에 하나를 설정한다.

  • ReadLocking

  • WriteLocking

  • WriteLockingFind

fetch-sizeint (not negative)jeus-ejb-dd.xml의 <fetch-size> 태그에 대응한다.
init-cachingbooleanjeus-ejb-dd.xml의 <init-caching> 태그에 대응한다.
table-nameStringjeus-ejb-dd.xml의 <table-name> 태그에 대응한다.
creating-tableString (defined)

jeus-ejb-dd.xml의 <creating-table> 태그에 대응한다.

다음 중에 하나를 설정한다.

  • none

  • use-existing

  • force-create

deleting-tablebooleanjeus-ejb-dd.xml의 <deleting-table> 태그에 대응한다.
db-vendorStringjeus-ejb-dd.xml의 <db-vendor> 태그에 대응한다.
datasource-nameStringjeus-ejb-dd.xml의 <data-source-name> 태그에 대응한다.
enable-instant-qlbooleanjeus-ejb-dd.xml의 <enable-instant-ql> 태그에 대응한다.

export-name 프로퍼티에 대한 패턴 지원

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

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를 이용하여 경로를 지정한다.

encryption은 다음의 디렉터리에 위치한 encryption 스크립트로 실행할 수 있다.

JEUS_HOME/bin/


다음은 툴 사용법, 파라미터 및 예제에 대한 설명이다.

  • 사용법

    Usage: encryption <algorithm> <text> [-options ...]
    Options:
        -algolist                show available algorithms
        -algorithm <algorithm>   Encryption algorithm
        -convert                 convert old ciphertext format to new ciphertext format
        -decode                  set to decode mode; used for base16/base64 only
        -domain <domain>         domain name
        -h                       help for Encryption
        -keypath <keypath>       security key path
        -protectkey              use protected secret key
        -s                       describe simple result only
        -text <text>             Text to be encrypted
    Simple example : encryption AES 1234
  • 파라미터

    파라미터설명
    -algorithm <algorithm>text를 인코드할 알고리듬을 설정한다. 필수 옵션으로 명시하지 않을 경우 첫 번째 argument를 algorithm 값으로 간주한다.
    -algolist사용 가능한 알고리듬들을 출력한다.
    -convert입력한 암호문을 새로운 암호문으로 변경한다.
    -decodeBASE16/BASE64로 암호화된 암호문을 디코드하여 평문을 얻어낸다.
    -domain <domain>대칭키 알고리듬을 입력한 domain이 가지고 있는 security.key를 사용한다. -domain, -keypath 중 한 가지만 입력해야 한다.
    -h사용법을 출력한다.
    -keypath <keypath>대칭키 알고리듬을 입력한 keypath가 가지고 있는 security.key를 사용한다. -domain, -keypath 중 한 가지만 입력해야 한다.
    -protectkeyMaster Password를 입력받아 security.key 파일을 암호화 한다. 암호화된 security.key를 사용하기 위해서는 입력했던 Master Password를 입력해야 한다.
    -s인코드 결과값만 출력한다.
    -text <text>인코드될 평문을 설정한다. 필수 옵션으로 명시하지 않을 경우 두 번째 argument를 text 값으로 간주한다.
  • 예제

    다음은 JEUS_HOME 시스템 환경변수가 설정되어 있고, 시스템 Path에 JEUS_HOME/bin 디렉터리가 설정되어 있다고 가정하는 경우 encryption 호출에 대한 예이다.

    호출 후에 툴은 단순히 인코딩 또는 디코딩된 문자열을 조회한다. 만약 툴에 어떤 파라미터도 제공하지 않았거나, 호출 문법이 잘못되었을 경우 단순한 도움말 메시지가 출력된다.

    $ encryption base64 mypassword
    bXlwYXNzd29yZA==

    다음은 문자열 "bXlwYXNzd29yZA=="는 "mypassword"를 Base 64포맷으로 인코딩한 것이다.

    $ encryption DESede mypassword -domain domain_name
    [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 방식이 좀 더 보안적인 측면에서 강화된 버전으로 바뀌었다. 따라서 cipher text의 포맷이 조금 변화하였는데, Fix#4 이전 버전에서 생성한 암호문을 이후 버전에서 그대로 사용할 수 없게 되었다. 이에 따라 JEUS 6 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=]

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로그 레벨을 지정한다.
    -verboseVerbose 메시지를 출력한다.
  • 예제

    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 매핑 파일을 생성한다.

jeusddupgrade는 사용자 입력한 애플리케이션 내 JEUS DD 파일(jeus-ejb-dd.xml, jeus-web-dd.xml, jeus-application-dd.xml)을 현재 JEUS 버전에 맞도록 수정해 주는 툴이다.

다음은 툴 사용법, 파라미터 및 예제에 대한 설명이다.

  • 사용법

    usage: jeusddupgrade [OPTIONS] <APP_PATH>
    Upgrade old version Jeus deployment descriptor in application.
    It is internally equivalent to -upgrade option in deploy command.
     -b,--backup   Backup original application.
     -h,--help     Print this message.
  • 파라미터

    파라미터설명
    -b,--backup

    원본 애플리케이션을 백업한다.

    백업 파일 혹은 디렉터리는 각 이름 뒤에 '.origin'이 붙는다.

    -h,--help도움말을 출력한다.
  • 예제

    • 사용법을 출력한다.

      $ jeusddupgrade -help
    • web.war를 백업하고 업그레이드한다.

      $ jeusddupgrade -b web.war

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사용법을 출력한다.
  • 예제

    schemagen는 JEUS_HOME/bin/ 디렉터리에 위치한 일반적인 스크립트 파일이다.

    schemagen 툴을 실행하는 예는 다음과 같다.

    $ schemagen -d build/classes src/java/cardfile/Address.java

    위의 명령어는 Root Element에 해당하는 Address.java 소스 파일로부터 "build/classes" 디렉터리에 스키마를 생성한다.

본 절에서는 tcpmon 툴에 대해 설명한다.

Listener 모드를 사용하기 위해서 다음과 같은 시나리오를 가정한다.

  • 서버(A)는 8000번 Port로 SOAP 요청을 받아들인다.

  • 클라이언트(B)의 웹 서비스 클라이언트가 송수신하는 SOAP 메시지를 모니터링하고자 한다.


이 경우 웹 서비스 클라이언트 프로그램에서는 tcpmon을 사용하여 SOAP 메시지를 모니터링할 수 있다.

클라이언트(B)에서 tcpmon을 실행한 뒤 다음과 같이 설정한다.

웹 서비스의 end-point 주소 변경

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>

webddgen은 사용자 입력 값을 바탕으로 웹 애플리케이션 내 WEB-INF 디렉터리에 jeus-web-dd.xml를 생성 또는 업데이트하는 툴이다. 웹 모듈 내부의 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>

    웹 모듈의 경로를 설정한다.

    .war 확장자를 갖는 JAR 형식의 압축 파일이거나 디렉터리이다.

    [-ctx <context-path>]jeus-web-dd.xml에 설정할 context-path 정보이다.
    [-prop <context-level-property>]

    웹 모듈(Web Context) 단위로 설정하는 프로퍼티이다.

    예를 들어 JEUS 4에서 작성한 JSP를 수정하지 않고 사용하려면 해당 JSP가 포함된 웹 모듈의 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가 포함된 웹 모듈에 jeus.servlet.jsp.modern 프로퍼티를 false로 설정한다.

      $ webddgen -file oldjsps.war -prop jeus.servlet.jsp.modern=false

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>생성되는 소스 파일들의 위치를 설정한다.
    -verboseVerbose 메시지를 출력한다.
    -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 스펙 버전에 따라 코드를 생성한다.
    -verboseVerbose 출력은 true일 때 가능하다. (기본값: false)
    -version버전 정보를 화면에 출력한다.
    -wsdllocation <location>WSDL URI를 이 속성에 명시하면 그 URI 값이 생성되는 SEI(Service Endpoint Interface)와 서비스 인터페이스의 @WebService.wsdlLocation Annotation과 @WebServiceClient.wsdlLocation Annotation에 설정된다.
    -clientjar <jarfile>웹 서비스 호출에 필요한 WSDL 메타 데이터와 함께 생성된 아티팩트의 jar 파일을 생성한다.
    -generateJWSStub된 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 클래스 소스들은 삭제되지 않는다.

wsdl2java은 JAX-RPC 웹 서비스를 위한 툴로 WSDL 파일로부터 다음의 파일을 생성한다.

  • 클라이언트의 웹 서비스 Stub Java 소스 코드들

  • 서버의 웹 서비스 인터페이스 Java 소스 코드들

다음은 툴 사용법, 파라미터 및 예제에 대한 설명이다.

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
  • 파라미터

    파라미터설명
    UDDIVersionUDDI의 버전을 설정한다. 입력값은 v2 또는 v3이다.
    WSDLURI실제 WSDL이 존재하는 곳의 URI 값이다.
    -uddiInquiry <UDDIInquiryURI>실제 UDDI의 Inquiry URI 값을 설정한다.
    -uddiPublish <UDDIPublish>실제 UDDI의 publish URI 값을 설정한다.
    -uddiUsername <UDDIUsername>UDDI에 접근할 때 필요한 사용자명을 설정한다.
    -uddiPassword <UDDIPassword>UDDI에 접근할 때 필요한 패스워드를 설정한다.
    -wsdlUsernameWSDL URL에 접근할 때 필요한 사용자명을 설정한다.
    -wsdlPasswordWSDL 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>             :  specify 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|2.1)    :  behave like XJC 2.0 and generate code that doesnt use any 2.1 features.
      -encoding <encoding> :  specify character encoding for generated source files
      -enableIntrospection :  enable the correct generation of Boolean getters and setters to enable Bean Introspection APIs.
      contentForWildcard   :  disable XML security features when parsing XML documents.
      -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
      -fullversion         :  display full 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
      -Xpropertyaccessors  :  Use XmlAccessType PROPERTY instead of FIELD for generated classes
  • 파라미터

    파라미터설명
    -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 포맷에 관한 외부 카탈로그 파일을 설정한다.
    -readOnlytrue일 경우에 Java 소스 파일들은 읽기 가능 모드이다. (기본값: false)
    -npapackage-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의 간단한 구문으로 처리하도록 지정한다.
    -dtdXML DTD 파일을 컴파일러의 입력 스키마로 사용한다.
    -wsdlWSDL 파일을 입력하여 그 안에 사용되고 있는 스키마 파일들을 컴파일한다.
    -verboseVerbose 메시지를 출력한다.
    -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"에 생성한다.