제1장 시스템 프로퍼티

내용 목차

1.1. 개요
1.2. 서버 시스템 프로퍼티
1.3. 네트워크 시스템 프로퍼티
1.4. JNDI 시스템 프로퍼티
1.5. 트랜잭션 시스템 프로퍼티
1.5.1. TM 클라이언트를 위한 시스템 프로퍼티
1.5.2. 하위 호환성을 위한 시스템 프로퍼티
1.6. 웹 엔진 프로퍼티
1.6.1. 웹 엔진 레벨 프로퍼티
1.6.2. 가상 호스트 레벨 프로퍼티
1.6.3. 웹 애플리케이션 레벨 프로퍼티
1.7. 세션 서버 시스템 프로퍼티
1.8. EJB 시스템 프로퍼티
1.8.1. EJB 시스템 프로퍼티
1.8.2. JPA 시스템 프로퍼티
1.8.3. RMI 시스템 프로퍼티
1.9. 보안 시스템 프로퍼티
1.9.1. Standard Java SE & Java EE 보안 시스템 프로퍼티
1.9.2. JEUS 보안 시스템 프로퍼티
1.10. JEUS MQ 시스템 프로퍼티
1.10.1. JEUS MQ 서버
1.10.2. JEUS MQ 클라이언트
1.11. Deployment 시스템 프로퍼티
1.12. Console 시스템 프로퍼티
1.13. Node Manager 시스템 프로퍼티

1.1. 개요

시스템 프로퍼티는 JVM에 -D 옵션으로 설정하는 환경변수이다. JEUS는 기본적으로 Launch JVM을 이용해서 서버 JVM을 구동하기 때문에 domain.xml의 각 서버별 설정에 시스템 프로퍼티를 설정해야 한다.

시스템 프로퍼티를 설정하는 방법은 아래와 같다.

<domain>
    <servers>
        <server>
            <name>server1</name>
            <jvm-config>
                <jvm-option>-Xmx512m -XX:MaxPermSize=250m</jvm-option>
            </jvm-config>
        ...

주의

1. 도메인 Admin 서버 또는 서버 스크립트에 설정하는 것은 Launch JVM에만 적용되므로 주의한다.

2. 시스템 프로퍼티는 JEUS 전반적인 동작과 모든 애플리케이션에 영향을 미치므로 설정에 주의한다. 시스템 프로퍼티보다는 XML 설정을 사용하길 권장한다.

1.2. 서버 시스템 프로퍼티

본 절에서는 서버 시스템 프로퍼티에 대해 설명한다.

  • jeus.home

    설명 XML이나 코드 등을 생략한다.
    기본값 JEUS가 설치된 디렉터리
  • jeus.launcher.log.home

    설명 JEUS Launcher Log가 생성되는 위치를 지정한다. 지정하지 않을 경우 JEUS_SERVER_HOME/logs에 남게 된다.
    기본값 null
  • jeus.boot.printclasspath

    설명 시스템 클래스 로더의 클래스 패스에 대한 출력 여부를 결정한다.
    기본값 false
  • jeus.server.autorestart

    설명 SCF에 의해 MS(Managed Server)가 장애로 감지되었을 때 자동으로 재시작시킬지의 여부이다. 예외적으로 JAVA 노드 매니저를 쓸 경우는 장애 감지를 SCF에 의존하지 않기 때문에 해당 프로퍼티와 상관없이 노드 매니저의 auto restart 설정 값에 의존한다.
    기본값 true
  • jeus.jdk.home

    설명 JDK Home 디렉터리 경로로 javac, tools.jar 경로를 설정할 때 사용한다.
    기본값지정되어 있지 않으면 java.home을 사용
  • jeus.properties.replicate

    설명

    Luncher에서 서버를 띄울 때 전달할 시스템 프로퍼티의 prefix이다.

    domain.xml의 server/jvm-config/jvm-option이 우선한다.

    기본값 jeus
  • jeus.server.check-interrupted-status

    설명

    JEUS에서 EJB, JDBC operation을 수행하는 Thread가 인터럽트 시그널을 받으면 Exception의 발생 여부를 설정한다.

    JEUS에서는 특정 작업하는 경우 Thread가 인터럽트가 걸려있으면 Exception이 발생하므로 해당 Exception에 대해서는 사용자 애플리케이션에서 처리해 주어야 한다.

    기본값 true
  • jeus.threadpool.queuesize

    설명

    JEUS 시스템의 Threrad Pool에서 사용하는 Thread Pool의 내부 Queue size를 설정한다. Thread Pool에서는 Task 수행을 위해 내부 Queue를 사용하는데 이 Queue의 크기를 설정한다. 만약 시스템의 부하가 많으나 설정 Thread의 개수가 작을 경우 Queueing되는 Task들이 증가할 것이고, 이때 최대 설정한 Queue 크기만큼만 Queueing을 허용한다.

    이 시스템 프로퍼티보다 domain.xml의 server/system-thread-pool/queue-size 값이 우선한다.

    기본값 4096
  • jeus.threadpool.keepalive

    설명

    JEUS 시스템의 Threrad Pool에서 사용하는 Thread Pool에 적용될 Keep alive time을 설정한다. 만약 min 이하의 Thread에 대해서 설정된 시간 동안 사용되지 않는다면, 해당 Thread는 Thread Pool에서 제거된다.

    이 시스템 프로퍼티보다 domain.xml의 server/system-thread-pool/keep-alive-time 값이 우선한다.

    기본값 300000 (단위: ms)
  • jeus.rmi.defaultPort

    설명 RMI의 default export port이다. export-port가 지정되지 않은 모든 EJB에도 적용된다.
    기본값 - base port + 7
  • jeus.rmi.jeusrmi.defaultPort

    설명 JEUS가 제공하는 JEUS RMI를 사용하는 경우 RMI의 default export port이다.
    기본값 - base port + 11
  • jeus.vm.bits

    설명

    JVM의 bit 수이다.

    서버가 기동할 때 64bit JVM인 경우 64를 설정하면 -d64가 추가된다.

    IBM의 경우에는 -d64가 필요없다.

  • jeus.interop.ssl.keystore

    설명 CORBA CSIv2에서 사용할 SSL Keystore를 지정한다.
    기본값 jeus.net.ssl.keystore의 값
  • jeus.interop.ssl.keypass

    설명 CORBA CSIv2에서 사용할 SSL Keystore의 패스워드를 지정한다.
    기본값 jeus.net.ssl.keypass의 값
  • jeus.interop.ssl.truststore

    설명 CORBA CSIv2에서 사용할 SSL Truststore를 지정한다.
    기본값 jeus.net.ssl.truststore의 값
  • jeus.interop.ssl.trustpass

    설명 CORBA CSIv2에서 사용할 SSL Truststore의 패스워드를 지정한다.
    기본값 jeus.net.ssl.trustpass의 값
  • jeus.jvm.version

    설명 JEUS가 사용하는 JVM의 버전에 대한 정보이다.
    기본값 hotspot (-server를 사용함)
  • jeus.server.cpumonitor.enabled

    설명 HOST CPU 사용률을 측정하기 위한 모니터링 기능을 활성화한다.
    기본값 false
  • jeus.server.cpumonitor.interval

    설명 HOST CPU 사용률을 모니터링하는 기능을 사용하는 경우 CPU 사용률을 측정할 주기이다.
    기본값 60000 (단위: ms)
  • jeus.server.process.cpumonitor.enabled

    설명 Process CPU 사용률을 측정하기 위한 모니터링 기능을 활성화한다.
    기본값 false
  • jeus.server.process.cpumonitor.interval

    설명 Process CPU 사용률을 모니터링하는 기능을 사용하는 경우 CPU 사용률을 측정할 주기이다.
    기본값 2000 (단위: ms)
  • jeus.server.cpumonitor.ratio

    설명 Process CPU 사용률을 모니터링하는 기능을 사용하는 경우 CPU 오버플로우의 기준치를 설정한다. 소숫점으로 설정하며 CPU 사용량을 최대 100으로 볼 때 최대 몇 퍼센트의 CPU를 사용하고 있는 경우 오버플로우로 가정할지를 설정한다.
    기본값 0.8
  • jeus.server.enable.restart.in.memory.shortage

    설명 메모리가 오버플로우될 때 서버의 재기동 여부를 설정한다.
    기본값 true
  • jeus.server.memorymonitor.enabled

    설명 서버의 메모리 사용률을 측정하기 위한 모니터링 기능을 활성화한다. 모니터링할 때 Thread Dump가 로그에 남게 된다.
    기본값 false
  • jeus.server.memorymonitor.interval

    설명 메모리 사용률을 모니터링하는 기능을 사용하는 경우 메모리 사용률을 측정하고자 하는 주기이다.
    기본값 2000 (단위: ms)
  • jeus.server.memorymonitor.duration

    설명 메모리 사용률을 모니터링하는 기능을 사용하는 경우 메모리 오버플로우 현상의 지속 시간을 설정한다. 설정한 시간동안 메모리 오버플로우 시간이 지속되면 서버가 종료된다.
    기본값 60000 (단위: ms)
  • jeus.server.memorymonitor.ratio

    설명 메모리 사용률을 모니터링하는 기능을 사용하는 경우 메모리 오버플로우의 기준치를 설정한다. 소숫점으로 설정하며 메모리 사용량을 최대 100으로 볼 때 최대 몇 퍼센트의 메모리를 사용하고 있는 경우 오버플로우로 가정할지를 설정한다.
    기본값 0.8

    참고

    jeus.server.memorymonitor.enabled, jeus.server.memorymonitor.ratio, jeus.server.memorymonitor.interval, jeus.server.memorymonitor.duration, jeus.server.enable.restart.in.memory.shortage 프로퍼티에 대한 자세한 내용은 JEUS Server 안내서”의 “3.4.2. 메모리 사용량에 따른 제어”를 참고한다.

  • jeus.server.maxdowntime

    설명

    메모리 사용률을 모니터링하는 기능을 사용하는 경우 메모리 오버플로우가 발생하여 서버를 종료할 때 서버가 종료될 때까지 대기하는 시간을 설정한다.

    설정한 시간이 지나도 서버가 종료되지 않으면 서버는 강제종료된다.

    기본값 0 (단위: ms)
  • jeus.server.configfile.backup.size

    설명 동적 변경할 때 저장되는 백업 domain.xml의 갯수를 지정한다.
    기본값 50
  • jeus.server.standby.retrycount

    설명

    서버를 STANDBY 상태로 기동한 경우 기동을 재시도할지 여부 및 횟수를 지정한다.

    STANDBY 상태로 기동하는 원인을 정확하게 파악하고 있고, 확실하게 복구 가능하다고 판단되는 경우에만 설정해야 한다.

    기본값 0 (재시도하지 않음), 5 (클러스터에 속한 서버인 경우)
  • jeus.server.standby.retryinterval

    설명 jeus.server.standby.retrycount를 통해 횟수를 지정하고, 본 시스템 프로퍼티를 통해 재시도 사이에 간격을 지정한다.
    기본값 60000 (단위: ms)
  • jeus.print-system-properties

    설명 설정된 시스템 프로퍼티를 출력할지를 설정한다.
    기본값 false
  • jeus.management.snmp.dynamic

    설명

    SNMP를 서버에 사용하는 경우 Dynamic OID 생성 여부를 설정한다.

    SNMP를 서버에 사용하는 경우 OID를 Static으로 할지 Dynamic으로 할지 결정할 수 있다.

    • true : Static일 경우로 MIB 파일 기반의 OID를 생성한다.

    • false : Dynamic일 경우로 객체에 따라서 동적으로 생성된 OID가 Static OID의 접미사로 추가된다.

    기본값 true
  • jeus.management.snmp.dynamic.shortoid

    설명

    Dynamic OID의 길이를 선택한다.

    MIB 기반의 OID에 추가적으로 더해지는 OID의 구성요소의 자리 수를 결정한다.

    • true : Short OID일 경우로 8자리의 ID가 추가된다.

    • false : Short OID가 아닐 경우로 32자리의 ID가 추가된다.

    기본값 false
  • jeus.domainadminserver.deploy.socket

    설명

    DAS(Domain Administration Server)가 유지하는 deploy 용도 소켓 커넥션 갯수의 최댓값이다.

    MS(Managed Server)에서는 부팅 시간을 단축시키기 위해 DAS로부터 애플리케이션를 받아올 때 커넥션을 여러 개 맺고 병렬로 받아올 수 있다. 이때 DAS는 한순간에 여러 MS로부터 많은 커넥션을 맺게 되므로 이 최댓값를 설정할 수 있도록 한다.

    DAS의 deploy 커넥션이 최댓값이 된 상태에서 다른 MS로부터 애플리케이션 전송 요청이 올 경우에는 해당 MS는 1개의 커넥션만을 사용하여 순차적으로 애플리케이션를 받아오도록 한다.

    기본값 100
  • jeus.managedserver.deploy.socket

    설명

    DAS로부터 애플리케이션를 받아올 때 MS가 사용하는 boot time deploy connection의 최댓값이다.

    MS가 boot하면서 DAS로부터 애플리케이션를 받아오게 되는데 이때 병렬적으로 받아오기 위해 사용하는 MS boot time deploy connection 갯수의 최댓값을 설정한다.

    한 MS가 너무 많은 커넥션을 설정해서 DAS에서의 커넥션 갯수가 full이 되버릴 경우 다른 MS가 영향을 받을 수 있으므로 주의하여 사용한다.

    애플리케이션 전송이 끝나면 해당 커넥션은 바로 해제가 되어 DAS의 가용한 커넥션의 갯수를 다시 늘려준다. 또한 해당 설정의 커넥션 갯수를 크게 설정하더라도 받아올 애플리케이션의 갯수가 작다면 내부적으로 유지하는 커넥션의 갯수는 애플리케이션의 갯수로 자동으로 설정된다.

    기본값 5
  • jeus.access.logging.skip.when.busy

    설명 jeus.logging.useAsync가 true일 때에 한해 적용되는 옵션이다. 프로퍼티에 대한 자세한 내용은 JEUS Server 안내서”의 “8.1. 개요”를 참고한다.
    기본값 false
  • jeus.jmx.ping.period

    설명 JMX 커넥션에서 연결 상태를 체크하기 위해 사용하는 Ping의 주기를 설정한다.
    기본값 15000 (단위: ms)
  • jeus.jmx.ping.timeout

    설명 JMX 커넥션에서 연결 상태를 체크하기 위해 사용하는 Ping의 타임아웃을 설정한다. Ping을 보낸 후 응답이 타임아웃 시간만큼 오지 않으면 연결에 문제가 있다고 판단하여 IOException을 발생시킨다.
    기본값 15000 (단위: ms)
  • jeus.domainadminserver.webadmin.contextpath

    설명 WebAdmin의 context path를 설정한다. 지정하지 않은 경우 내부적으로 설정되어 있는 기본값을 사용한다.
    기본값 null
  • jeus.config.lock.timeout

    설명 동적 설정 변경을 위한 Lock을 획득하지 못했을 때 대기할 시간을 지정한다. 0 이하의 값을 지정한 경우에는 대기하지 않는다.
    기본값 60000 (단위: ms)
  • jeus.jmx.worker.max

    설명 JMX 요청 메시지를 처리할 스레드를 제공하는 스레드 풀이 가질 수 있는 스레드의 최대치를 지정한다.
    기본값 20
  • jeus.server.invocation.keepBootOnError

    설명 서버 기동 중 life cycle invocation 설정 문제로 에러가 발생한 경우 서버를 Standby 상태가 아닌 Running 상태로 기동시킬지 여부를 결정한다.
    기본값 false
  • jeus.boot.ignorepatchoverlap

    설명 패치 파일에 중복 클래스가 존재하는 경우, 이를 무시하고 기동을 진행할지 여부를 지정한다.
    기본값 false

