제1장 시스템 프로퍼티

내용 목차

1.1. 개요
1.2. 서버 시스템 프로퍼티
1.3. Deployment 시스템 프로퍼티
1.4. 네트워크 시스템 프로퍼티
1.5. JNDI 시스템 프로퍼티
1.6. 트랜잭션 시스템 프로퍼티
1.7. 서블릿/웹 시스템 프로퍼티
1.8. 세션 서버 시스템 프로퍼티
1.9. EJB 시스템 프로퍼티
1.9.1. EJB 시스템 프로퍼티
1.9.2. JPA 시스템 프로퍼티
1.9.3. RMI 시스템 프로퍼티
1.10. 보안 시스템 프로퍼티
1.10.1. Standard Java SE & Java EE 보안 시스템 프로퍼티
1.10.2. JEUS 보안 시스템 프로퍼티
1.11. JEUS MQ 시스템 프로퍼티
1.11.1. JEUS MQ 클라이언트
1.11.2. JEUS MQ 서버
1.12. 클라이언트 컨테이너 시스템 프로퍼티

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

1.1. 개요

시스템 프로퍼티는 JVM이 구동할 때 -D 옵션으로 설정할 수 있으며, JEUS가 구동될 때 설정되어야 한다. JEUS는 JEUS Manager뿐만 아니라 각 엔진 컨테이너가 별도의 JVM 구조로 되어 있다. 따라서 엔진 컨테이너별로 시스템 프로퍼티를 설정할 수 있다. 기본적으로는 JEUS가 구동될 때 사용된 시스템 프로퍼티는 JEUS Manager와 엔진 컨테이너에 모두 영향을 미친다.

시스템 프로퍼티를 설정하는 방법은 경우에 따라 다음과 같이 나누어진다.

  • JEUS 서버 시스템에 적용할 경우

    JEUS 서버 시스템(Manager와 모든 하위 엔진 컨테이너)에 적용하려면 JEUS 구동 스크립트(JEUS_HOME/bin/jeus) 혹은 jeus.properties를 수정해야 한다.

    예를 들어, 기본 포트(Base Port)를 바꾸려면 다음과 같이 시스템 프로퍼티를 JEUS 구동 스크립트에 Java를 구동할 때 추가한다.

    java ... -Djeus.baseport=7000 ...
  • 특정 엔진 컨테이너에만 적용할 경우

    엔진 컨테이너에만 적용하려면 WebAdmin을 사용하거나 JEUSMain.xml("JEUS Server 안내서" 참조)의 <engine-container>의 <command-option> 태그에서 설정할 수 있다.

      <jeus-system ...>
        <node>
          <name>johan</name>
          <engine-container>
            <name>container1</name>
            <command-option>
              -Xmx512m -Djeus.ejb.caseSensitive=true -Djeus.ejb.checkTable=false ...
            </command-option>
            ...
  • 클라이언트 JVM에 적용할 경우

    독립적인 클라이언트의 경우 구동될 때 -D 옵션을 통해 시스템 프로퍼티를 설정할 수 있다.

    java -Djeus.baseport=7000 -classpath ... MyClientApplication

주의

시스템 프로퍼티는 JEUS 전반적인 동작과 모든 애플리케이션에 영향을 미치므로 설정에 주의한다. 또한, WebAdmin이나 XML 별로 설정할 수 있다면 이를 사용하도록 해야하며, 이런 경우에는 시스템 프로퍼티를 설정하는 것을 피해야 한다.