1.3. 네트워크 시스템 프로퍼티

본 절에서는 네트워크 시스템 프로퍼티에 대해 설명한다.

  • jeus.server.checktmout

    설명 JEUS를 관리하는 RMI 커넥션이나 JMX 커넥터에 대해 적용할 타임아웃을 설정한다.
    기본값 60 * 1000 (단위: ms)
  • jeus.net.crosswait

    설명 두 JEUS 서버가 서로 커넥션을 맺으려고 시도하는 Cross Connection 상황일 때 커넥션이 거부당한 프로세스에서 상대방이 접속요청을 하여 커넥션이 맺어지길 기다리는 시간을 지정한다.
    기본값 10000 (단위: ms)
  • jeus.net.timewait

    설명 CLOSE 메시지가 전달되기를 기다리는 시간이다. 이 시간이 짧으면 정상적인 종료임에도 IOException이 발생했다는 trace가 출력될 수 있다.
    기본값 10000 (단위: ms)
  • jeus.net.tcpbuffer

    설명

    JEUS가 운영되는 환경의 TCP Buffer Size를 설정한다.

    이 값은 JEUS 서버 내부의 Read Buffer의 크기로 사용되기 때문에 이 값이 정확해야 최대의 I/O 성능을 낼수 있다.

    기본값 8*1024 (단위: byte)
  • jeus.net.recvbuffer

    설명 JEUS 서버 환경의 TCP Receive Buffer의 크기를 설정한다.
  • jeus.net.sendbuffer

    설명 JEUS 클라이언트 환경의 TCP Send Buffer의 크기를 설정한다.
  • jeus.net.busywrite

    설명 non-blocking으로 동작하는 경우 write를 할 때 Selector에게 맡기지 않고 계속 시도하는 횟수를 설정한다. 받는 쪽에서 read를 하지 않는 경우를 제외하고는 이 횟수 내에서는 select()를 다시 호출하는 일이 없으므로 빠르다.
    기본값 2
  • jeus.net.msg.max

    설명

    JEUS 프로토콜을 통해서 전달될 수 있는 한 메시지의 최대 크기를 설정한다.

    이 크기를 초과하는 메시지를 보낼 경우 수신측에서 Exception이 발생하고 연결이 끊어질 수 있다.

    기본값 5 * 1000 * 1000 (단위: byte)
  • jeus.net.ping.enable

    설명 양방향 Ping 기능의 사용 여부를 설정한다.
    기본값 false
  • jeus.net.ping.timeout

    설명 Ping 메시지의 응답을 기다리는 시간을 설정한다.
    기본값 60*1000 (단위: ms)
  • jeus.net.ping.period

    설명

    Ping 메시지를 보내는 주기를 설정한다 .

    값이 0이면 Ping을 보내어 상대 노드가 살아 있는지 체크하지 않는다.

    기본값 10*60*1000 (단위: ms)
  • jeus.net.nio.select.limit

    설명 non-blocking으로 동작할 때 select()의 호출이 이 횟수 이상 실패하면 새로운 Selector를 만들어서 대체시킨다.
    기본값 5
  • jeus.net.nio.write.limit

    설명

    non-blocking으로 동작하는 경우 Write Thread가 블록되기까지 Write Queue에 쌓이는 메시지 크기를 설정한다. 현재 write를 할 수 없는 상황이면 Write Queue에 넣게 된다.

    지정한 byte 수를 초과하면 Write Thread를 블록시킨다.

    기본값 10* 1024 (단위: byte)
  • jeus.net.nio.write.restart

    설명 non-blocking으로 동작하는 경우 Write Thread가 다시 시작할 때 Write Queue에 쌓인 메시지 크기를 설정한다. Write Event로 Write Queue의 byte 수가 지정한 byte보다 적어지면 블록되어 있는 Write Thread들이 모두 깨어난다.
    기본값 3*1024 (단위: byte)
  • jeus.net.nio.write.repeat.count

    설명

    한 메시지를 끝까지 쓰기 위해 write를 시도하는 횟수를 설정한다.

    Selector Thread가 한 소켓에 큰 메시지가 있어서 그것을 write하느라 다른 소켓의 메시지를 write 못하는 경우에 사용한다. 여러 소켓에 사용되는 메시지의 크기가 모두 큰 경우에는 이 옵션을 적용하면 response가 오히려 느려질 수 있으니 주의한다.

    기본값 -1(무한대)
  • jeus.net.reuseAddress

    설명 서버 소켓의 SO_REUSEADDR이다.
    기본값 false
  • jeus.ssl.enabledProtocols

    설명 SSL 인증에 사용할 SSL 프로토콜 버전들을 설정한다. 각 프로토콜 버전들은 콤마(,)로 구분하여 나열한다.
    기본값 null
  • jeus.net.client.use-ssl

    설명 JEUS에 접속하는 클라이언트가 SSL을 사용할 지의 여부를 설정한다. 다른 설정들은 별도의 시스템 프로퍼티로 설정해야 한다.
    기본값 false
  • jeus.net.client.ssl-properties-file

    설명 JEUS에 접속하는 클라이언트가 사용할 설정이 담긴 프로퍼티 파일(Properties File)을 설정한다.
    기본값 null
  • jeus.ssl.keystore 혹은 javax.net.ssl.keyStore

    설명 SSL 인증에 사용할 Keystore의 경로를 설정한다.
  • jeus.ssl.keypass 혹은 javax.net.ssl.keyStorePassword

    설명 SSL 인증에 사용할 Keystore의 Password를 설정한다.
  • jeus.ssl.keystorepass

    설명 SSL 인증에 사용할 Keystore의 Key Password를 설정한다.
  • jeus.ssl.truststore 혹은 javax.net.ssl.TrustStore

    설명 SSL 인증에 사용할 Truststore의 경로를 설정한다.
  • jeus.ssl.trustpass 혹은 javax.net.ssl.TrustStorePassword

    설명 SSL 인증에 사용할 Truststore의 Password를 설정한다.