1.2. 서버 시스템 프로퍼티

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

  • jeus.home

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

    설명 시스템 클래스 로더에 적용할 사용자 클래스 패스이다. 엔진 컨테이너 JVM의 경우 JEUSMain.xml의 user-class-path가 설정된 경우 JEUSMain.xml의 설정이 우선한다.
    기본값 JEUS가 설치된 디렉터리
  • jeus.server.lib

    설명

    시스템 클래스 로더에 적용할 사용자 클래스 패스 디렉터리이다. 이 디렉터리 아래의 모든 jar가 클래스 패스에 적용된다.

    jeus.server.classpath나 JEUSMain.xml의 engine-container/user-class-path 설정이 우선한다.

  • jeus.prepend.classpath

    설명 jeus.jar보다 먼저 적용할 클래스 패스이다.
    기본값 JEUS_HOME\lib\system\jext_prepend.jar;JEUS_HOME\lib\system\jext.jar;JEUS_HOME\classes
  • jeus.boot.printclasspath

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

    설명 JDK Home 디렉터리 경로로 javac, tools.jar path를 설정할 때 사용한다.
  • jeus.deploy.default

    설명 디플로이할 때 JEUS DD가 없는 경우 사용하는 ddinit.properties 파일의 경로이다.
    기본값 JEUS_HOME\config\<node-name>\ddinit.properties
  • jeus.ssl.keystore

    설명 SSL에서 사용하는 keystore 파일의 경로이다.
    기본값 JEUS_HOME\config\<node-name>\keystore
  • jeus.ssl.keypass

    설명 SSL에서 사용하는 keystore 암호이다.
    기본값 jeuskeypass
  • jeus.ssl.truststore

    설명 SSL에서 사용하는 truststore 파일의 경로이다.
    기본값 JEUS_HOME\config\<node-name>\truststore
  • jeus.ssl.trustpass

    설명 SSL에서 사용하는 truststore 암호이다.
    기본값 jeustrustpass
  • jeus.server.filemonitor.interval

    설명 JEUS 서버에서 JEUSMain.xml, vhost.properties file의 변경여부를 check하는 주기를 설정한다.
    기본값 5000 (단위: ms)
  • jeus.properties.replicate

    설명

    엔진 컨테이너에 전달한 JEUS Manager의 프로퍼티의 prefix 이다.

    JEUSMain.xml의 engine-container/command-option이 우선한다.

    기본값 jeus
  • jeus.cluster.backup.downenable

    설명

    primary가 fail 후 resurrect되었을때 fail 시점에 기동된 엔진 컨테이너를 종료하거나 연결된 웹 엔진의 listener를 끊을지의 여부를 설정한다.

    error time을 최소화하기 위해서는 이 옵션을 disable로 설정하고 모든 상황이 종료된 후에 backup을 수동으로 down시켜야 한다.

    기본값 true
  • jeus.server.containerCheckAlive

    설명 컨테이너 모니터 스레드를 구동할지 여부를 설정한다.
    기본값 false
  • jeus.server.useListenPortPerContainer

    설명 JEUS Manager에만 listen port를 사용할지 각 컨테이너별로 listen port를 사용할지의 여부이다. 프로세스 간에 파일 descriptor를 넘기는데 문제가 있는 환경에서 사용할 수 있다.
    기본값 true
  • jeus.server.check-interrupted-status

    설명

    JEUS에서 ejb, jdbc operation을 수행하는 스레드가 interrupt 시그널을 받으면 Exception의 발생 여부를 설정한다.

    JEUS에서는 특정 작업하는 경우 스레드가 interrupt가 걸려있으면 Exception이 발생하는 것이기 때문에 해당 Exception에 대해서는 사용자 애플리케이션에서 처리해 주어야 한다.

    기본값 true
  • jeus.threadpool.queuesize

    설명

    JEUS에서 사용하는 Thread Pool의 내부 Queue size를 설정한다.

    JEUS 전반적인 모듈에서 Thread Pool을 사용하는데, 보통 각 모듈의 xml 설정에서 min, max의 스레드 개수를 설정한다. Thread Pool은 기본적으로 Task 수행을 위해 내부 Queue를 사용하는데, 이 Queue의 크기를 설정한다.

    만약 시스템의 부하가 많으나 설정 스레드의 개수가 작을 경우 Queueing되는 Task들이 증가할 것이고, 이때 최대 설정한 Queue size만큼만 Queueing을 허용한다.

    기본값 4096
  • jeus.rmi.defaultPort

    설명

    RMI의 default export port이다.

    export-port가 지정되지 않은 모든 EJB에도 적용된다. 이 설정은 JEUS 스크립트에 지정해도 엔진 컨테이너로 전파되지 않는다.

    기본값
    • Manager : base port + 7

    • 엔진 컨테이너 : container base port + 7

  • jeus.rmi.jeusrmi.defaultPort

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

    • 엔진 컨테이너 : container 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.server.vtflushing

    설명 엔진 컨텐이너의 Virtual Terminal을 매번 flush할지의 여부를 설정한다.
    기본값 true
  • jeus.container.autorestart

    설명 엔진 컨테이너가 비정상적으로 종료했을 때 자동으로 다시 화면에 출력할지를 설정한다.
    기본값 true

  • jeus.boot.path

    설명

    엔진 컨테이너를 fork할 때 Java command에 bootclasspath 앞에 넣어줄 것이 있는 경우 사용한다. 대부분은 profiling을 할 때 필요한 옵션으로 사용한다.

    또한 jeus.boot.path.container_name을 하면 해당 컨테이너를 fork할 때만 사용한다.

  • jeus.user.resource

    설명 엔진 컨테이너를 fork하는 Java command의 클래스 패스에 추가할 경로가 있는 경우 사용한다. 추가할 경로가 있다면 JEUS에서 사용하는 bootstrap.jar 뒤에 추가한다. 엔진 컨테이너 JVM의 시스템 클래스 로더에 클래스 패스를 추가할 때 사용한다.
  • sun.boot.library.path

    설명 엔진 컨테이너를 fork할 때 JEUS_HOME\lib\system 이외에 sun.boot.library.path 시스템 프로퍼티에 추가할 경로를 지정한다.
  • jeus.profile.executor

    설명 엔진 컨테이너를 fork할 때 profiling을 위해 엔진 컨테이너 실행 클래스 앞에 넣고 싶은 문자열을 지정한다. 즉, 엔진 컨테이너 이외에 이 프로퍼티로 지정된 다른 클래스가 실제 메인 클래스로 사용될 수 있다. jeus.profile.executor.container_name으로 지정하면 해당 엔진 컨테이너에 대해 적용된다.
  • jeus.jvm.version

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

    설명 매니저(Manager)가 엔진 컨테이너의 동작 및 엔진 컨테이너가 Manager의 동작을 점검할 때의 주기를 설정한다.
    기본값 30000 (단위: ms)
  • jeus.container.monitor.retry

    설명 Manager가 엔진 컨테이너의 동작 또는 엔진 컨테이너가 Manager 동작의 이상 여부를 최대로 재점검해보는 횟수를 설정한다.
    기본값 5
  • jeus.container.monitor.type

    설명

    엔진 컨테이너가 Manager 동작의 이상 여부를 판단하기 위해 사용하는 로직 종류(String)이다.

    • beacon

    • jmx

    • none

    기본값 beacon
  • jeus.server.maxdowntime

    설명 Manager가 엔진 컨테이너를 down할 때 또는 엔진 컨테이너가 Self-Down할 때 Down되기까지 기다리는 최대 시간이다. 0일 경우 정상 down될 때까지 무한히 기다린다.
    기본값 0 (단위: ms)
  • jeus.server.beaconCheckTO

    설명 클러스터링 환경에서 상대 노드에 클러스터링 메시지를 보내는 주기를 설정한다.
    기본값 15 * 1000 (단위: ms)
  • jeus.server.beaconConnectTO

    설명 클러스터링 환경에서 상대 노드에 클러스터링 메시지를 보내기 위한 커넥션을 시도할 때나 엔진 컨테이너가 Beacon을 통해 Manager의 유효성을 판단할 때의 커넥션 타임아웃이다.
    기본값 30 * 1000 (단위: ms)
  • jeus.server.beaconReadTO

    설명 클러스터링 환경에서 상대 노드로부터 클러스터링 메시지를 받을 때 커넥션의 Read Timeout이다.
    기본값 15 * 1000 (단위: ms)
  • jeus.server.beaconReplyReadTO

    설명 클러스터링 환경에서 상대 노드에 클러스터링 메시지를 보내고 응답을 기다리는 타임아웃, 또는 엔진 컨테이너가 Beacon을 통해 Manager의 유효성을 판단할 때의 응답에 대한 타임아웃이다.
    기본값 10 * 1000 (단위: ms)
  • jeus.cluster.retry

    설명 엔진 컨테이너나 클라이언트에서 JEUS Manager로 클러스터 커넥션을 맺을때 Exception이 발생할 경우 retry하는 횟수를 지정한다.
    기본값 1
  • jeus.jndi.cluster.url

    설명

    JNDI의 클러스터링에 적용되는 JEUS Manager 리스트이다.

    형식은 ip:port,ip:port 형태로 나열한다.("," separator)

  • jeus.print.properties

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

    설명 설정 기본 디렉터리 경로이다.
    기본값 JEUS_HOME\config
  • jeus.log.home

    설명 로그가 생성되는 Home 디렉터리 경로이다.
    기본값 JEUS_HOME\logs
  • jeus.logging.propertyfile

    설명

    Logging properties 파일 경로이다.

    JEUS의 Logger들에 대해 Java Logging API에서 제공하는 logging property file을 적용하는 경우 사용한다.

    기본값 JEUS_HOME\config\jeuslogging.properties
  • jeus.apphome

    설명 애플리케이션 Home의 디렉터리 경로이다.
    기본값 JEUS_HOME\webhome\app_home
  • jeus.vhost.properties

    설명 Virtual HOST 설정 파일 (vhost.properties) 경로이다.
    기본값 JEUS_HOME\config\vhost.properties
  • jeus.vhost.file(DEPRECATED)

    설명

    Virtual HOST 설정 파일 (vhost.xml) 경로이다.

    설정을 위해 vhost.xml 보다는 vhost.properties 파일을 사용할 것을 권장한다.

    기본값 JEUS_HOME\config\vhost.xml
  • jeus.vhost.enabled

    설명

    Virtual HOST의 기능 사용 유무를 설정한다.

    이 값은 vhost.properties 파일에서 설정 가능한 항목이다. 시스템 프로퍼티로 설정하면 vhost.properties에 설정된 값 보다 우선한다.

    기본값 false
  • jeus.management.snmp.dynamic

    설명

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

    SNMP를 서버 사용하는 경우 OID를 static으로 할지 dynamic으로 할지 결정할 수 있다. static일 경우(true) MIB 파일 기반의 OID를 생성하고, dynamic일 경우(true) 객체에 따라서 동적으로 생성된 OID가 static OID의 접미사로 추가된다.

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

    설명

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

    Short OID일 경우(true) 8자리의 ID가 추가되고, 아닐 경우 (false)에는 32자리의 ID가 추가된다.

    기본값 false
  • jeus.management.snmp.community

    설명 community name을 설정한다. community name은 SNMP에서 보안 목적으로 사용하는 간단한 암호와 같은 문자열이다.
    기본값 public

1.3. Deployment 시스템 프로퍼티

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

  • jeus.deploy.autodeploy.dir

    설명 Auto deployment 디렉터리 경로이다.
    기본값 JEUS_HOME\webhome\autodeploy
  • jeus.deploy.default

    설명 디플로이할 때 Descriptor가 없는 경우 사용하는 ddinit.properties의 위치를 설정한다.
    기본값 JEUS_HOME\config\<node-name>\ddinit.properties
  • jeus.classloading

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

    설명 애플리케이션을 디플로이할 때 기본 디플로이 방식을 Fast Deploy로 할지를 설정한다.
    기본값 false
  • jeus.application.keepgenerated

    설명 애플리케이션을 디플로이할 때 생성되는 소스를 보존할지 여부를 설정한다.
    기본값 false

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

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

  • jeus.baseport

    설명 Base port를 설정한다.
    기본값 9736
  • jeus.server.checktmout

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

    설명

    JEUS 전반에서 사용되는 네트워크 라이브러리의 타입을 설정한다.

    blocking/non-blocking

    기본값 non-blocking
  • jeus.net.blocking

    설명

    blocking으로 동작하는 경우 blocking 모드이다.

    socket/channel

    기본값 channel
  • jeus.net.selector.num

    설명 non-blocking으로 동작하는 경우 Selector의 수이다.
    기본값 1
  • jeus.net.connecttimeout

    설명 커넥션을 맺을 때 사용하는 커넥션 타임아웃을 설정한다.
    기본값 60000 (단위: ms)
  • jeus.net.crosswait

    설명

    cross 커넥션을 할 때 상대방의 커넥션을 기다리는 시간을 설정한다.

    서로 커넥션을 맺으려고 시도할 때 커넥션이 거부당한 프로세스에서 상대방이 접속요청을 하여 커넥션이 맺어지길 기다리는 시간을 지정한다.

    기본값 10000 (단위: ms)
  • jeus.net.timewait

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

    설명

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

    이 값이 정확해야 최대의 I/O 성능을 낼수 있다.

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

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

    설명 DirectBuffer를 사용할 때 DirectBuffer를 매번 만들지 않고 한 번에 크게 만들고자 할 때 사용하는 옵션이다. 이 옵션을 사용할 경우 internal fragment로 OutOfMemoryError가 발생해서 Non direct buffer를 사용할 수도 있다.
    기본값 true
  • jeus.net.viewbuffer.size

    설명 ViewBuffer를 사용할때 한 번에 생성하는 DirectBuffer의 크기를 설정한다.
    기본값 4 * 1024 * 1024 (단위: byte)
  • jeus.net.buffercache.flushsize

    설명 ByteBuffer Cache를 flush하는 시점이다.
    기본값 32 * 1024 * 1024 (단위: byte)
  • jeus.net.localip

    설명 네트워크 카드가 2개 이상인 경우 이 시스템에서 사용할 로컬 IP를 설정한다.
    기본값 OS가 제공하는 IP들의 첫 번째 것
  • jeus.thread.keepalive

    설명 Thread pool을 사용할 때 적용할 keep alive time을 설정한다.
    기본값 5*60*1000 (단위: ms)
  • jeus.net.localhostname

    설명 여러 개의 호스트명이 machine에 할당되어 있을 때 JEUS가 사용할 호스트명을 설정한다.
    기본값 InetAddress.getLocalHost().getHostName()
  • jeus.net.msg.max

    설명 한 메시지의 최대 크기를 설정한다.
    기본값 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으로 동작하는 경우 새로운 selector를 만들기 전까지 select() 연속 실패 횟수를 설정한다.
    기본값 5
  • jeus.net.nio.write.limit

    설명

    non-blocking으로 동작하는 경우 write thread가 블록되기까지 write queue에 쌓이는 메시지 크기를 설정한다. 현재 write를 할 수 없는 상황이면 wirte 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 스레드가 한 소켓에 큰 메시지가 있어서 그것을 write 하느라 다른 소켓의 메시지를 write 못하는 경우에 사용한다. 여러 소켓에 사용되는 메시지의 크기가 모두 큰 경우에는 이 옵션을 적용하면 response가 오히려 느려질 수 있으니 주의한다.

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

    설명 서버 소켓의 SO_REUSEADDR이다.
    기본값 false
  • 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.net.accept.backlog

    설명 서버 소켓의 backlog을 설정한다.
    기본값 200