1.4. JNDI 시스템 프로퍼티

본 절에서는 JNDI 시스템 프로퍼티에 대해 설명한다.

  • java.naming.factory.initial (필수)

    설명

    JNDI 서비스 프로바이더에 대한 InitialContext Factory 클래스 이름을 설정한다.

    이 Factory 클래스를 통해 InitialContext를 생성한다. 이 프로퍼티에 jeus.jndi.JNSContextFactory를 넣어서 JEUS의 InitialContext를 생성한다.

    기본값jeus.jndi.JNSContextFactory
  • java.naming.factory.url.pkgs

    설명JEUS의 InitialContext에서 URL scheme을 사용해서 lookup하기 위해 설정한다.
    기본값jeus.jndi.jns.url
  • java.naming.provider.url

    설명

    JNDI 서비스를 제공하는 MS의 DNS 호스트 이름과 포트를 정의한다. 즉, JEUS의 JNSServer의 IP 주소를 설정한다. 클러스터링으로 묶인 MS에 JNDI 요청을 할 때에는 클러스터링된 모든 서버의 주소를 콤마(,)로 구분해야 한다.

    (예: yohan:9736, yohan1:9836)

    기본값127.0.0.1:9736
  • java.naming.security.principal

    설명

    JEUS Naming Server에서 인증받기 위한 사용자명을 입력한다. 사용자명이 설정되지 않으면 “anonymous”로 처리된다.

    사용자명은 JEUS Security 도메인에 정의되어 있어야 한다.

    기본값anonymous
  • java.naming.security.credentials

    설명JEUS Naming Server에서 인증받기 위한 패스워드를 입력한다.
    기본값N/A
  • jeus.jndi.jns.resolution

    설명JNSClient가 리소스를 관리하는 체크 시간의 간격을 지정한다.
    기본값30 * 1000 (단위: ms)
  • jeus.jndi.jns.connecttimeout

    설명

    JNSClient가 JNSServer로 접속하는 데 사용하는 타임아웃을 지정한다.

    이 시간 동안 접속을 시도하다가 시간이 초과되면 jeus.net.ConnectException이 발생한다.

    기본값0 (무한대를 의미, OS에 따라 다를 수 있음) (단위: ms)
  • jeus.jndi.jns.connectionduration

    설명

    JNSClient가 JNSServer로 접속한 커넥션을 얼마나 유지할지 설정한다. 지정한 시간 동안 커넥션을 사용하지 않으면 커넥션이 자동으로 종료된다.

    기본값은 0으로 커넥션이 계속 유지된다.

    기본값0 (단위: ms)
  • jeus.jndi.local.tmout

    설명JNDI 서비스에서 클라이언트 역할을 하는 JNSClient에서 요청을 보낸 후 응답이 올 때까지 기다리는 시간을 지정한다. 이 시간이 지나도 JNSServer로부터 응답이 오지 않으면 jeus.util.WaitTimeoutException이 발생한다.
    기본값20 * 1000 (단위: ms)
  • jeus.jndi.cluster.recheckto

    설명JEUSClusterContext를 사용할 때 fail된 서버가 다시 살아났는지 확인할 주기를 지정한다.
    기본값300 * 1000 (단위: ms)
  • jeus.jndi.clusterlink.selection-policy

    설명

    클러스터링된 서버에 바인드된 어떤 객체를 lookup해서 사용하는 경우 어떤 서버에서 객체를 가져올 것인지에 대한 정책을 설정한다. EJB 2.x를 사용하는 경우에는 사용할 EJB 엔진을 선택하는 데에도 사용된다. 직접 Hashtable을 이용하여 환경값을 준 경우에는 system property보다는 주어진 환경 값을 우선한다.

    다음 중 하나를 선택할 수 있다.

    • locallinkPreference : 로컬 MS에 있는 객체를 사용하도록 한다. (기본값)

    • roundrobin : 처음 요청에서는 랜덤하게 선택한 MS의 객체를 사용하고, 그 후 요청부터는 하나씩 증가하면서 서버를 선택한다.

    • random : 클러스터링된 MS들 중에서 랜덤하게 하나를 선택하여 사용한다.

    기본값locallinkPreference
  • jeus.jndi.enable.cache

    설명

    JNDI 클라이언트(JNSClient)에서 캐시(Cache)를 사용할 것인지를 여부를 설정한다.

    • true : 캐시를 사용한다. (기본값)

    • false : 캐시를 사용하지 않는다.

    기본값true
  • jeus.jndi.jns.replicatebindings

    설명

    바인드하는 객체를 클러스터링으로 묶인 MS 전체에서 공유할 것인지 여부를 설정한다.

    • true : 객체를 공유한다. (기본값)

    • false : 객체를 공유하지 않는다.

    기본값true
  • jeus.jndi.jns.cachebindings

    설명

    객체를 바인드할 때 이 옵션을 설정하면 JNSServer에서 바인드를 완료한 후 JNSClient에 그 객체를 caching한다.

    • true : 객체를 caching한다. (기본값)

    • false : 객체를 caching하지 않는다.

    기본값true
  • jeus.jndi.jns.localbindings

    설명

    객체를 자신의 JVM에 있는 JNSClient에만 바인드한다.

    • true : 객체를 JEUS Naming Client에만 바인드한다. 이렇게 바인드한 객체는 JNDI 요청을 하는 클라이언트에서만 사용할 수 있다.

    • false : 객체를 JEUS Naming Server에 바인드한다. (기본값)

    기본값false
  • jeus.jndi.compat

    설명

    JNDI compatibility를 위한 설정이다. JEUS 7 Fix#2 이후 버전과 이전 버전 사이에 JNDI 서비스를 제공하려면 해당 property를 true로 설정해야 한다.

    • true : JNDI 서버가 JEUS 7 Fix#2 이전 버전이고, JNDI 클라이언트가 JEUS 7 Fix#2를 포함한 이후 버전일 때 JNDI compatibility를 위해 해당 property를 true로 설정해야 한다.

    • false : JEUS 7 Fix#2 이후 버전과 이전 버전 사이에 JNDI compatibility를 유지하지 않는다. (기본값)

    기본값false

1.5. 트랜잭션 시스템 프로퍼티

본 절에서는 트랜잭션 시스템 프로퍼티에 대해 설명한다.

  • jeus.tm.forcedReg

    설명

    서브 코디네이터가 루트 코디네이터에 등록하는 방식을 결정한다.

    • true : 트랜잭션이 연동되면 바로 등록한다.

    • false : RM이 있어야만 등록한다.

    기본값 true
  • jeus.tm.checkReg

    설명 서브 코디네이터가 루트 코디네이터에 제대로 등록되었는지를 확인하고 진행할지 확인하지 않고 진행할지 여부를 결정한다.
    기본값 true
  • jeus.tm.disableJoin

    설명 동일한 RM에서 나온 리소스들을 Join할 것인지 여부를 결정한다.
    기본값 false
  • jeus.tm.noLogging

    설명

    트랜잭션 매니저가 복구를 위해 트랜잭션 정보를 로그로 남기게 되는데 이를 남길지 여부를 설정한다.

    • true : 로그를 남기지 않는다.

    • false : 로그를 남긴다.

    기본값 false
  • jeus.tm.ignore.broken.log.file

    설명 TM 로그 파일이 깨져서 복구가 불가능한 상황일 때 해당 옵션이 true일 경우 JEUS에서 미리 파일이 깨진 것을 detect하고 전부 지워버린다. 파일이 깨진 채로 복구를 시도하게 될 경우 boot가 실패하기 때문에 깨진 파일로 인해 복구가 필요없다. boot는 성공해야 할 때 쓰도록 한다.
    기본값 false
  • jeus.tm.removeIncompleteTx

    설명 복구 대상이 되는 XA 리소스에 대해 복구가 끝나면 복구 리스트에서 삭제할지 여부를 결정한다. 수동으로 복구해야 할 상황을 대비할 경우에는 false로 지정한다.
    기본값 false
  • jeus.tm.recoveryTrial

    설명

    복구 실패한 리소스에 대한 복구 재시도 횟수를 설정한다.

    복구 재시도는 백그라운드로 구동된다.

    기본값 30
  • jeus.tm.recoveryInterval

    설명 복구 실패한 리소스에 대해 복구를 재시도하는 시간 간격을 설정한다.
    기본값 120000 (단위: ms)
  • jeus.tm.destroy-timeout

    설명

    트랜잭션이 timeout(active timeout)이 되었으나 명시적인 commit, rollback을 받지 못하면 트랜잭션 매니저는 타임아웃된 해당 리소스를 계속 유지하게 된다.

    이에 대해 cleanup 작업을 해주는 타임아웃을 지정한다. 즉, 타임아웃된 트랜잭션에 대해 이 설정된 값 이상의 시간이 흐르면 내부적으로 destroy 작업을 수행한다.

    기본값 1800000 (단위: ms)
  • jeus.tm.destroy-timeout-check-interval

    설명

    destroy timeout을 검사하기 위한 주기를 설정한다.

    설정된 주기를 통해 jeus.tm.destroy-timeout의 동작 여부를 확인한다.

    기본값 1800000 (단위: ms)
  • jeus.tm.ots.recoveryInterval

    설명 OTS를 복구할 때 코디네이터가 준비되어 있지 않을 경우 재시도를 하는 시간 간격을 설정한다.
    기본값 10000 (단위: ms)
  • jeus.tm.ots.decisionTO

    설명 전파되고 prepare가 호출된 후에 이 값에 지정된 시간 내에 commit/rollback이 오지 않으면 recovery 코디네이터의 replay_completion을 사용해서 commit/rollback을 한다.
    기본값 60000 (단위: ms)

1.5.1. TM 클라이언트를 위한 시스템 프로퍼티

클라이언트에서 TM을 사용할 때에는 XML 설정을 사용할 수 없으므로 시스템 프로퍼티로 설정해야 한다.

  • jeus.tm.not_use

    설명

    트랜잭션 매니저의 사용 여부를 결정한다.

    • true : 클라이언트의 경우 JNDI를 사용하긴 하나 트랜잭션은 사용하지 않을 경우를 뜻한다.

    • false : 클라이언트의 경우 JNDI와 트랜잭션을 사용하는 경우를 뜻한다.

    기본값 false
  • jeus.tm.version

    설명

    사용할 TM 런타임 버전을 설정한다.

    • client : 클라이언트 TM 사용

    • server : 서버 TM 사용

    기본값 client
  • jeus.tm.port

    설명 JEUS 트랜잭션 매니저가 사용할 TCP/IP 포트 번호를 설정한다.
  • jeus.tm.usenio

    설명

    트랜잭션 매니저 간의 I/O 방식을 결정한다.

    • true : NIO

    • false : 블로킹 I/O

    기본값 true
  • jeus.tm.tmMin

    설명 트랜잭션에서 사용하는 Thread Pool의 최소 크기를 설정한다.
    기본값 2
  • jeus.tm.tmMax

    설명 트랜잭션에서 사용하는 Thread Pool의 최대 크기를 설정한다.
    기본값 30
  • jeus.tm.activeto

    설명

    트랜잭션이 시작되고, commit이나 rollback을 하는 데까지의 제한시간을 설정한다.

    설정한 시간 내에 결정이 내려지지 않을 경우 강제로 rollback시킨다.

    기본값 600000 (단위: ms)
  • jeus.tm.prepareto

    설명

    루트 코디네이터가 서브 코디네이터로부터 prepare 완료 신호를 받는 데까지의 제한시간을 설정한다.

    이 시간 안에 어떤식으로든 결정이 내려지지 않을 경우 강제로 rollback시킨다.

    기본값 120000 (단위: ms)
  • jeus.tm.preparedto

    설명

    서브 코디네이터가 루트 코디네이터에게 prepare 완료 신호를 보낸 후 결정을 기다리는 제한시간을 설정한다.

    시간이 지날 경우 반복하여 결정 대기 신호를 루트 코디네이터로 보낸다.

    기본값 60000 (단위: ms)
  • jeus.tm.committo

    설명 루트 코디네이터가 서브 코디네이터에게 commit 신호를 보낸 후 결과를 받아야 하는 제한시간을 설정한다. 시간이 경과하면 부결 트랜잭션으로 기록한다.
    기본값 240000 (단위: ms)
  • jeus.tm.recoveryto

    설명 루트 코디네이터가 서브 코디네이터로부터 복구 정보를 받아야 하는 제한시간을 설정한다. 시간이 지나면 더 이상 진행하지 않는다.
    기본값 120000 (단위: ms)
  • jeus.tm.incomplete.to

    설명 부결된 트랜잭션이 보관되는 시간을 설정한다.
    기본값 86400000 (단위: ms)

1.5.2. 하위 호환성을 위한 시스템 프로퍼티

  • jeus.tm.propagation.recalculated-timeout

    설명

    트랜잭션이 다른 컨테이너로 전파될 때 전파되기 전에 소모한 시간을 Active Timeout에서 감소시키는 설정이다.

    JEUS 6 Fix#9부터 제공되는 설정으로 하위 호환성을 위해서는 false로 지정한다.

    기본값 false

1.6. 웹 엔진 프로퍼티

웹 엔진에서 제공하는 모든 프로퍼티는 JVM 시스템 프로퍼티뿐만 아니라 가상 호스트별, 웹 애플리케이션별로 적용할 수 있다. 이를 적용하는 방법은 JEUS Web Engine 안내서”의 “5.4. 가상 호스트 설정”, JEUS Web Engine 안내서”의 “3.3.1. jeus-web-dd.xml 설정”을 참고한다.

참고

JVM 시스템 프로퍼티나 웹 엔진 레벨에서 설정하기 보다는 되도록 가상 호스트 또는 웹 애플리케이션 레벨에서 설정하는 것을 권장한다.

1.6.1. 웹 엔진 레벨 프로퍼티

domain.xml의 웹 엔진 레벨로 설정할 수 있는 프로퍼티이다. 가상 호스트, jeus-web-dd.xml에 설정해도 무시한다.

  • jeus.servlet.prevent-forcibly-threadlocal-memoryleak

    설명 웹 애플리케이션에서 ThreadLocal 변수를 사용한 후 이를 정확하게 해제하지 않을 경우 발생하는 메모리 누수를 웹 엔진에서 해당 웹 애플리케이션이 리로드되거나 redeploy, undeploy될 때 강제적으로 ThreadLocal 변수를 초기화한다. 그러나 이 옵션을 사용할 경우 다른 웹 애플리케이션에서 설정한 ThreadLocal 변수도 초기화하므로 주의한다.
    기본값 false
  • jeus.servlet.webadmin.suspendCmd.tmout

    설명 WebtoB에 suspend 신호를 보낸 후 모든 WebtoB request processor들이 다시 WebtoB로부터 suspend 신호를 받고 suspend wait을 하게 될 때까지 기다리는 최대 시간이다.
    기본값 120000L
  • jeus.servlet.request.enableDns

    설명 ServletReqeust.getRemoteHost()를 호출할 때 DNS를 통해서 호스트명을 얻어올지 여부를 설정한다. 웹 엔진이 있는 서버의 DNS 접근 여부를 설정하는 것이므로 웹 엔진 레벨 프로퍼티로 제공한다.
    기본값 true
  • jeus.servlet.request.url.relativePathInURL

    설명

    URL에 상대 경로('.' 혹은 '..')가 포함됐을 때 URL 계산 방식을 정의한다

    • not_allowed : URL에 상대 경로가 포함되는 것을 허용하지 않으며 403 Forbidden 에러로 응답

    • replace : 상대 경로를 절대 경로로 계산 후 처리

    • keep : 상대 경로를 계산하지 않고 그대로 처리

    기본값 replace
  • jeus.servlet.loader.jspcount

    설명 웹 엔진에서 동시에 로딩할 수 있는 있는 JSP 개수이다.
    기본값 0
  • jeus.servlet.useCaseInsensitiveFileSystem

    설명

    Linux OS + Windows file server처럼 대소문자 구분 OS에 대소문자 비구분 파일 서버를 사용하는 조합의 경우 요청 주소의 대소문자 구분을 하지 않게 되어 원하는 동작을 하지 않을 수 있다. 이 프로퍼티를 사용하면 이런 조합에서도 대소문자를 구분하여 처리하며, 추가적으로 Windows에서만 동작하는 다음 프로퍼티도 사용할 수 있게 된다.

    • jeus.servlet.resource.ignore-filename-case

    • jeus.servlet.jsp.ignore-filename-case

    기본값 false
  • jeus.servlet.allowUrlEncodeJsessionid

    설명Set-Cookie 헤더에 들어가는 값을 인코딩할 경우 session id에 해당하는 부분도 함께 인코딩할지 결정한다.
    기본값false
  • jeus.websocket.client.requestBufferSize

    설명 WebSocketContainer.connectToServer() 호출 시 웹 소켓 헤더들을 포함한 요청을 담을 버퍼 크기를 설정한다.
    기본값 8*1024 (단위: byte)

다음은 JVM 시스템 프로퍼티만으로 설정해야 하는 옵션이다.

  • org.glassfish.web.rfc2109_cookie_names_enforced

    설명 Cookie 이름에 RFC2109에서 허용하지 않는 문자가 들어간 경우 IllegalArgumentException이 발생한다. javax.servlet.http.Cookie에 정의된 내용인데 JEUS 6까지는 API 구현에서 제대로 처리하지 않았다.
    기본값 true

1.6.2. 가상 호스트 레벨 프로퍼티

domain.xml 웹 엔진 설정에서 가상 호스트에 설정할 수 있는 프로퍼티이다. jeus-web-dd.xml에 설정해도 무시한다.

참고

현재 이 레벨의 프로퍼티는 존재하지 않는다.

1.6.3. 웹 애플리케이션 레벨 프로퍼티

jeus-web-dd.xml에 설정해서 각 웹 애플리케이션별로 적용할 수 있는 프로퍼티이다. 이 프로퍼티는 웹 엔진 또는 가상 호스트 레벨 프로퍼티로 사용 가능하다.

  • jeus.application.login.key

    설명 JEUS Login Manager를 사용하는 경우 로그인으로 사용할 Attribute Key를 설정한다.
    기본값 JEUS_LOGIN_KEY

1.6.3.1. 공통 또는 Servlet 엔진 관련 프로퍼티