1.5. 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 서비스를 제공하는 서버의 DNS 호스트 이름과 Port를 정의한다. 즉, JEUS의 JNSServer의 IP 주소를 설정한다. 클러스터링으로 묶인 JEUS 노드에 JNDI 요청을 할 때에는 클러스터링된 모든 서버의 주소를 콤마(,)로 구분해야 한다.

    (예: yohan:9736, yohan1:9836)

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

    설명

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

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

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

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

    설명 JNSLocal이 리소스를 관리하기 위해서 사용하는 시간 간격을 지정한다.
    기본값 30 * 1000 (단위: ms)
  • jeus.jndi.jns.connecttimeout

    설명

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

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

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

    설명

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

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

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

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

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

    설명

    클러스터링된 서버에 bind된 어떤 객체를 lookup해서 사용하는 경우 어떤 서버에서 객체를 가져올 것인지에 대한 정책을 설정한다.

    locallinkPreference, roundrobin, random 중 하나를 선택할 수 있다. locallinkPreference를 선택하면 로컬 노드에 있는 객체를 사용하도록 한다.

    roundrobin을 선택하면 처음 요청에서는 random하게 선택한 서버의 객체를 사용하고, 그 후 요청부터는 하나씩 증가하면서 서버를 선택을 한다. 그리고 random을 선택하면 클러스터링된 서버들 중에서 random하게 하나를 선택하여 사용한다.

    이 시스템 프로퍼티를 설정하지 않으면 jeus.jndi.clusterlink.prefer-local-node 를 어떻게 설정했느냐에 따라 default가 달라진다.

    기본값 locallinkPreference
  • jeus.jndi.clusterlink.prefer-local-node

    설명

    클러스터링된 서버에 bind된 어떤 객체를 lookup해서 사용하는 경우에 로컬 노드에 있는 객체를 우선적으로 사용할 것인지 여부를 설정한다.

    만약 jeus.jndi.clusterlink.selection-policy가 locallinkPreference가 아닌 다른 값이 설정되어 있다면 그 값을 따른다.

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

    설명 JNDI 클라이언트(JNSLocal)에서 Cache를 사용할 것인지를 설정한다. 기본값은 true로 Cache를 사용한다.
    기본값 true
  • jeus.jndi.jns.replicatebindings

    설명 bind하는 객체를 클러스터링으로 묶인 JEUS 노드 전체에서 공유할 것인지 여부를 결정한다. 기본값은 true로, 객체를 공유한다.
    기본값 true
  • jeus.jndi.jns.cachebindings

    설명 객체를 bind할 때 이 옵션을 설정하면 JNSServer에서 bind를 완료 한 후 JNSLocal에 그 객체를 Caching한다. 기본값은 true로 객체를 Caching한다.
    기본값 true
  • jeus.jndi.jns.localbindings

    설명 객체를 자신의 JVM에 있는 JNSLocal에만 bind한다. 기본값은 false로 서버(JEUS Manager JVM)에 bind한다.
    기본값 false

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

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

  • jeus.tm.version

    설명

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

    • client: 클라이언트 TM 사용

    • server: 서버 TM 사용

    기본값 client
  • jeus.tm.port

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

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

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

    설명 더 이상 사용하지 않는 스레드를 줄이기 위한 시간 간격을 설정한다.
    기본값 3600000 (단위: ms)
  • 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.uncompletedto

    설명 부결된 트랜잭션이 보관되는 시간을 설정한다.
    기본값 86400000
  • jeus.tm.noLogging

    설명

    트랜잭션 매니저가 복구를 위한 트랜잭션 정보 Logging 여부를 설정한다.

    true일 경우 Logging하지 않고, false일 경우 Logging한다.

    기본값 false
  • jeus.tm.capacity

    설명 트랜잭션을 처리할 수 있는 용량이다.
    기본값 10000
  • jeus.tm.forcedReg

    설명

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

    true일 경우 트랜잭션이 연동되면 바로 등록하고, false일 경우 RM이 있어야만 등록한다.

    기본값 true
  • jeus.tm.checkReg

    설명

    서브 코디네이터가 루트 코디네이터에 제대로 등록되어있는지 확인 여부를 결정한다.

    기본값 true
  • jeus.tm.usenio

    설명

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

    true일 경우 NIO, false일 경우 블로킹 I/O 사용한다.

    기본값
    • 서버일 경우 : true

    • 클라이언트일 경우 : false

  • jeus.tm.not_use

    설명

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

    클라이언트의 경우 JNDI를 사용하긴 하나 트랜잭션을 사용하지 않을 경우에 한하여 사용한다. true일 경우 사용하지 않는다.

    기본값 false
  • jeus.tm.removeIncompleteTx

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

    설명

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

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

    기본값 10
  • jeus.tm.disableJoin

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

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

    설명 OTS로 트랜잭션 전파 및 prepare 후 Commit, Rollback을 받기 위한 제한시간을 설정한다.
    기본값 60000 (단위: ms)
  • jeus.tm.destroy-timeout

    설명

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

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

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

    설명

    destroy timeout을 check하기 위한 interval을 설정한다.

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

    기본값 1800000 (단위: ms)
  • jeus.tm.propagation.recalculated-timeout

    설명

    Transaction이 다른 container로 전파될 때 전파되기 전에 소모한 시간을 active timeout에서 감소시켜 전파시켜주는 설정이다.

    fix9부터 제공되는 설정으로 하위 호환성을 위해 optional하게 제공된다.

    기본값 false