Servlet 또는 JSP 엔진에 적용되는 프로퍼티들이다.

  • jeus.servlet.response.cookie.version0Style

    설명 version0 스타일의 쿠키 헤더 사용 여부를 설정한다.
    기본값 false
  • jeus.servlet.welcomefile.sendRedirect

    설명

    HttpServletResponse.sendRedirect()를 통해서 welcome 파일 전송 여부를 설정한다.

    • true : HttpServletResponse.sendRedirect()를 사용한다.

    • false : RequestDispatcher.foward()를 사용한다.

    기본값 false
  • jeus.servlet.filter.applyOnWelcomeFileRequest

    설명 Context root 요청에 대한 welcome 파일 처리할 때 filter 적용 여부를 설정한다.
    기본값 true
  • jeus.servlet.response.header.serverInfo

    설명 헤더에 JEUS 버전 정보 포함 여부를 설정한다.
    기본값 false
  • jeus.servlet.keep-original-request-on-forward

    설명 Tomcat과 동일하게 Original Request에 설정된 Request URI 등과 같은 path 정보를 변경하지 않는다.
    기본값 false
  • jeus.servlet.keep-original-query-string-on-forward

    설명 Forward될 때 original query string을 Request 객체에 그대로 둘지 아니면 forward할 때 넘겨준 query string으로 overwrite할지 여부를 설정한다.
    기본값 false
  • jeus.servlet.keep-original-query-string-on-include

    설명 include될 때 original query string을 Request 객체에 그대로 둘지 아니면 include할 때 넘겨준 query string으로 overwrite할지 여부를 설정한다.
    기본값 false
  • jeus.servlet.out.ensureContentOrder

    설명 response.getOutputStream(), response.getWriter(), JspWriter(jsp out)을 섞어서 사용할 때의 출력 순서를 유지할지 여부를 설정한다. 기본적으로는 세 가지 방법을 섞어서 사용하면 안 되고 하나로 통일해서 써야 한다.
    기본값 false
  • jeus.servlet.classloader.allowServletAPI

    설명 애플리케이션의 클래스 중에서 서블릿 API 관련 클래스를 로딩할지 여부를 설정한다.
    기본값 false
  • jeus.servlet.response.useRequestHttpVersion

    설명 HTTP 응답 헤더의 HTTP 버전을 HTTP 클라이언트 버전으로 설정한다. 기존에 제공하던 jeus.servlet.response.force-response-10은 이 설정으로 변경해야 한다.
    기본값 false
  • jeus.servlet.context.attribute.serialize

    설명 Context Auto reload할 때 ServletContext attribute를 serialize하여 유지할지 여부를 설정한다.
    기본값 false
  • jeus.servlet.resource.ignore-filename-case

    설명

    ResourceServlet에서 리소스 파일 이름의 대소문자 구별 여부를 설정한다.

    Windows OS 혹은 jeus.servlet.useCaseInsensitiveFileSystem이 true인 경우 유효하다.

    기본값 false
  • jeus.servlet.response.header.encoding

    설명 응답 헤더에 사용할 캐릭터 인코딩을 설정한다.
    기본값 null
  • jeus.servlet.scan-servlet-container-initializers

    설명

    Servlet 3.0부터 추가된 ServletContainerInitializer 메커니즘 사용 여부를 결정한다.

    Servlet 표준을 준수하기 위하여 기본적으로 scan 작업을 수행하지만 이로 인해서 디플로이 시간이 늘어날 수 있다.

    기본값 true
  • jeus.servlet.sortWebinfLibraries

    설명

    WEB-INF/lib에 포함된 jar 파일들을 로딩할 때 정렬을 하는 옵션이다.

    • name_asc : 파일 이름으로 오름차순 정렬

    • name_dsc : 파일 이름으로 내림차순 정렬

    • time_asc : 파일의 LMF로 오름차순 정렬

    • time_dsc : 파일의 LMF로 내림차순 정렬

    기본값 null
  • jeus.servlet.useMetadataCompleteDeploy

    설명

    Java EE 5부터는 웹 애플리케이션 디플로이 시점에 반드시 Java EE 표준에서 정의한 어노테이션들이 정의된 클래스를 찾도록 되어 있다.

    WEB-INF/classes의 클래스 파일들 뿐만 아니라 WEB-INF/lib에 포함된 것들도 찾아야 하기 때문에 디플로이 시간이 오래 걸릴 수 있다. 찾는 동작을 하지 않기 위해서는 web.xml의 metadata-complete 설정을 true로 지정해야 한다. 애플리케이션에 포함된 web.xml을 수정하지 않고 jeus-web-dd.xml을 추가해서 metadata-complete 설정을 true로 할 수 있다.

    기본값 false
  • jeus.servlet.jsp.allowOnlyStandardizedMethod

    설명 JSP 또는 리소스 요청에 대해서 GET, HEAD, POST, OPTIONS, PUT, DELETE, TRACE, CONNECT의 8개의 HTTP method만 허용한다.
    기본값 false

1.6.3.2. JSP 엔진 관련 프로퍼티

JSP 엔진에서만 사용하는 프로퍼티들이다.

  • jeus.servlet.jsp.reload

    설명 JSP 리로딩 지원 여부를 설정한다.
    기본값 true
  • jeus.servlet.jsp.precompile

    설명 JSP precompile 지원 여부를 설정한다. (precompile 요청 파라미터에 따라 JSP를 호출할 때 compile만 하는 기능)
    기본값 true
  • jeus.servlet.jsp.print.null.as.emptystring

    설명 JSP에서 null로 출력할 때 공백 문자의 사용 여부를 설정한다.
    기본값 false
  • jeus.servlet.jsp.jspwriter.null

    설명 JSP에서 null로 출력할 때 대체할 문자열을 설정한다.
    기본값 "null"
  • jeus.servlet.jsp.compile.retrycount

    설명 JSP에서 생성된 서블릿을 로딩할 수 없을 때 재컴파일을 시도하는 횟수를 설정한다.
    기본값 2
  • jeus.servlet.jsp.compile.delay

    설명 FTP 업로드할 때 JSP 지연 컴파일 시간을 설정한다.
    기본값 0L (단위: ms)
  • jeus.servlet.jsp.helpReloadNativeLibrariesByCallingSystemGC

    설명

    JSP를 reload할 때 JSP class loader가 사용한 Native Library가 제대로 cleanup되지 않는 JVM 문제를 해결하기 위한 방편이다.

    JSP class loader가 GC(Garbage Collection)될 때 Native Library가 정리되기 때문에 JEUS에서는 System.gc()를 호출해 줄 수 있을 뿐이며, 100% GC된다는 보장이 없다. 따라서 해당 JSP 내에서 System.loadLibrary() 등을 사용하는 경우 reload가 실패할 수 있다.

    기본값 false

    주의

    System.gc()와 System.runFinalization()을 호출하므로 시스템 성능을 저하시킬 수 있다. 따라서 Native Library를 사용하는 JSP를 실제 서비스 운영 중에 수정하지 않기를 권장한다. 가장 좋은 방법은 Native Library를 사용하는 웹 애플리케이션을 별도로 작성해서 그쪽으로 dispatch를 하는 방법이 있다. 그 웹 애플리케이션은 Context Auto Reload나 redeploy하지 않아야 한다.

  • jeus.servlet.jsp.ignore-filename-case

    설명 JSP 파일 이름의 대소문자 구별 여부를 설정한다. Windows OS 혹은 jeus.servlet.useCaseInsensitiveFileSystem이 true인 경우 유효하다.
    기본값 false
  • jeus.servlet.jsp.assure-utf8-file-encoding-detection

    설명 Jasper에서 JSP 파일 Encoding이 UTF-8이라고 확신할 수 없더라도 이를 UTF-8으로 취급한다.
    기본값 false

    참고

    included JSP 파일에도 pageEncoding tag를 기술해야 한다.

1.6.3.3. 호환성 제공 프로퍼티

JEUS는 기본적으로 Servlet 및 JSP 표준을 준수해야 한다. 하지만 표준 해석 오류, 요구 사항에 대한 구현 누락 등과 같은 개발자의 실수 또는 불분명한 설명, 표준 기술 문서와 API 문서 간의 설명 불일치 등으로 인한 표준 문서의 오류로 인해 API 동작이 달라질 수 있다.

  • jeus.servlet.jsp.modern

    설명

    false로 설정하는 경우 JEUS 4 호환 JSP 엔진을 사용한다. 이 경우 JSP 1.2 버전만 지원된다.

    해당 JSP 엔진은 deprecated되었으므로 더이상 사용하지 않기를 권장하며 본 호환성 프로퍼티도 차기 버전 또는 차기 Fix에서 삭제될 예정이다.

    기본값 true
  • jeus.servlet.request.url.allowNonStandardPercentCharacterUsage

    설명 URL에 단독으로 '%' 문자 사용을 허용한다. 하지만 이는 RFC 2396, 2.4.3. Excluded US-ASCII Characters에 따르면 '%' 문자는 URL escape를 위한 예약어이며, 결코 단독 문자로 사용할 수 없고 정해진 형식으로만 사용 가능하다. 따라서 클라이언트에서 이를 '%25'로 escape해서 보내야 한다.
    기본값 false
  • jeus.servlet.request.6CompatibleSetCharacterEncoding

    설명

    ServletRequest.setCharacterEncoding()으로 세팅한 인코딩은 반드시 Request Body에만 적용해야 한다.

    그러나 JEUS 6에서 이를 준수하지 않은 버그가 발견되어, Query String, Cookie와 같이 Request Header를 읽을 때도 사용한다. JEUS 6의 잘못된 동작에 기반하여 작성한 애플리케이션을 수정없이 지원해야 하는 경우 이 옵션을 사용해야 한다.

    기본값 false
  • jeus.servlet.response.defaultContentType

    설명

    Content-Type 응답 헤더에 설정할 기본 값이다.

    이 값이 null이 아닐 경우 아래와 같은 상황에서 응답 헤더를 설정한다. ServletResponse.setCharacterEncoding()이나 ServletResponse.setLocale() 호출할 때, Servlet이 명시적으로 ServletResponse.setContentType()을 호출하지 않았다면 이 프로퍼티 값을 Content-Type 헤더로 설정한다. 하지만 이러한 동작은 Content-Type 응답 헤더에 관한 Servlet 표준에 맞지 않는 것이다.

    기본값 null

    참고

    서블릿이 명시적으로 ServletResponse.setContentType()을 호출하지 않았다면 응답 헤더에 Content-Type Header를 넣으면 안 된다고 서블릿 표준에서 규정하고 있다. 또한 ServletResponse.getContentType()를 호출할 때에는 null을 리턴하도록 하고 있다. 이는 Servlet 2.3에서도 명시된 내용으로 JEUS에서 오래 전부터 지키지 않고 있던 사항이다.

    따라서 JEUS 7 Fix#1부터는 이를 준수하기 위해 기본값을 null로 변경하였다. 만약 여기에 의존해서 애플리케이션이 동작하고 있었다면 이 프로퍼티 값을 적절한 값으로 설정하기 바란다.

  • jeus.servlet.response.applyContentLanguageProperlyWithSetLocaleAPI

    설명 ServletResponse.getWriter() 호출 이후에 ServletResponse.setLocale()을 호출했을 때, Content-Language 응답 헤더는 반드시 설정되어야 한다. 물론 Character Encoding은 바뀌지 않는다. 만약 원하지 않게 Content-Language 응답 헤더가 설정되는 경우에는 이값을 false로 지정한다.
    기본값 true
  • jeus.servlet.response.6CompatibleForcedEncoding

    설명 xml 설정으로 적용하는 <response-encoding><forced>의 적용 우선 순위를 원래의 의미에 맞지 않게 구현된 JEUS 6 방식으로 동작하게 한다. 원래 forced 옵션은 우선 순위가 가장 높다. 애플리케이션 API를 통해서 세팅하거나 JSP 파일의 page 태그 contentType에 설정된 HTTP 응답 인코딩에 우선한다.
    기본값 false
  • jeus.servlet.response.6CompatibleSetCharacterEncoding

    설명

    ServletResponse.setCharacterEncoding()으로 세팅한 인코딩은 forced 보다 우선 순위가 낮아야 한다. 그러나 JEUS 6 이전까지는 이를 준수하지 않은 버그가 발견되어, 항상 forced 설정을 무시하는 문제가 있다. 만약 이러한 동작에 의존해서 구현된 애플리케이션이 있고 이 동작을 유지하고자 한다면 이 옵션을 true로 설정한다.

    Request 쪽과 이름이 유사하므로 서로 헷갈리지 않도록 한다.

    기본값 false
  • jeus.servlet.session.invalidateBySetMaxInactiveIntervalZero

    설명

    HttpSession.setMaxInactiveInterval(int timeout)의 경우 Spec에 의해 0 이하의 값은 제거되지 않아야 하는 세션을 의미한다.

    그러나 이전 스펙에서 모호하게 타임아웃만큼 유지되는 시간으로 설명이 되어 "0"을 invalidate로 사용하는 유저들이 있었다.

    이러한 의미로 사용했던 유저들의 호환성을 위해 설정을 제공한다.

    기본값 false
  • jeus.servlet.engine.disableRequestFinishCheck

    설명

    Request 객체는 서블릿의 service 메소드 내부 혹은 필터의 doFilter 메소드 안에서만 유효하며 이미 처리가 끝난 Request 객체를 사용하려고 하면 IllegalStateException을 발생시키도록 스펙에 정의 되어 있다. 그러나 JEUS 7 이전까지는 이를 확인하지 않고 있어서 처리가 끝난 Request 객체를 사용하는 애플리케이션이 정상적으로 동작하였다.

    이러한 애플리케이션을 사용하는 유저들의 호환성을 위해 설정을 제공한다.

    기본값 false
  • jeus.servlet.ignoreWebComponentFailureWhenDeploying

    설명 디플로이 과정에서 load-on-startup으로 등록된 서블릿의 init(), Filter.init(), ServletContextListener에서 Exception이 발생하더라도 디플로이가 실패하지 않는다.
    기본값 false

1.7. 세션 서버 시스템 프로퍼티

본 절에서는 세션 서버 시스템 프로퍼티에 대해 설명한다.

아래의 프로퍼티들은 <session-cluster> 절 하부 <properties>에 설정하는 것을 기본으로 한다.

  • jeus.sessionmanager.receive.backup.despite.no.deploy

    설명 DOMAIN_WIDE 모드일 경우 애플리케이션을 디플로이하지 않더라도 리모트로부터 백업받을 수 있도록 더미 애플리케이션을 디플로이하도록 한다.
    기본값 false
  • jeus.sessionmanager.cluster.stable.waiting.sec

    설명 클러스터의 이벤트 처리를 보장하기 위해 일정 시간(초) 애플리케이션의 디플로이를 지연시킨다.
    기본값 0 (초)
  • jeus.sessiomanager.dumpbackup.max

    설명

    dumpbackup을 수행하는 count 단위를 설정한다.

    자신이 백업할 서버가 재기동할 경우 dumpbackup을 수행한다. 이때 가지고 있는 세션이 너무 많을 경우에 일정 단위로 나눠서 백업을 수행하도록 한다.

    Session Cluster의 Properties에 설정할 때는 모든 클러스터에 적용되며, Session Cluster Config의 properties에 적용할 해당 클러스터에만 적용된다.

    기본값 100 (개)
  • jeus.sessionmanager.cluster.failover.strategy

    설명

    서버의 중지나 실패 상황에서 Failover를 위한 동작을 설정한다.

    • none : 아무 작업도 수행하지 않는다.

    • upgrade : Upgrade를 수행한다.

    기본값 none
  • jeus.sessionmanager.backup.redundancy

    설명 하나의 primary 서버에 대해 몇 개의 백업 서버를 둘지 설정한다.
    기본값 1

1.8. EJB 시스템 프로퍼티

본 절에서는 EJB 시스템 프로퍼티에 대해 설명한다.

1.8.1. EJB 시스템 프로퍼티

다음은 EJB 시스템 프로퍼티에 대한 설명이다.

  • jeus.ejb.transaction.attribute.default

    설명

    Container-managed Transaction Bean의 메소드에 Transaction 속성이 설정되어 있지 않는 경우 사용할 속성을 설정한다.

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

    • NotSupported

    • Supports

    • Required

    • RequiresNew

    • Mandatory

    • Nerver

    속성의 우선순위는 다음과 같다.

    1. ejb-jar/trans-attribute

    2. jeus-ejb-dd/unspecified-container-transaction

    3. 시스템 프로퍼티

    기본값
    • EJB 3.0 Bean 이상의 경우 : Required(스펙 기준)

    • EJB 3.0 미만의 Bean의 경우 : Supports(하위 호환성을 위함)

    • Timer Service 메소드의 경우 : NotSupported

  • jeus.ejb.sharedcolumn.modify

    설명 CMP Entity Bean에서 column sharing되어 있는 cmp, cmr 필드를 하나의 트랜잭션에서 모두 수정하는 것을 허용할지 여부를 결정한다.
    기본값 false
  • jeus.ejb.checkTable

    설명 CMP Entity Bean을 deploy할 때 데이터베이스의 테이블이 존재하는지 컬럼이 제대로 존재하는지를 확인할지 여부를 설정한다.
    기본값 false
  • jeus.ejb.enable.configDeleteOption

    설명

    CMP Entity Bean을 undeploy할 때 데이터베이스 테이블을 삭제하는 것을 허용할지 여부를 설정한다.

    • true : <deleting-table>의 설정이 적용된다.

    • false : <deleting-table>의 설정이 무시된다.

    기본값 false
  • jeus.ejb.csi.trusthosts

    설명 CORBA CSIv2를 사용할 때의 Trust 호스트이다.
  • jeus.client.interop

    설명 클라이언트 JVM에서 CORBA interoperability를 사용할지 여부를 설정한다.
    기본값 false
  • jeus.ejb.csi.defaultUser

    설명 CORBA CSIv2를 사용할 때 기본 사용자를 설정한다.
  • jeus.ejb.notreload

    설명

    shared 클래스 로더를 사용하는 EJB가 deploy, undeploy, redeploy될 때 reload에서 제외될 웹 모듈 리스트이다.

    다음 형식으로 설정한다.

    context_name1;context_name2
  • jeus.corba.props

    설명

    EJB에서 사용하는 ORB의 프로퍼티이다.

    key=value[,key=value]*
  • jeus.ejb.cluster.useip

    설명

    EJB에서 Active Stub을 사용하는 경우 서버로 접속하기 위한 주소를 IP 주소로 할지 호스트명으로 할지 여부를 설정한다. 여기에서 사용하는 IP는 jeus.net.localip로 지정된 IP를 사용한다.

    이 옵션이 true가 되면 classftp의 주소도 IP 주소를 사용하게 된다.

    기본값 false
  • jeus.ejb.all.disconnect

    설명

    모든 Bean 타입에 적용될 disconnect timeout을 설정한다.

    -1로 설정하면 disconnect 기능을 사용하지 않는다.

    [Deprecated] EJB 3.1 스펙에서는 @StatefulTimeout 또는 ejb-jar.xml의 <stateful-timetout>으로 설정 가능하다.

    기본값 3600000 (단위: ms)
  • jeus.ejb.entity.disconnect

    설명

    Entity Bean에 적용될 disconnect timeout을 설정한다. (단위 : ms)

    jeus.ejb.all.disconnect 설정에 우선한다.

    -1로 설정하면 disconnect 기능을 사용하지 않는다.

  • jeus.ejb.stateful.disconnect

    설명

    Stateful Session Bean에 적용될 disconnect timeout을 설정한다. (단위: ms)

    jeus.ejb.all.disconnect 설정에 우선한다.

    -1로 설정하면 disconnect 기능을 사용하지 않는다.

    [Deprecated] EJB 3.1 스펙에서는 @StatefulTimeout 또는 ejb-jar.xml의 <stateful-timetout>으로 설정 가능하다.

  • jeus.ejb.all.passivate

    설명

    모든 Bean type에 적용될 passivation timeout을 설정한다.

    -1로 설정하면 disconnect 기능을 사용하지 않는다.

    기본값 300000 (단위: ms)
  • jeus.ejb.entity.passivate

    설명

    Entity Bean에 적용될 passivation timeout을 설정한다. (단위 : ms)

    jeus.ejb.all.passivate 설정에 우선한다.

    -1로 설정하면 disconnect 기능을 사용하지 않는다.

  • jeus.ejb.stateful.passivate

    설명

    Stateful Session Bean에 적용될 passivation timeout을 설정한다. (단위: ms)

    jeus.ejb.all.passivate 설정에 우선한다.

    -1로 설정하면 disconnect 기능을 사용하지 않는다.

  • jeus.ejb.exportPort

    설명

    EJB에서 사용할 default export port를 설정한다.

    jeus-ejb-dd.xml의 export port가 0인 EJB는 이 값을 사용한다.

    0이면 RMI가 제공하는 기본 포트를 사용한다.

    기본값 Managed Server base port + 7
  • jeus.ejb.jeusrmi.exportPort

    설명

    JEUS RMI를 사용하는 EJB에서 사용할 default export port를 지정한다.

    이 값을 지정하면 jeus-ejb-dd.xml의 export port가 0인 EJB는 이 값을 사용하게 된다.

    기본값 Managed Server base port + 11
  • jeus.ejb.entity.lock-wait-timeout

    설명

    같은 entity를 사용할 때 lock을 기다리는 timeout 값이다.

    SINGLE 또는 EXCLUSIVE일 경우에만 적용된다. (단위: ms)

    기본값 0 (무한 대기)
  • jeus.ejb.timer.generate-table-ddl

    설명

    EJB Timer Handle을 저장할 테이블을 생성하기 위한 DDL을 파일로 생성한다.

    내부적인 용도로만 사용해야 한다. JEUS를 실행한 디렉터리에 createDDL.jdbc라는 이름으로 생성된다.

    기본값 false
  • jeus.ejb.generate-no-interface-view-files

    설명

    no-interface-view인 EJB의 Local business interface의 클래스 파일을 작성한다.

    '_generated_' 폴더 하위에 class 파일이 생성된다.

    기본값 false
  • jeus.ejb.cluster.selection-policy

    설명

    클러스터링된 EJB 엔진에 속한 EJB를 호출할 경우 어떤 EJB 엔진의 Bean을 선택할 것인지에 대한 정책을 설정한다(EJB 3 Stateless Bean 한정. 자세한 내용은 JEUS EJB 안내서”의 “제6장 EJB 클러스터링” 참조).

    다음 중 하나를 선택할 수 있다.

    • locallinkPreference : 로컬 MS에 있는 객체를 사용하도록 한다.

    • roundrobin : 처음 요청에서는 랜덤하게 선택한 MS의 객체를 사용하고, 그 후 요청부터는 하나씩 증가하면서 서버를 선택한다.

    • random : 클러스터링된 MS들 중에서 랜덤하게 하나를 선택하여 사용한다.

    기본값locallinkPreference