1.7. 서블릿/웹 시스템 프로퍼티

본 절에서는 서블릿 시스템 프로퍼티와 웹 시스템 프로퍼티에 대해 설명한다.

  • jeus.servlet.jsp.reload

    설명 JSP를 변경하는 경우 리로딩 지원 여부를 설정한다.
    기본값 true
  • jeus.servlet.jsp.helpReloadNativeLibrariesByCallingSystemGC

    설명

    JSP 파일 등에서 JNI 라이브러리를 직접 로딩해서 사용하는 경우 JSP Reloading 시점에 클래스 로더가 바뀌면서 JNI 관련 에러가 발생할 수 있다.

    WAS에서 이를 나지 않도록 할 수 있는 방법은 없다. 하지만 System.gc() 호출을 통해서 나지 않도록 도와줄 수 있다. 하지만 에러가 나지 않는다고 보장할 수 없다.

    JEUS v6.0 Fix#8까지는 jeus.servlet.jsp.reload.enforceReloadingNativeLibraries 라는 이름으로 제공하였으며, 기본값이 true였다.

    기본값 false
  • jeus.servlet.webadmin.suspendCmd.tmout

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

    설명

    JSP에서 생성되는 서블릿 클래스에 패키지 추가 여부를 설정한다.

    false면 jeus_jspwork 패키지가 적용된다.

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

    설명 ContextGroup별로 동시에 로딩할 수 있는 있는 JSP 개수를 설정한다.
    기본값 0
  • jeus.servlet.response.cookie.version0Style

    설명 version0 스타일의 쿠키 헤더 사용 여부를 설정한다.
    기본값 false
  • jeus.servlet.jsp.print.null.as.emptystring

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

    설명 Request의 쿠키에 대해서 디코딩 여부를 설정한다.
    기본값 false
  • jeus.servlet.filesaving.adaptor.write.block.size

    설명 FileSavingAdaptor에서 한번에 write하는 블록의 크기를 설정한다.
    기본값 64k
  • jeus.servlet.postdataEncoding.old

    설명 true로 설정하면 WEBMain의 forced postdata-encoding을 사용하지 않는 JEUS2.x 호환 모드이다.
    기본값 false
  • jeus.servlet.welcomefile.sendRedirect

    설명

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

    false일 경우 RequestDispatcher를 사용한다.

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

    설명 헤더에 JEUS 버전 정보 포함 여부를 설정한다.
    기본값 false
  • jeus.servlet.nio.messagetofile.lower.bound

    설명 NIO 커넥터에서 큰 사이즈의 데이터가 전송될 때 파일에 저장하는 메시지 크기의 하한값이다.
    기본값 64m(단위: MB)
  • jeus.servlet.request.enableDns

    설명 ServletReqeust.getRemoteHost()를 호출할 때 DNS를 통해서 호스트명을 얻어올지 여부를 설정한다.
    기본값 true
  • jeus.servlet.session.central.routename

    설명 중앙 세션 매니저를 사용할때 sticky session의 라우터명을 지정한다. 지정하지 않을 경우 내부적으로 엔진명을 사용한다.
    기본값 null
  • jeus.servlet.request.url.persistent

    설명 Tomcat과 동일하게 Forward한 페이지의 URL을 Request에서 얻기 위한 옵션이다.
    기본값 false
  • jeus.servlet.response.defaultContentType

    설명 디폴트 ContentType을 설정한다.
    기본값 text/plain
  • jeus.servlet.jsp.compile.retrycount

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

    설명 URL의 파리미터에 대한 인코딩 여부를 설정한다.
    기본값 true
  • jeus.servlet.jsp.character.ignore

    설명 대소문자를 무시하는 OS를 사용하는 경우 요청에서 JSP 파일 대소문자 구분을 무시하는 프로퍼티이다.
    기본값 false
  • jeus.servlet.resource.ignore-filename-case

    설명 대소문자를 무시하는 OS를 사용하는 경우 요청에서 리소스 대소문자 구분을 무시하는 프로퍼티이다. JSP에는 적용되지 않는다.
    기본값 false
  • jeus.servlet.tomcat.compatible.querystring

    설명 Tomcat처럼 include 페이지의 query string을 설정하지 않고 메인 페이지의 query string 사용할지 여부를 설정한다.
    기본값 false
  • jeus.webcontainer.j2ee.compatible.forward

    설명 RequestDispatcher.doForward()에서 404 FileNotFoundException이 발생했을 때 HttpServletResponse.sendError() 사용 여부를 설정한다. false일 경우 ServletException을 처리한다.
    기본값 true
  • jeus.servlet.nio.messagetofile.tempdir

    설명 NIO 커넥터에서 큰 사이즈의 데이터에 대해 IO 작업을 할 때 파일 메시지로 저장될 수 있다. 이때 파일이 저장될 디렉터리를 설정한다.
    기본값 null
  • jeus.servlet.out.ensureContentOrder

    설명 사용자가 출력하는 순서를 유지할지 여부를 설정한다.
    기본값 false
  • jeus.servlet.request.url.allowDotDot

    설명 URL에 '..'을 사용할 경우 서버에서 해당 URL에 매칭되는 리소스를 찾을 때 웹 애플리케이션 루트 디렉터리를 벗어나는 경우도 허용한다.
    기본값 false
  • jeus.servlet.request.cookie.encoding

    설명 Request의 쿠키를 읽을 때 사용할 인코딩이다.
    기본값 null
  • jeus.servlet.session.standard.stickysession

    설명 디폴트 세션 매니저를 사용할 때 sticky session을 적용할지 여부를 설정한다.
    기본값 true
  • jeus.servlet.session.central.stickysession

    설명 중앙 세션 매니저를 사용할 때 sticky session을 적용할지 여부를 설정한다.
    기본값 true
  • jeus.servlet.session.distributed.stickysession

    설명 분산 세션 매니저를 사용할 때 sticky session을 적용할지 여부를 설정한다.
    기본값 true
  • jeus.servlet.jsp.modern

    설명 false로 설정하는 경우 JEUS 5.0 호환 JSP 엔진을 사용한다. 이 경우 Servlet 2.4/JSP 2.0 버전만 지원된다.
    기본값 true
  • jeus.servlet.classloader.allowServletAPI

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

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

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

  • jeus.sessionserver.retrycount

    설명 세션 서버 통신 모듈에서 연결에 실패했을 때의 재시도 횟수를 설정한다.
    기본값 0
  • jeus.sessionserver.writequeuelimit

    설명

    네트워크 writer queue의 최대 누적 바이트의 크기를 설정한다.

    세션 서버 통신 모듈에서 write가 busy 상태일 때 JEUS 네트워크 writer queue에 넣게된다. 이 queue의 최대 누적 바이트 크기를 설정한다.

    기본값 10 * 1024 * 1024 (단위: byte)
  • jeus.sessionserver.writequeuerestart

    설명 네트워크 write 대기 중인 스레드들을 깨우기 위한 writer queue의 누적 바이트 크기를 설정한다. 세션 서버 통신 모듈에서 write가 busy 상태일 때 JEUS 네트워크 writer queue에 넣게된다. 이때 queue의 크기가 한계점에 이르면 모든 write thread들은 정지, 대기한다. 이 설정값 이하로 queue size가 다시 줄어들 때 비로소 write thread들을 모두 notify한다.
    기본값 3 * 1024 * 1024 (단위: byte)
  • jeus.sessionserver.sessionconsistent

    설명 세션 서버로 새로운 세션을 추가할 때 예상하지 않은 오류가 발생하였을 경우 해당 세션을 삭제할지 여부를 설정한다.
    기본값 true
  • jeus.sessionserver.recovery.trycount

    설명 Replicated 서버로부터 세션을 복구할 때 예상하지 않은 오류가 발생하였을 경우 재시도하는 횟수를 설정한다.
    기본값 3
  • jeus.sessionserver.memory.max

    설명

    논리적인 세션 메모리의 한계치이다. 세션 메모리가 이 설정값 이상이 될 경우 세션을 passivation 하면서 메모리를 줄인다.

    설정 단위는 기본적으로 byte이나 suffix로 K, M을 붙일 경우 kilo-bytes(K), mega-bytes(M)로도 설정 가능하다.

    -1일 경우 무제한 메모리를 의미한다.

    기본값 -1 (단위: byte)
  • jeus.sessionserver.memory.passivationratio

    설명 논리적인 세션 메모리가 한계치에 이르렀을 때 상위 몇 퍼센트를 passivation할지를 결정하는 비율이다(소숫점).
    기본값 0.2
  • jeus.sessionserver.memory.enablegc

    설명 논리적인 세션 메모리가 한계치에 이르렀을 때 passivation을 수행한 후 강제적으로 gc()를 진행할지 여부를 설정한다.
    기본값 true