1.8.2. JPA 시스템 프로퍼티

다음은 JPA 시스템 프로퍼티에 대한 설명이다.

  • jeus.persistence.defaultProvider

    설명 기본 Java Persistence API Provider 클래스이름이다.

1.8.3. RMI 시스템 프로퍼티

다음은 RMI 시스템 프로퍼티에 대한 설명이다.

참고

프로퍼티의 설명에서 [client]는 RMI 호출하고, [server]는 EJB가 deploy되어 있는 쪽에 설정해야 한다는 의미이다. RMI에 관련된 설정 및 좀 더 다양한 옵션에 대한 내용은 다음을 참고한다.

http://docs.oracle.com/javase/7/docs/technotes/guides/rmi/javarmiproperties.html

http://docs.oracle.com/javase/7/docs/technotes/guides/rmi/sunrmiproperties.html

  • java.rmi.server.codebase

    설명 [server] RMI를 사용할 때 EJB Bean 클래스 이외에 다른 클래스를 전달해야 할 필요가 있을 경우 class annotation에 넣어주는 codebase이다.
  • java.rmi.server.useLocalHostName

    설명 [server] 클라이언트가 서버로 접속할 때 서버의 IP를 사용하지 않고 호스트명을 사용할 때 사용한다.
    기본값 false
  • java.rmi.server.hostname

    설명

    [server] 클라이언트가 서버로 접속할 때 사용하는 호스트명이다.

    java.rmi.server.useLocalHostName보다 우선순위가 낮다.

    기본값 ip
  • jeus.ejb.rmi.jeus

    설명

    [server] JEUS RMI를 사용할지 여부를 설정한다.

    jeus-ejb-dd.xml/jeus-bean/jeus-rmi를 이용하면 Bean별로 적용할 수 있고, 이 프로퍼티는 전체 EJB에 적용할 때 사용한다. DD의 값이 우선한다.

    기본값 false
  • jeus.ejb.rmi.socketfactory

    설명

    [client/server] JEUS가 사용하는 RMISocketFactory 클래스의 fully qualified name을 지정한다. 지정된 클래스는 EJB뿐만 아니라 모든 RMI 통신에 사용된다.

    클라이언트도 같은 RMISocketFactory를 사용해야 통신이 가능하다. 이 클래스는 no argument의 생성자(constructor)를 반드시 제공해야 하며 JEUS_HOME/lib/application에 위치할 수 있다.

    기본값 jeus.ejb.util.EJBRMISocketFactory
  • jeus.ejb.operationTimeout

    설명

    [client] 리모트 호출을 하고 나서 결과를 기다리는 최대 시간이다(SoTimeout).

    sun.rmi.transport.tcp.responseTimeout 값을 JEUS에서 overwirte한다.

    기본값 5 * 60 * 1000
  • sun.rmi.transport.connectionTimeout

    설명 [client] 클라이언트 쪽 RMI Connection이 Idle 상태로 남아 있는 최대 시간을 설정한다(KeepAliveTimeout).
    기본값 15 * 1000
  • sun.rmi.transport.tcp.readTimeout

    설명

    [server] 서버에서 클라이언트의 요청을 읽어들이는 데 걸릴 수 있는 최대 시간을 설정한다(SoTimeout).

    클라이언트의 SoTimeout인 jeus.ejb.operationTimeout(sun.rmi.transport.tcp.responseTimeout)보다 큰 값을 지정해야 한다.

    기본값 2 * 60 * 60 * 1000
  • sun.rmi.transport.tcp.maxConnectionThreads

    설명

    [server] 서버에서 요청을 처리하는 Thread 개수의 최댓값을 설정한다.

    관련 있는 JEUS 설정으로는 jeus-ejb-dd.xml에 각 Bean별로 설정하는 <thread-max> 값이 있다. <thread-max>는 각 Bean에 최대로 할당될 수 있는 Thread의 최댓값으로 maxConnectionThreads의 값을 아무리 크게 잡아도 <thread-max>가 작으면 Thread 수가 증가하지 않는다.

    예를 들어 EJB A와 EJB B 두 Bean이 존재하고 <thread-max>를 따로 설정하지 않고 기본값인 100을 사용하면 maxConnectionThreads가 Integer.MAX_VALUE이더라도 200까지 밖에 증가하지 않게 된다.

    기본값 Integer.MAX_VALUE
  • sun.rmi.transport.tcp.threadKeepAliveTime

    설명 [server] Thread가 요청이 끝난 후(Idle 상태로) 다른 요청을 기다리는 최대 시간을 설정한다(KeepAliveTimeout).
    기본값 1*60*1000
  • jeus.ejb.compiler.rmic.fork

    설명 [server] IIOP 클래스들을 생성할 때 RMIC 컴파일러 프로세스를 fork할지 여부를 설정한다.
    기본값 false
  • jeus.ejb.compiler.rmic.verbose

    설명 [server] IIOP 클래스들을 생성할 때 verbose 로그를 남길지 여부를 설정한다.
    기본값 false
  • jeus.ejb.compiler.rmic.vcompat

    설명 IIOP을 컴파일할 때 RMI 1.1, 1.2 compatible protocol로 generate할지 여부를 결정한다.
    기본값 false
  • jeus.ejb.compiler.rmic.enable

    설명 IIOP Stub 파일을 만들지 말지를 결정한다. 일반적인 경우에는 IIOP Stub 파일이 필요 없다.
    기본값 false
  • jeus.ejb.compiler.class.version

    설명[server] EJB 생성된 클래스를 컴파일할 때 source와 target version을 설정한다.
    기본값1.4
  • jeus.ejb.compiler.use-java-compiler-api

    설명

    JDK 6부터 제공하는 Java Compiler API를 사용하도록 하는 옵션이다.

    기본적으로 사용하도록 되어 있지만 기존처럼 JDK의 lib/tools.jar 내에 포함된 SUN 내부 클래스를 직접 이용해서 컴파일하는 방식을 원할 때는 이 옵션을 false로 설정한다.

    컴파일된 클래스 차이에 의해 호환성 문제 등이 발생했을 때 사용할 수 있다.

    기본값true

JEUS RMI를 사용할 경우

다음은 JEUS RMI를 사용할 경우 시스템 프로퍼티에 대한 설명이다.

  • jeus.rmi.jeusnet

    설명 RMI 통신에 JEUS Network Layer를 사용할지 여부를 설정한다.
    기본값 false
  • jeus.rmi.io.type

    설명

    JEUS Network Layer를 사용할 때 IO 타입을 설정한다.

    blocking 통신을 할지 non-blocking 통신을 할지 선택한다(blocking/non-blocking).

    기본값 blocking
  • jeus.rmi.blocking

    설명

    JEUS Network Layer의 blocking 통신을 사용할 때 blocking 타입을 설정한다.

    소켓을 사용할지 소켓 채널을 사용할지 선택한다(socket/channel).

    기본값 socket
  • jeus.rmi.blocking.client.num

    설명 JEUS Network Layer의 blocking 통신을 사용할 때 클라이언트 수의 기대치를 설정한다. Thread Pool의 개수를 결정할 때 사용한다.
    기본값 50
  • jeus.rmi.channel.buffer.size

    설명

    채널을 사용하는 경우 buffer 크기를 설정한다.

    msg의 최대 크기를 buffer 크기로 정하면 buffer의 크기를 최적화할 수 있다.

    기본값 jeus.net.tcpbuffer로 지정한 값
  • jeus.rmi.response.tmout

    설명 RMI에서 Request를 보낸 후 응답이 올 때까지 기다리는 시간을 설정한다.
    기본값 600*1000 (단위: ms)
  • jeus.rmi.client.enableProcessPool

    설명 클라이언트에서 메시지 처리를 Read Thread와 별개로 처리할지 여부를 설정한다.
    기본값 false
  • jeus.rmi.server.enableProcessPool

    설명 서버에서 메시지 처리를 Read Thread와 별개로 처리할지 여부를 설정한다.
    기본값 false
  • jeus.rmi.client.threadPool

    설명 enableClientProcessPool을 true로 설정했을 때 Process Pool의 크기를 설정한다.
    기본값 50
  • jeus.rmi.server.threadPool

    설명 enableServerProcessPool을 true로 설정했을 때 Process Pool의 크기를 설정한다.
    기본값 50
  • jeus.rmi.usebaseport

    설명 MS의 기본 포트를 RMI 기본 포트로 사용한다(JEUS RMI는 예외).
    기본값 false

1.9. 보안 시스템 프로퍼티

본 절에서는 보안 시스템 프로퍼티에 대해 설명한다.

1.9.1. Standard Java SE & Java EE 보안 시스템 프로퍼티

다음은 Standard Java SE & Java EE 보안 시스템 프로퍼티에 대한 설명이다.

  • java.security.manager

    설명

    코드 보호를 통해 JEUS 서버의 견고성을 향상하기 위해서 J2SE SecurityManager를 사용한다. 이는 퍼포먼스를 떨어뜨릴 수 있다.

    기본으로 SecurityManager는 JEUS에서 사용되지 않는다.

  • jeus.security.enable.default.manager

    설명

    System.exit 메소드가 호출되어도 JEUS JVM 프로세스가 shutdown되지 않는다.

    -Djeus.security.enable.default.manager=true로 설정하면 JDK의 Java Security Manager가 아닌 Java Security Manager를 확장한 JEUS Security Manager가 적용되어서 애플리케이션 프로그램 코드에서 System.exit 메소드가 호출되어도 JEUS JVM 프로세스가 shutdown되지 않는다.

    기본값 false
  • java.security.policy

    설명 SecurityManager에서 사용하는 J2SE 정책 파일의 경로를 설정한다.
    기본값 JAVA_HOME/lib/security/java.security
  • javax.security.jacc.policy.provider

    설명 JACC Policy 구현 클래스 이름을 설정한다.
    기본값 jeus.security.impl.jacc.JACCPolicyWrapper
  • javax.security.jacc.PolicyConfigurationFactory.provider

    설명 JACC PolicyConfigurationFactory 구현 클래스 이름을 설정한다.
    기본값 jeus.security.impl.jacc.JACCPolicyConfigurationFactoryImpl

1.9.2. JEUS 보안 시스템 프로퍼티