1.9. EJB 시스템 프로퍼티

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

1.9.1. EJB 시스템 프로퍼티

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

  • jeus.ejb.transaction.attribute.default

    설명

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

    우선순위는 다음과 같다.

    1. ejb-jar/trans-attribute

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

    3. 시스템 프로퍼티

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

    • NotSupported

    • Supports

    • Required

    • RequiresNew

    • Mandatory

    • Never

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

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

    • Timer Service 메소드의 경우 : NotSupported

  • jeus.ejb.sharedcolumn.modify

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

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

    설명

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

    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가 DeployUundeploy될 때 reload에서 제외될 웹 모듈 리스트이다.

    context_group_name1:context_name1;context_group_name2: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 기능을 사용하지 않는다.

    기본값 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 기능을 사용하지 않는다.

  • jeus.ejb.all.passivate

    설명

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

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

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

    설명

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

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

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

  • jeus.ejb.stateful.passivate

    설명

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

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

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

  • jeus.ejb.exportPort

    설명

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

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

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

    기본값 container base port + 7

1.9.2. JPA 시스템 프로퍼티

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

  • jeus.persistence.defaultProvider

    설명 디폴트 Java Persistence API 프로바이더 클래스명이다.

1.9.3. RMI 시스템 프로퍼티

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

참고

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

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

http://docs.oracle.com/javase/6/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를 반드시 제공해야 하며 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 커넥션이 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] JEUS 버전 6.0 이상에서만 사용할 수 있는 옵션이다. 서버에서 요청을 처리하는 스레드 개수의 최댓값을 설정한다.

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

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

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

    설명 [server] 버전6 이상에서만 사용할 수 있는 옵션이다. 스레드가 요청이 끝난 후(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

    설명 [server] IIOP 클래스들을 생성할 때 vcompat 옵션을 적용할지 여부를 설정한다. vcompat 이 적용되면 RMI 1.1, 1.2 protocol 모두를 사용 가능하다.
    기본값 false
  • jeus.ejb.compiler.class.version

    설명 [server] EJB 생성된 클래스를 컴파일할 때 source와 target version을 설정한다.
    기본값 1.4

JEUS RMI를 사용할 경우

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

  • jeus.rmi.jeusnet

    설명 RMI 통신에 JEUS 네트워크 레이어(network layer)를 사용할지 여부를 설정한다.
    기본값 false
  • jeus.rmi.io.type

    설명

    JEUS 네트워크 레이어를 사용할 때 IO 타입을 설정한다.

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

    기본값 blocking
  • jeus.rmi.blocking

    설명

    JEUS 네트워크 레이어의 blocking 통신을 사용할 때 blocking 타입을 설정한다.

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

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

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

    설명

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

    msg의 최대 크기를 buffer size로 정하면 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의 size를 설정한다.
    기본값 50
  • jeus.rmi.server.threadPool

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

    설명 컨테이너의 Base port를 RMI Default port로 사용한다(JEUS RMI는 예외).
    기본값 false

1.10. 보안 시스템 프로퍼티

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

1.10.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 policy 파일의 경로를 설정한다.
    기본값 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.10.2. JEUS 보안 시스템 프로퍼티

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

  • jeus.security.enable

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

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

    설명

    디폴트 도메인명을 설정한다.

    DEFAULT_APPLICATION_DOMAIN 폴더가 존재하지 않은 경우에는 디폴트 도메인명은 SYSTEM_DOMAIN이다.

    기본값 DEFAULT_APPLICATION_DOMAIN
  • jeus.security.globalPassword

    설명

    클러스터로 묶여 있는 JEUS 서버의 전역 시스템 패스워드를 설정한다.

    이 패스워드는 같은 클러스터 내에 있는 모든 JEUS 서버에서 동일해야 한다. JEUS 클라이언트 컨테이너에는 적용되지 않는다.

    이 설정의 디폴트값은 "globalpass"이다. 이 속성값은 "CodeSubject" 에 로그인하기 위해 securityadmin 스크립트에 임시로 설정되어 있다. 전역 패스워드는 반드시 기밀성을 유지해야 하며, 디폴트 이외의 값으로 다시 설정해야 한다.

    기본값 globalpass
  • jeus.security.installer.classname

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

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

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

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

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

1.11. JEUS MQ 시스템 프로퍼티

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

1.11.1. JEUS MQ 클라이언트

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

  • jeus.jms.client.tx.timeout

    설명

    로컬 트랜잭션의 Commit 또는 Rollback 명령이 처리되기를 기다리는 제한시간을 설정한다. 제한시간 동안 서버로부터 응답이 없으면 Session.commit(), Session.rollback() 메소드에서 JMSException이 발생한다.

    또한 이 값은 JEUS MQ 세션이 XA 트랜잭션에 참여할 때 트랜잭션 제한시간의 기본값으로도 사용된다.

    기본값 60000 (단위: ms)
  • jeus.jms.client.admin.timeout

    설명

    JMS 메시지 송수신 외에 JEUS MQ 서버에 요청한 명령이 처리되기를 기다리는 제한시간을 설정한다.

    제한시간 동안 서버로부터 응답이 없으면 해당 메소드(예: Connection.createSession() 메소드)에서 JMSException이 발생한다.

    기본값 200000 (단위: ms)
  • jeus.jms.client.shutdown.timeout

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

    설명 커넥션 Failover를 위해 클라이언트가 서버로 재접속을 시도하는 시간 간격을 설정한다.
    기본값 3000 (단위: ms)
  • jeus.jms.client.defaultRedeliveryLimit

    설명

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

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

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

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

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

    설명 커넥션 Failover를 위해 클라이언트가 서버로 재접속을 시도하는 제한시간을 설정한다.
    기본값 60000 (단위: ms)
  • jeus.jms.client.workdir

    설명

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

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

    기본값 USER_HOME\jeusmq_client_work\
  • jeus.jms.client.connectForExceptionListener

    설명 커넥션 Failover에 실패하여 커넥션에 등록된 예외 리스너(Exception Listener)의 onException() 메소드를 수행한 뒤에도 백그라운드로 커넥션 복구를 시도할지 여부를 설정한다.
    기본값 false
  • jeus.jms.client.connectForException

    설명 커넥션 Failover에 실패한 뒤에도 백그라운드로 커넥션 복구를 계속해서 시도할지 여부를 설정한다.
    기본값 true
  • jeus.jms.client.failover

    설명 커넥션 Failover 기능의 사용 여부를 설정한다.
    기본값 true
  • 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.closeConsumerWhenConnectionStop

    설명 Connection.stop() 메소드가 호출되면 모든 메시지 수신자를 종료할 것인지 여부를 설정한다.
    기본값 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들 중 이 시간(ms)동안 사용되지 않으면 Pool에서 제거한다.
    기본값 120000

1.11.2. JEUS MQ 서버

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

  • jeus.jms.file.blocksize

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

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

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

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

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

1.12. 클라이언트 컨테이너 시스템 프로퍼티

본 절에서는 클라이언트 컨테이너 시스템 프로퍼티에 대해 설명한다.

  • jeus.deploy.autodeploy.dir

    설명

    Java Web Start를 통해서 클라이언트 컨테이너를 실행할지 여부를 설정한다.

    JNLP 파일에 설정해야 한다.

    (예 : <property name="jeus.client.container.jws" value="true">)

    기본값 false