다음은 JEUS 보안 시스템 프로퍼티에 대한 설명이다.

  • jeus.security.enable

    설명 JEUS를 기동할 때 보안 서버를 설치할지 여부를 설정한다.
    기본값 true
  • jeus.security.default.configDir

    설명 보안 시스템이 사용하는 설정 루트 디렉터리를 설정한다.
    기본값 JEUS_HOME/domains/<domain-name>/config/security
  • jeus.security.default.domainName

    설명 디폴트 도메인명을 설정한다.
    기본값 SYSTEM_DOMAIN
  • jeus.security.installer.classname

    설명 SecurityInstaller의 구현 클래스 이름을 설정한다.
    기본값 jeus.security.impl.installer.JeusSecurityDomainInstaller
  • jeus.security.jacc.principalRoleMapper

    설명 jeus.security.impl.aznrep.JACCPrincipalRoleMapper 인터페이스를 구현하는 클래스 이름을 설정한다. 이 클래스는 JACC Provider에서 principal-role 매핑을 담당한다.
    기본값 jeus.security.impl.jacc.JACCDefaultPrincipalRoleMapper
  • jeus.net.ssl.security

    설명 Security의 통신에 SSL를 사용할지 여부를 설정한다.
    기본값 false
  • jeus.security.keypath

    설명 security.key 파일 위치를 지정한다.
    기본값 JEUS 내부에서 기본적으로 설정된다.
  • jeus.security.master

    설명 Master Password를 지정한다.
    기본값 보안상의 안전을 위해 프롬프트로 입력받는 것을 권장한다.
  • jeus.net.logListenPort

    설명

    서버 소켓을 만들 때 Port의 logging 여부를 설정한다.

    jeus.security.enable.default.manager=true를 설정해야 작동한다.

    기본값 true
  • jeus.net.logConnectInfo

    설명

    소켓을 만들 때 접속하는 호스트, Port의 logging 여부를 설정한다.

    jeus.security.enable.default.manager=true를 설정해야 작동한다.

    기본값 false
  • jeus.net.logListenStack

    설명

    서버 소켓을 생성할 때의 Thread Stack Trace의 logging 여부를 설정한다.

    jeus.security.enable.default.manager=true를 설정해야 작동한다.

    기본값 false
  • jeus.net.logConnectStack

    설명

    소켓을 만들고 접속할 때의 Thread Stack Trace의 logging 여부를 설정한다.

    jeus.security.enable.default.manager=true를 설정해야 작동한다.

    기본값 false
  • jeus.security.keylength

    설명 암호화 알고리즘(AES/DES/DESede/SEED/Blowfish 등)을 사용할 때 key 크기를 지정한다. jeus.security.keylength=256을 설정하면 시스템 전체에 256bit로 통일된 key 크기가 적용된다.
    기본값 256

1.10. JEUS MQ 시스템 프로퍼티

본 절에서는 JEUS MQ 시스템 프로퍼티에 대해 설명한다.

1.10.1. JEUS MQ 서버

다음은 JEUS MQ 서버 시스템 프로퍼티에 대한 설명이다.

  • jeus.jms.file.blocksize

    설명 FileMessage를 사용하여 클라이언트로 파일을 블록 단위로 전송할 때의 블록 크기를 설정한다.
    기본값 4096 (단위: byte)
  • jeus.jms.server.deleteFileMessage

    설명 FileMessage 전달을 완료한 뒤 해당 파일을 서버에서 삭제할지 여부를 설정한다.
    기본값 true
  • jeus.jms.server.discard-stored-on-start

    설명 JEUS MQ 서버를 시작할 때 설정된 스토리지에 존재하는 모든 데이터를 삭제할지 여부를 설정한다.
    기본값 false
  • jeus.jms.server.rowFetchSize

    설명 데이터베이스 스토리지부터 메시지를 쿼리할 때 한 번에 가져올 레코드 개수를 설정한다.
    기본값 1000
  • jeus.jms.server.create-facility-mbeans

    설명 Connection, Session, Message Producer, Consumer와 같은 Client Facility들에 대한 MBean을 생성할지 여부를 설정한다.
    기본값 false

1.10.2. JEUS MQ 클라이언트

다음은 JEUS MQ 클라이언트 시스템 프로퍼티에 대한 설명이다.

  • jeus.jms.client.default-redelivery-limit

    설명

    JMS_JEUS_RedeliveryLimit 메시지 프로퍼티의 기본값을 설정한다.

    메시지 송신자에서 별도로 지정하지 않은 경우 송신한 메시지는 최대 이 횟수만큼만 복구되어 메시지 수신자에게 전달된다.

    기본값 3
  • jeus.jms.file.blocksize

    설명 FileMessage를 사용하여 서버로 파일을 블록 단위로 전송할 때의 블록 크기를 설정한다.
    기본값 4096 (단위: byte)
  • jeus.jms.client.connect.timeout

    설명 ConnectionFactory.createConnection() 메소드가 서버로부터 응답을 기다리는 제한시간을 설정한다.
    기본값 5000 (단위: ms)
  • jeus.jms.client.workdir

    설명

    FileMessage를 사용하여 서버로부터 수신한 파일이 저장되는 경로를 설정한다.

    JavaEE 클라이언트의 경우 이 설정은 무시되고 JEUS_HOME/logs/jms/BROKER_NAME/client/ 경로가 사용된다.

    기본값 USER_HOME/.jeusmq_client_work/
  • jeus.jms.client.maxThread

    설명

    JEUS MQ 클라이언트 라이브러리에서 사용하는 Thread Pool의 크기를 설정한다.

    클라이언트 라이브러리가 메시지 송신과 수신 등 여러 가지 작업을 동시에 수행하기 위해 필요하다. 서버와 맺는 커넥션마다 하나씩의 Thread Pool이 생성된다.

    기본값 100
  • jeus.jms.client.optimizedProduce

    설명

    메시지 송신 성능을 향상시키기 위해 서버로부터 Acknowledge를 받지 않을지 여부를 설정한다.

    true로 설정하면 세션의 승인 모드를 JeusSession.NONE_ACKNOWLEDGE로 설정하지 않아도 메시지를 송신할 때 항상 서버로부터 Acknowledge를 받지 않는다. 단, FileMessage를 송신할 때에는 이 설정에 관계없이 Acknowledge를 받는다.

    기본값 false
  • jeus.jms.client.use-single-server-entry

    설명

    커넥션 간에 물리적 연결을 공유하여 사용할지 여부를 설정한다.

    한 ConnectionFactory당 하나의 물리적 연결을 가지게 된다.

    기본값 true
  • jeus.jms.client.single-server-entry.shutdown-delay

    설명 커넥션 간에 공유하던 물리적 연결이 더 이상 사용되지 않을 경우 재사용을 위해 Shutdown이 지연되는 시간을 설정한다.
    기본값 600000 (단위: ms)
  • jeus.jms.client.use-pooled-connection-factory

    설명 한 번 사용했던 Client Facility들을 재사용하기 위해서 Pooling을 할지 여부를 설정한다.
    기본값 true
  • jeus.jms.client.pooled-connection.check-period

    설명 Pooling된 Client Facility들 중 사용되지 않는 것들을 제거하기 위해서 검사하는 주기를 설정한다.
    기본값 60000 (단위: ms)
  • jeus.jms.client.pooled-connection.unused-timeout

    설명 Pooling된 Client Facility들 중 이 시간 동안 사용되지 않으면 Pool에서 제거한다.
    기본값 120000 (단위: ms)
  • jeus.jms.client.send-by-lpq-only

    설명 메시지를 송신하는 경우 모든 메시지를 신뢰도를 높이기 위한 LPQ 서비스를 이용해 보낸다.
    기본값 false
  • jeus.jms.client.lpq-configuration-path

    설명

    LPQ 서비스를 이용할 때 사용할 설정 파일의 세부 경로를 설정한다.

    • 절대 경로로 주어진 경우 : 그 경로의 파일을 읽는다.

    • 상대 경로인 경우 : DEPLOYED_HOME/myApp/WEB-INF/, DEPLOYED_HOME/myApp/META-INF/, DEPLOYED_HOME/myApp/ 순으로 발견되는 파일을 읽어온다.

    기본값 120000 (단위 : ms)

1.11. Deployment 시스템 프로퍼티

본 절에서는 Deployment 시스템 프로퍼티에 대해 설명한다.

  • jeus.classloading

    설명 애플리케이션의 클래스 로더들이 서로의 클래스 로더를 참조할지 여부를 설정한다.
    기본값 ISOLATED
  • jeus.app.graceful-timeout

    설명 Graceful undeployment를 수행할 때 요청 처리가 종료될 때까지 얼마나 기다릴지를 설정한다.
    기본값 0
  • jeus.app.allow-deprecated-dd

    설명 JEUS 6 이전 버전에서 작성한 deployment descriptor를 배포할 때 JEUS 8에 맞게 변환할지 여부를 설정한다.
    기본값 false
  • jeus.application.cleanup-deployed-image

    설명 애플리케이션을 undeploy할 때 생성된 deployment image(application root directory와 generation directory)의 삭제 여부를 지정한다.
    기본값 true
  • jeus.app.deploy.persistent

    설명 애플리케이션을 deploy/undeploy할 때 해당 애플리케이션에 대한 정보를 domain.xml에 기록할지 여부를 지정한다.
    기본값 true
  • jeus.cdi.enable-implicit-bean-archive

    설명 배포할 때 CDI implicit bean archive에 대한 처리를 진행할지 여부를 지정한다.
    기본값 true
  • jeus.deploy.exclude.das

    설명 애플리케이션 대상을 모든 서버로 지정하여 deploy할 때 DAS를 대상에서 배제할지 여부를 지정한다.
    기본값 false

1.12. Console 시스템 프로퍼티

본 절에서는 Console 시스템 프로퍼티에 대해 설명한다.

  • jeus.console.auto.setserver

    설명 Cloud Server로 jeusadmin 명령을 내릴 경우 [- server], [- servers] 옵션에 Cloud Server의 이름을 자동으로 설정한다.
    기본값 false
  • jeus.tool.console.patchinfo

    설명 콘솔 툴 실행 시 패치 정보를 출력할지 여부를 지정한다. 각종 툴에 적용하는 옵션이기에, 서버 설정이 아니라 JEUS_HOME/bin/jeus.properties에 있는 TOOL_OPTION이나 툴 실행 스크립트 등을 수정하는 방식으로 지정하여야 한다.
    기본값 false

1.13. Node Manager 시스템 프로퍼티

본 절에서는 Node Manager 시스템 프로퍼티에 대해 설명한다.

  • jeus.nm.listener.maxPoolSize

    설명

    노드 매니저에서 요청을 받아들이는 Thread pool의 개수를 설정한다.

    다수의 MS를 동시에 start시키는 경우 MS의 수에 맞춰서 크기를 조정하도록 한다.

    기본값 10