제2장 환경설정

내용 목차

2.1. WebT 환경설정(JEUS6)
2.1.1. JEUSMain.xml 설정
2.1.2. webt.properties 설정
2.2. WebT 환경설정(JEUS7)
2.2.1. domain.xml 설정
2.2.2. webt.properties 설정
2.3. JTmax의 환경설정(JEUS6)
2.3.1. JEUSMain.xml 설정
2.3.2. EJB 설정
2.4. JTmax의 환경설정(JEUS7)
2.4.1. domain.xml 설정
2.4.2. EJB 설정
2.5. 그 외의 환경설정

본 장에서는 WebT와 JTmax를 기동하기 전에 필수적으로 진행해야 할 환경설정 방법에 대해 설명한다.

2.1. WebT 환경설정(JEUS6)

JEUS에서 WebT를 기동하기 위해서는 JEUSMain.xml나 webt.properties 파일 중에 하나를 설정한다.

2.1.1. JEUSMain.xml 설정

JEUS에서 WebT를 기동하기 위해 JEUSMain.xml에 <external-source>로 WebTConnectionPool의 환경 정보를 등록한다. WebTConnectionPool을 설정하려면 JEUSMain.xml 파일의 <external-resource> 태그 안에 다음과 같이 정의한다.

<resource>
    ....
        <external-resource>
            <property>
                <key>header-type</key>
                <value>extendedV4</value>
            </property>
            <property>
                <key>log-file-name</key>
                <value>d:\\webt.log</value>
            </property>
            <property>
                <key>log-level</key>
                <value>debug</value>
            </property>
            <property>
                <key>log-valid-day</key>
                <value>1</value>
            </property>
            <property>
                <key>monitor-interval</key>
                <value>30000</value>
            </property>
            <property>
                <key>check-alive</key>
                <value>true</value>
            </property>
            <property>
                <key>enable-failback</key>
                <value>false</value>
            </property>
            <property>
                <key>enable-autoclose</key>
                <value>true</value>
            </property>
            <property-group>
                <name-prefix>tmax2</name-prefix>
                <property>
                    <key>type</key>
                    <value>shared</value>
                </property>
                <property>
                    <key>host-name</key>
                    <value>192.168.1.123</value>
                </property>
                <property>
                    <key>host-port</key>
                    <value>8888</value>
                </property>
                <property>
                    <key>min</key>
                    <value>10</value>
                </property>
                <property>
                    <key>max</key>
                    <value>20</value>
                </property>
                <property>
                    <key>step</key>
                    <value>2</value>
                </property>
                <property>
                    <key>check-acquired</key>
                    <value>true</value>
                </property>
                <property>
                    <key>support-xa</key>
                    <value>true</value>
                </property>
                <property>
                    <key>enable-autoclose</key>
                    <value>true</value>
                </property>
                <property>
                    <key>mbean</key>
                    <value>true</value>
                </property>
            </property-group>
            <property-group>
                <name-prefix>tmaxc</name-prefix>
                <property>
                    <key>type</key>
                    <value>clustered</value>
                </property>
                <property>
                    <key>connect-timeout</key>
                    <value>60</value>
                </property>
            </property-group>
            <name>webt</name>
            <class-name>tmax.webt.external.WebtResource</class-name>
        </external-resource>
    ...
</resource>

주의

JEUSMain.xml의 <resource> 태그 안에 정의한 경우에는 JEUS 매니저가 기동했을 때 이 커넥션 그룹이 등록된다. 특정 컨테이너를 설정한 <engine-container> 태그 아래에 정의했을 경우에는 해당 컨테이너가 기동되었을 때에 등록된다.

같은 이름으로 여러 곳에 등록한 경우에는 나중에 등록된 커넥션 그룹의 설정이 이전에 등록된 커넥션 그룹의 설정을 덮어쓰게 되므로, 같은 이름으로 중복해서 등록하지 않도록 주의한다.

다음은 JEUSMain.xml를 설정할 때 사용하는 <external-resource> 하위 태그에 대한 설명이다.

  • <property>

    모든 WebTConnectionPool에 적용할 속성을 정의한다. Sub 태그로 다음과 같이 <key>와 <value>가 있고 그에 대한 자세한 설명은 <property-group>/<property> 속성을 참고한다.

    태그설명
    <key>WebTConnectionPool에 적용할 속성의 이름을 정의한다.
    <value>정의한 속성에 대해 적용 가능한 값을 설정한다.

  • <property-group>

    하나의 WebTConnectionPool에 적용할 속성을 정의한다. <property-group> 하나를 정의할 때마다 WebTConnectionPool 하나가 생성된다. <property-group>을 여러 번 정의하여 다수의 WebTConnectionPool을 생성할 수 있다.

    태그설명
    <name-prefix>애플리케이션 프로그램에서 접근하게 될 컨텍스트의 이름을 정의한다.

  • <name>

    원하는 WebTConnectionPool의 이름을 설정한다. 단, <resource> 태그 내부에서 고유한 이름으로 정의한다.

  • <class-name>

    WebTConnectionPool을 사용하기 위해서는 WebTConnectionPool에서 사용하는 클래스명을 반드시 정의해야 한다.

<property-group>/<property> 속성

<property>와 <property-group> 내부에 <key>, <value> 태그를 사용해서 WebTConnectionPool에 적용할 속성과 적용 가능한 값을 설정한다. <key> 태그에는 속성 이름, <value> 태그에는 적용 가능한 값을 설정한다.

다음은 <key> 태그에 설정 가능한 속성명과 그에 따라 <value> 태그에 설정 가능한 값에 대한 설명이다.

<key> 속성구분<value> 설명
log-file-name설정값String
기본값NULL
설명로그 파일의 상대 경로 혹은 절대 경로를 지정한다. 상대 경로를 지정할 경우 $JEUS_HOME/logs 디렉터리 밑에 로그 파일이 생성되며 이 값을 지정하지 않는 경우 STDOUT으로 로그가 출력된다. OS가 Windows인 경우에는 경로 구분자를 '\'가 아닌 '\\'로 해야 한다.
log-level설정값none | debug | info
기본값info
설명

로그 레벨을 지정한다.

  • none : 값을 출력하지 않는다.

  • debug : request msg, reply msg, xa msg 등 debug 관련 내용을 출력한다.

  • info : request msg, reply msg를 출력한다.

log-file-format설정값String
기본값MMddyyyy
설명log-valid-day가 1 이상일 경우 생성되는 로그 파일명의 형식을 지정한다.
log-buffer-size설정값int
기본값512
설명로그를 남길 때 사용되는 버퍼의 크기를 지정한다.
log-valid-day설정값int
기본값-1
설명

로그 파일을 사용하는 경우 로그 파일명의 갱신 주기를 설정한다.

0이나 음수를 지정하는 경우 하나의 파일을 사용한다.

type설정값shared | clustered
기본값shared
설명

WebTConnectionPool의 타입을 지정한다.

  • shared: 일반적인 경우이다.

  • clustered: WebTDataSource의 클러스터링을 사용할 경우이다. tmax-delegation-source와 connection-timeout을 <property>로 갖는다.

tmax-delegation-source설정값String
기본값NULL
설명type을 clustered로 설정한 경우 클러스터링에 참여하는 WebTDataSource들의 JNDI명의 리스트를 콤마(,)로 구분하여 지정한다.
host-name설정값String
기본값NULL
설명type을 shared로 설정한 경우 Tmax 서버의 IP 주소를 지정한다. host-port가 -1 일 경우 $TMAXDIR/host-name 으로 Unix Domain Socket (AF_UNIX) 로 연결 시도를 한다.
host-port설정값int
기본값-1
설명

type을 shared로 설정한 경우 Tmax 서버의 TCP 포트를 지정한다.

support-xa가 TRUE일 경우에는 반드시 JAVAGW의 포트를 지정해야 한다.

-1 일 경우 $TMAXDIR/host-name 으로 Unix Domain Socket (AF_UNIX) 로 연결 시도를 한다.

backup-host-name설정값String
기본값NULL
설명type이 shared이고 백업 서버를 사용하는 경우 백업 Tmax 서버의 IP 주소를 지정한다. backup-port가 -1 일 경우 $TMAXDIR/backup-host-name 으로 Unix Domain Socket (AF_UNIX) 로 연결 시도를 한다.
backup-port설정값int
기본값-1
설명type이 shared이고 백업 서버를 사용하는 경우 백업 Tmax 서버의 TCP 포트를 지정한다. backup-port가 -1 일 경우$TMAXDIR/backup-host-name 으로 Unix Domain Socket (AF_UNIX) 로 연결 시도를 한다.
default-charset설정값String
기본값사용 중인 JDK의 기본값
설명Tmax 버퍼의 내용에 적용되는 Character Set의 이름을 지정한다.
fdl-file설정값String
기본값NULL
설명Tmax FDL 버퍼를 사용하기 위한 필드 테이블의 경로를 지정한다.
encryption설정값Boolean
기본값FALSE
설명Tmax와의 통신에서 암호화 기능의 사용 여부를 설정한다.
user-name설정값String
기본값NULL
설명사용자 보안 인증을 위한 사용자명을 설정한다.
user-password설정값String
기본값NULL
설명사용자 보안 인증을 위한 사용자 암호를 설정한다.
domain-name설정값String
기본값NULL
설명도메인 보안 인증을 위한 도메인명을 설정한다.
domain-password설정값String
기본값NULL
설명도메인 보안 인증을 위한 도메인의 암호를 설정한다.
min설정값int
기본값2
설명WebTConnectionPool의 기본 커넥션의 수를 설정한다.
max설정값int
기본값30
설명WebTConnectionPool의 최대 커넥션의 수를 설정한다.
step설정값int
기본값4
설명WebTConnectionPool이 부족해서 커넥션을 더 생성할 때 생성할 커넥션의 개수를 설정한다.
period설정값int
기본값3600000 (단위 : Milisecond)
설명커넥션을 제거할 기준시간을 설정한다. WebTConnectionPool에서 커넥션의 개수가 min에 설정된 개수보다 클 경우 period에 설정된 시간 동안 사용되지 않은 커넥션을 WebTConnectionPool에서 제거한다.
fair-provision설정값Boolean
기본값TRUE
설명

WebTConnectionPool에서 커넥션을 획득하는 정책을 결정한다.

  • TRUE: 사용하지 않은 커넥션을 가져온다.

  • FALSE: 최근에 사용했던 커넥션을 가져온다.

check-acquired설정값Boolean
기본값FALSE
설명

WebTConnectionPool에서 획득한 커넥션의 liveness 체크를 할 것인지를 설정한다. WebTDataSource에서 getConnection을 실행했을 때 실제 서버로 애플리케이션 ping 체크를 할 것인지를 설정한다.

  • TRUE: liveness 체크를 한다.

  • FALSE: liveness 체크를 하지 않는다.

enable-autoclose설정값Boolean
기본값FALSE
설명사용 후 반납되지 않은 커넥션을 자동으로 WebTConnectionPool에 반환한다. Java Servlet과 JSP에서만 유효하다.
connect-timeout설정값int
기본값20 (단위: 초)
설명WebTDataSource에서 커넥션을 가져올 때 사용되는 타임아웃 시간이다. 설정된 시간 내에 커넥션을 얻거나 새로 생성하지 못하면 예외상황을 반환한다.
support-xa설정값Boolean
기본값TRUE
설명XA 트랜잭션 서비스를 사용할 것인지를 결정한다. XA 트랜잭션을 사용하는 경우 RQ나 대화형 서비스의 사용은 제한된다. 커넥션의 메인 주소 및 백업 주소는 반드시 JAVAGW의 주소를 사용해야 한다.
service-timeout설정값int
기본값-1
설명서비스를 요청할 때 service-timeout에 지정된 시간 동안 응답이 없는 경우 예외상황을 반환한다. 트랜잭션 시작 후 서비스 호출시에는 service-timeout 대신 transaction-block-timeout 을 타임아웃 시간으로 적용한다.
transaction-timeout설정값int
기본값-1
설명트랜잭션을 사용하는 경우 transaction-timeout에 지정된 시간 동안 처리되지 않은 트랜잭션을 Rollback 처리한다.
transaction-block-timeout설정값int
기본값60
설명트랜잭션의 commit이나 rollback을 요청할 때 transaction-block-timeout에 지정된 시간 동안 응답이 없는 경우 예외상황을 반환한다. 트랜잭션 시작 후 서비스 호출시에는 service-timeout 대신 transaction-block-timeout 을 타임아웃 시간으로 적용한다.
event-event설정값Boolean
기본값FALSE
설명이벤트 사용 여부를 결정한다.
enable-flag설정값all | broadcast | sendtocli | notify | acall | none
기본값none
설명

사용할 이벤트를 설정한다.

  • all: 모든 이벤트를 사용한다.

  • broadcast: broadcast 타입 이벤트를 사용한다.

  • sendtocli: sendtocli 타입 이벤트를 사용한다.

  • notify: notify 타입 이벤트를 사용한다.

  • acall: acall 타입 이벤트를 사용한다.

  • none: 이벤트를 사용하지 않는다.

2 종류 이상의 Value를 동시에 설정할 때는 콤마(,)로 구분한다.

( 예: broadcast,notify )

event-handler설정값String(클래스이름)
기본값NULL
설명이벤트를 수신할 때 호출되는 인터페이스를 구현한 객체의 이름을 설정한다.
header-type설정값default | extendedV4
기본값default
설명

Tmax와 통신할 때의 프로토콜 타입을 결정한다.

  • default: Tmax 3.x에서 사용하는 프로토콜이다.

  • extendedV4: Tmax 4.x에서 사용하는 프로토콜이다. Tmax 4.x는 하위 프로토콜을 지원하므로 default로 설정해도 호환된다.

monitor-interval설정값int
기본값60000 (단위 : Millisecond)
설명

WebtDatasource의 상태를 점검하는 주기를 설정한다. 최소 주기는 버전에 따라 다음과 같이 달라진다.

  • 7.0.0.b8 이전 버전 : 최소 주기는 20초이다.

  • 7.0.0.b8 이후 버전 : 최소 주기는 5초이다.

check-alive설정값Boolean
기본값FALSE
설명

liveness 체크를 수행할지를 설정한다. 주기적으로 상태 점검시 실제로 메시지 전송을 통해 연결 상태를 체크한다.

  • TRUE: liveness 체크를 한다.

  • FALSE: liveness 체크를 하지 않는다.

enable-failback설정값Boolean
기본값FALSE
설명메인 서버의 문제가 해결된 경우 백업 주소를 지정한 WebTDataSource가 다시 메인 서버의 서비스를 이용할지를 지정한다.
mbean설정값Boolean
기본값FALSE
설명WebT Admin을 위한 MBean을 등록할 것인지 여부를 지정한다. WebT Admin 기능은 JEUS v6.0 Fix#7 이상에서 지원한다.

2.1.2. webt.properties 설정

JEUS에서 WebT를 기동하기 위해 필요한 환경설정은 WebT의 환경설정 파일인 webt.properties를 설정하는 것으로도 가능하다. webt.properties 파일을 사용해 WebT에서 제공하는 라이브러리로 구현된 클라이언트 프로그램을 구동할 때 환경설정을 초기화한다. 또한 애플리케이션 프로그램을 초기화할 때 WebTSystem API를 사용하는 대신 webt.properties 파일에서 설정할 수 있다.

JEUS6 이하 JEUSMain.xml에 다음과 같이 설정한다.

<engine-container>
         <name>container1</name>
         <id>60</id>
         <base-port>11351</base-port>
         <command-option>-Xms256m -Xmx512m -Dwebt.properties=/home/tmax1/
webt/properties/common.properties</command-option>
         ........
</engine-container>

주의

JEUS_HOME/lib/application 안에 webt.proterties를 두면 JEUS를 부팅할 때 자동으로 환경을 읽어오지만 JEUS_HOME/lib/application/webt.properties와 JEUSMain.xml에서 동시에 webt.properties를 설정하면 문제가 발생할수 있으므로 주의해야 한다.

JEUSMain.xml에 [-D] 옵션으로 JEUS를 기동할 때 webt.properties의 환경을 설정할수 있으며, JEUS_HOME/lib/application 이외의 폴더에 설정하여 사용하는것을 권장한다. 이 경우에 webt.properties로 지정된 커넥션 그룹의 설정은 [-D] 옵션으로 정의된 해당 컨테이너에서만 사용할 수 있다.

webt.properties 파일에는 다음의 값들을 설정할 수 있다. 시간값은 초 단위로 설정된다.

#######################################
# logging related parameters. 
#######################################
log.level=none | info | debug | dev

# printed to standard out
log.dir=log.dir

# set the name of the log file. default is webt.log
log.file=webt.log

# set log buffering size. default is 0
log.bufsize=numer
log.file.date.format=MMddyyyy
log.valid.days=numer 


#######################################
# FDL related parameters
#######################################
fdl.file=fdl.file
 
# Tmax 3.11.x extended Header size
headerType=default|extendedV4

# monioring related parameters 
monitoring.pool.failback=true|false
monitoring.pool.checkAlive=true|false
monitoring.pool.interval=number

enableFastBackup=true|false
enableJavaSocketKeepAlive=true|false
useRollingDown=true|false

jeus.servlet.webt.autoClose.enable=true|false


#######################################
# connection pool realted paramters
#######################################
enableConnectionPool=true|false

connectionPool.groups=connectionPool name
connectionPool.<groupName>.connectTimeou=number
connectionPool.<groupName>.cluster=group name

connectionPool.<groupName>.hostAddr=hostAddr
connectionPool.<groupName>.hostPort=hostPort
connectionPool.<groupName>.hostBackupAddr=hostBackupAddr
connectionPool.<groupName>.hostBackupPort=hostBackupPort

connectionPool.<groupName>.encryption=true|false 
connectionPool.<groupName>.check=true|false 
connectionPool.<groupName>.userName=userName
connectionPool.<groupName>.userPasswd=userPasswd
connectionPool.<groupName>.domainName=domainName
connectionPool.<groupName>.domainPasswd=domainPasswd

connectionPool.<groupName>.fair.provision=true|false
connectionPool.<groupName>.initCapacity=number
connectionPool.<groupName>.maxCapacity=number
connectionPool.<groupName>.maxIdleTime=number

connectionPool.<groupName>.tpTimeout=number
connectionPool.<groupName>.txTimeout=number
connectionPool.<groupName>.txBlockTimeout=number
connectionPool.<groupName>.header.type=default | extendedV4
connectionPool.<groupName>.eventSvcType=all | broadcast | sendtocli | notify | acall
connectionPool.<groupName>.eventHandler=shared | clustered

tmax.webt.xid.log=true | false
webt.mbean=true | false

다음은 각 설정 항목에 대한 설명이다.

  • log.level = none | debug | info

    • 기본값 : info

    • 로그 레벨을 지정한다.

      설정값설명
      none값을 출력하지 않는다.
      inforequest msg , reply msg를 출력한다.
      debugrequest msg, reply msg, xa msg 등 내용을 출력한다.
      devrequest msg, reply msg, xa msg ,data dump 등 내용을 출력한다.
  • log.dir = String

    • 기본값 : NULL

    • WebT 로그 파일의 저장되는 디렉터리 경로를 설정한다. OS가 Windows인 경우에는 경로 구분자를 '\'가 아닌 '\\'로 해야 한다.

  • log.file = String

    • 기본값 : webt.log

    • WebT 로그 파일명을 지정한다.

  • log.bufsize = int

    • 기본값 : 512

    • 로그를 남길 때 사용되는 버퍼의 크기를 지정한다.

  • log.file.date.format = String

    • 기본값 : MMddyyyy

    • log.valid.days가 1 이상일 경우 생성되는 로그 파일명의 형식을 지정한다.

  • log.valid.days = int

    • 기본값 : -1

    • 로그 파일을 사용하는 경우 로그 파일명의 갱신 주기를 설정한다. 0이나 음수를 지정하는 경우 하나의 파일을 사용한다.

  • fdl.file = String

    • 기본값 : NULL

    • Tmax FDL 버퍼를 사용하기 위한 필드 테이블의 경로를 지정한다.

  • headerType = default | extendedV4

    • 기본값 : default

    • Tmax와 통신할 때의 프로토콜 타입을 결정한다. 사용자가 직접 생성한 커넥션 및 커넥션 그룹에 적용되는 프로토콜 타입이다.

      설정값설명
      defaultTmax 3.x에서 사용하는 프로토콜이다.
      extendedV4Tmax 4.x에서 사용하는 프로토콜이다. Tmax 4.x는 하위 프로토콜을 지원하므로 default로 설정해도 호환된다.
  • monitoring.pool.failback = Boolean

    • 기본값 : FALSE

    • 백업 주소를 지정했을 때 메인 서버의 문제가 해결된 경우 다시 메인 서버의 서비스를 이용할지를 지정한다.

      설정값설명
      TRUE메인 서버의 서비스를 이용한다.
      FALSE메인 서버의 서비스를 이용하지 않는다.
  • monitoring.pool.checkAlive = Boolean

    • 기본값 : FALSE

    • group 에 설정된 pool 의 liveness 체크를 통해 커넥션의 상태 점검을 할 것인지 설정한다. 주기적으로 커넥션의 상태 점검 할 경우 Tmax의 연결 여부를 실제 메시지 전송을 통해 확인한다.

      설정값설명
      TRUEliveness 체크를 실행한다.
      FALSEliveness 체크를 실행하지 않는다.
  • monitoring.pool.interval = int

    • 기본값 : 60 (단위: 초)

    • 커넥션의 상태 점검 주기를 설정한다. 최소 주기는 버전에 따라 다음과 같이 달라진다.

      설정값설명
      7.0.0.b8 이전 버전최소 주기는 20초이다.
      7.0.0.b8 이후 버전최소 주기는 5초이다.
  • enableFastBackup = Boolean

    • 기본값 : FALSE

    • 타임아웃이 발생하는 소켓을 삭제하는 기능의 사용 여부를 설정한다.

      설정값설명
      TRUE타임아웃이 발생하는 소켓을 삭제한다.
      FALSE타임아웃이 발생하는 소켓을 삭제하지 않는다.
  • enableJavaSocketKeepAlive = Boolean

    • 기본값 : FALSE

    • 데이터의 전송이 중지된 경우 커넥션의 상태를 확인하는 옵션의 사용 여부를 설정한다. 에플리케이션 레벨에서 체크하는 것이 아니라, 연결된 소켓의 KEEPALIVE옵션을 활성화시켜 Tmax와 연결된 Socket의 상태를 TCP 프로토콜에 의해서 체크하는 기능이다.

      설정값설명
      TRUE커넥션의 상태를 확인한다.
      FALSE커넥션의 상태를 확인하지 않는다.
  • useRollingDown = Boolean

    • 기본값 : FALSE

    • Rolling Down 사용 여부를 결정한다.

      설정값설명
      TRUERolling Down을 사용한다.
      FALSERolling Down을 사용하지 않는다.
  • jeus.servlet.webt.autoClose.enable = Boolean

    • 기본값 : FALSE

    • 사용 후 반납되지 않은 커넥션을 자동으로 WebTConnectionPool에 반환하는 기능의 사용 여부를 결정한다.

      설정값설명
      TRUE커넥션을 자동으로 반납하는 기능을 사용한다.
      FALSE커넥션을 자동으로 반납하는 기능을 사용하지 않는다.
  • enableConnectionPool = Boolean

    • 기본값 : FALSE

    • WebTConnectionPool의 사용 여부를 결정한다.

      설정값설명
      TRUEWebTConnectionPool을 사용한다.
      FALSEWebTConnectionPool을 사용하지 않는다.
  • connectionPool.groups = String

    • 기본값 : NULL

    • 설정에서 사용할 Connection Pool의 이름을 지정한다. 지정된 이름은 connectionPool.<groupName>.connectTimeout의 <groupName>에 사용된다.

  • connectionPool.<groupName>.connectTimeout = int

    • 기본값 : 20 (단위 : 초)

    • WebTDataSource에서 커넥션을 가져올 때 사용되는 타임아웃 시간을 지정한다. 정해진 시간 내에 커넥션을 얻거나 새로 생성하지 못하면 예외상황을 반환한다.

  • connectionPool.<groupName>.cluster = String

    • 기본값 : NULL

    • 클러스터로 관리할 커넥션 그룹의 이름을 콤마(,)로 구분하여 지정한다.

  • connectionPool.<groupName>.hostAddr = String

    • 기본값 : NULL

    • 접속할 Tmax 서버의 주소를 지정한다. hostAddr이 'path/cllrcad'일 경우 $TMAXDIR/hostAddr 으로 Unix Domain Socket (AF_UNIX) 로 연결 시도를 한다.

      상세한 설정은 1.6 Unix Domain Socket 절을 참고 한다

  • connectionPool.<groupName>.hostPort = String

    • 기본값 : NULL

    • 접속할 Tmax 서버의 포트를 지정한다. hostPort가 '-1'일 경우 $TMAXDIR/hostAddr 으로 Unix Domain Socket (AF_UNIX) 로 연결 시도를 한다.

  • connectionPool.<groupName>.hostBackupAddr = String

    • 기본값 : NULL

    • 접속할 Tmax 백업 서버의 주소를 지정한다.

  • connectionPool.<groupName>.hostBackupPort = String

    • 기본값 : NULL

    • 접속할 Tmax 백업 서버의 포트를 지정한다.

  • connectionPool.<groupName>.encryption = Boolean

    • 기본값 : FALSE

    • Tmax와 통신할 때 암호화 기능의 사용 여부를 설정한다.

      설정값설명
      TRUE암호화 기능을 사용한다.
      FALSE암호화 기능을 사용하지 않는다.
  • connectionPool.<groupName>.check = Boolean

    • 기본값 : FALSE

    • 해당 liveness 체크에 의한 커넥션의 상태 점검 여부를 설정한다. Connection Pool에서 getConnection를 수행할 때 Tmax에 메시지 전송을 통해 연결 여부를 판단하여 연결된 Connection 만 리턴할 수 있도록 동작한다.

      설정값설명
      TRUEliveness 체크를 한다.
      FALSEliveness 체크를 하지 않는다.
  • connectionPool.<groupName>.userName = String

    • 기본값 : NULL

    • 사용자 보안 인증을 위한 사용자명을 설정한다.

  • connectionPool.<groupName>.userPasswd = String

    • 기본값 : NULL

    • 사용자 보안 인증을 위한 사용자 암호를 설정한다.

  • connectionPool.<groupName>.domainName = String

    • 기본값 : NULL

    • 도메인 보안 인증을 위한 도메인명을 설정한다.

  • connectionPool.<groupName>.domainPasswd = String

    • 기본값 : NULL

    • 도메인 보안 인증을 위한 도메인의 암호를 설정한다.

  • connectionPool.<groupName>.fair.provision = Boolean

    • 기본값 : TRUE

    • WebTConnectionPool에서 커넥션을 얻는 정책을 결정한다.

      설정값설명
      TRUE사용하지 않은 커넥션을 가져온다.
      FALSE최근에 사용한 커넥션을 가져온다.
  • connectionPool.<groupName>.initCapacity = int

    • 기본값 : 5

    • WebTConnectionPool의 기본 커넥션의 개수를 지정한다.

  • connectionPool.<groupName>.maxCapacity = int

    • 기본값 : 3

    • 커넥션이 부족해서 새로 커넥션을 생성할 때 새로 생성되는 커넥션의 개수를 설정한다.

  • connectionPool.<groupName>.maxIdleTime = int

    • 기본값 : 600 (단위: Millisecond)

    • 커넥션을 제거할 기준 시간을 설정한다.

      WebTConnectionPool의 커넥션 수가 connectionPool.<groupName>.initCapacity에 설정된 개수보다 클 경우 connectionPool.<groupName>.maxIdleTime에 설정된 시간 동안 사용되지 않은 커넥션을 WebTConnectionPool에서 제거한다.

  • connectionPool.<groupName>.tpTimeout = int

    • 기본값 : 60

    • Tmax 서비스 호출의 타임아웃 시간을 지정한다.NONXA 에서만 적용 되며 트랜잭션 시작 후 서비스를 호출할 때에는 tpTImeout 대신 txBlockTimeout 을 타임아웃 시간으로 적용한다.

  • connectionPool.<groupName>.txTimeout = int

    • 기본값 : 180

    • Tmax 트랜잭션 서비스 요청의 타임아웃 시간을 지정한다.

  • connectionPool.<groupName>.txBlockTimeout = int

    • 기본값 : 60

    • Tmax 서버에 Commit 또는 Rollback을 요청할 때 타임아웃 시간을 지정한다. 트랜잭션이 시작 된 경우 서비스 호출시의 타임아웃값으로 사용한다.

  • connectionPool.<groupName>.header.type = default | extendedV4

    • 기본값 : 대응되는 타입

    • Tmax와 통신할 때의 프로토콜 타입을 결정한다. groupName으로 설정된 커넥션 그룹에서 생성하는 커넥션에 적용되는 프로토콜 타입이다.

      설정값설명
      defaultTmax 3.x에서 사용하는 프로토콜이다.
      extendedV4Tmax 4.x에서 사용하는 프로토콜이다. Tmax 4.x는 하위 프로토콜을 지원하므로 default로 설정해도 호환된다.
  • connectionPool.<groupName>.eventSvcType = all | broadcast | sendtocli | notify | acall

    • 기본값 : NULL

    • 사용할 이벤트를 설정한다. 2 종류 이상의 value를 동시에 설정할 때는 콤마(,)로 구분한다.

      (예: broadcast,notify)

      설정값설명
      all모든 이벤트를 사용한다.
      broadcastbroadcast 타입 이벤트를 사용한다.
      sendtoclisendtocli 타입 이벤트를 사용한다.
      notifynotify 타입 이벤트를 사용한다.
      acallacall 타입 이벤트를 사용한다.
      none이벤트를 사용하지 않는다.
  • connectionPool.<groupName>.eventHandler = String

    • 기본값 : NULL

    • 이벤트를 수신할 때 호출되는 인터페이스를 구현한 객체의 이름을 설정한다.

  • connectionPool.<groupName>.type = shared | clustered

    • 기본값 : shared

    • WebTConnectionPool의 타입을 지정한다.

      설정값설명
      shared일반적인 경우이다.
      clusteredWebTDataSource의 클러스터링을 사용할 경우이다. tmax-delegation-source와 connection-timeout을 <property>로 갖는다.
  • tmax.webt.xid.log = boolean

    • 기본값 : false

    • WebT 트랜잭션을 처리할 때 WebT의 로그 레벨이 info인 경우에도 xa_start, xa_prepare, xa_commit, xa_rollback이 로그로 출력된다.

  • webt.mbean = boolean

    • 기본값 : false

    • WebT Admin을 위한 MBean을 등록할지 여부를 지정한다. Webt Admin 기능은 JEUS v6.0 fix#7 이상에서 지원한다.

다음은 webt.properties의 설정 예제이다.

#######################################
# logging related parameters.
#######################################
# set log level valid values are none, info, debug. default is none.
log.level=debug

# set directory in which the log file places. if not set, log is

# printed to standard out
log.dir=D:\\

# set the name of the log file. default is webt.log
log.file=webt.log

# set log buffering size. default is 0
log.bufsize=1024

# tmax.webt.xid.log=true 


#######################################
# FDL related parameters
#######################################
# set the fdl file.
fdl.file=c:\\tmax\\sample\\fdl\\tmax.fdl


# set application wide default character set. default is system default
defaultCharset=euc-kr


#######################################
# monioring related parameters
#######################################
# enable/disable alive check. default is disable(false)
monitoring.pool.checkAlive=true

# set monitoring interval. default is 60sec
monitoring.pool.interval=5

# set monitoring log file valid-days.default is -1
log.valid.days=1


#######################################
# connection pool realted paramters
#######################################
# Tmax 3.11.x extended Header size
headerType=default|extendedV4

# enable/disable connection pool. default is disable(false)
enableConnectionPool=true

# WebtConnectionGroup name list
connectionPool.groups=tmax1

# set connection group type valid values are shared, non-shared,

# non-shared2. default is shared
connectionPool.tmax1.type=shared

# set Tmax Server Address.
connectionPool.tmax1.hostAddr=192.168.1.123

# set Tmax Server Port.
connectionPool.tmax1.hostPort=8888

#######################################
# Unix Domain Socket (AF_UNIX) 
#######################################
# set Tmax Server Address.
#connectionPool.tmax1.hostAddr=path/cllrcad
# set Tmax Server Port.
#connectionPool.tmax1.hostPort=-1

# set Backup Tmax Server Address.
connectionPool.tmax1.hostBackupAddr=61.77.153.1

# set Backup Tmax Server Port.
connectionPool.tmax1.hostBackupPort=8889

# set default user name for security.
connectionPool.tmax1.userName=tmax

# set default user passward for security.
connectionPool.tmax1.userPasswd=1234

# set default domain name for security.
connectionPool.tmax1.domainName=TPQA

# set default domain passward for security.
connectionPool.tmax1.domainPasswd=1234

# set initial pool size. default is 10
connectionPool.tmax1.initCapacity=1

# set max pool size. default is 20
connectionPool.tmax1.maxCapacity=10

# set increment step size. default is 5
connectionPool.tmax1.incrementRate=2

# set connection idle time. default is 60sec
connectionPool.tmax1.maxIdleTime=60

# set tptimeout.
connectionPool.tmax1.tpTimeout=40

# set txtimeout.
connectionPool.tmax1.txTimeout=10

# set connection timeout.
connectionPool.tmax1.connectTimeout=10

# enable to event service.

#connectionPool.tmax1.enableEvent=true

# set event service Type.

#connectionPool.tmax1.eventSvcType=all

# set event handler object.

#connectionPool.tmax1.eventHandler=tcpservet.event.GenericEvent
jeus.servlet.webt.autoClose.enable=true
webt.mbean=true

2.2. WebT 환경설정(JEUS7)

JEUS에서 WebT를 기동하기 위해서는 domain.xml이나 webt.properties 파일 중에 하나를 설정한다.

2.2.1. domain.xml 설정

JEUS에서 WebT를 기동하기 위해 domain.xml 에 <external-source>로 WebTConnectionPool의 환경 정보를 등록한다. WebTConnectionPool을 설정하려면 domain.xml 파일의 <server> 절의 <external-resource> 태그 안에 다음과 같이 정의한다.

<server>
    ....
    <external-resource>
       <property>
            <key>header-type</key>
            <value>extendedV4</value>
       </property>
        <property>
                <key>mbean</key>
                <value>true</value>
        </property>
       <property>
            <key>log-file-name</key>
            <value>/home/tmax1/jeus_sample/webt.log</value>
       </property>
       <property>
            <key>log-level</key>
            <value>dev</value>
       </property>
       <property>
            <key>log-valid-day</key>
            <value>1</value>
       </property>
       <property>
            <key>monitor-interval</key>
            <value>120000</value>
       </property>
       <property>
            <key>check-alive</key>
            <value>true</value>
       </property>
       <name>webtds</name>
       <property>
               <key>webtds.host-name</key>
               <value>192.168.1.165</value>
       </property>
       <property>
               <key>webtds.host-port</key>
               <value>8888</value>
       </property>
       <property>
               <key>webtds.min</key>
               <value>5</value>
       </property>
       <property>
               <key>webtds.max</key>
               <value>10</value>
       </property>
        <property>
              <key>webtds.step</key>
              <value>2</value>
        </property>
        <property>
               <key>webtds.check-acquired</key>
               <value>true</value>
        </property>
         <property>
               <key>webtds.type</key>
               <value>shared</value>
          </property>
       <class-name>tmax.webt.external.WebtResource</class-name>
    </external-resource>
    ...
</server>

참고

domain.xml를 설정할 때 사용하는 <external-resource> 하위 태그의 설정값은 JEUS6의 속성을 참고한다.

WebAdmin에서 External Resource 설정

JEUS7에서 WebT를 기동하기 위해 WebAdmin 화면에서 직접 External Resouce의 WebTConnectionPool의 환경 정보를 등록 할수 있다. WebTConnectionPool을 설정하려면 WebAdmin의 External Resouce 에서 다음과 같이 정의한다.

[Servers] 메뉴를 선택하면 External Resource 설정 화면으로 이동한다. 해당 화면에서 [Resource] 탭의 [External Resource ]를 선택한다.

[그림 2.1] JEUS WebAdmin 화면

JEUS WebAdmin 화면

다음은 각 항목에 대한 설명과 입력값에 대한 설명이다.

항목설명
NameName을 설정한다. (예: webtds)
Class NameClass Name을 설정한다. (예: tmax.webt.external.WebtResource)
Propertey

Propertey를 설정한다.

(예:

header-type=extendedV4

mbean=true

log-file-name=/home/tmax1/jeus_sample/webt.log

log-level=dev

log-valid-day=1

monitor-interval=120000

check-alive=true

webtds.host-name=192.168.1.165

webtds.host-port=8888

webtds.min=5

webtds.max=10

webtds.step=2

webtds.check-acquired=true

webtds.type=shared)

참고

<external-resource> 하위 태그의 설정값은 JEUS6의 속성을 참고한다.

2.2.2. webt.properties 설정

JEUS에서 WebT를 기동하기 위해 필요한 환경설정은 WebT의 환경설정 파일인 webt.properties를 설정하는 것으로도 가능하다. webt.properties 파일을 사용해 WebT에서 제공하는 라이브러리로 구현된 클라이언트 프로그램을 구동할 때 환경설정을 초기화한다. 또한 애플리케이션 프로그램을 초기화할 때 WebTSystem API를 사용하는 대신 webt.properties 파일에서 설정할 수 있다.

JEUS 7.0 이상 domain.xml에 다음과 같이 설정한다.

   <servers>
      <server>
         <jvm-config>
         <jvm-option>-Xmx1024m -XX:MaxPermSize=128m -Dwebt.properties=/home/tmax1/
webt/properties/common.properties</jvm-option> 
         </jvm-config>
         ..............
      </server>
   </servers>

참고

webt.properties 파일의 설정 항목에 대한 자세한 설명은 “2.1.2. webt.properties 설정”의 설명을 참고한다.

2.3. JTmax의 환경설정(JEUS6)

본 절에서는 JEUS에서 JTmax를 기동하기 위해 JEUSMain.xml을 설정하는 방법을 설명한다.

2.3.1. JEUSMain.xml 설정

다음은 JEUSMain.xml를 설정하는 예제이다. JTmax을 사용하기 위해서는 <external-resource> 태그 내부에 <class-name>tmax.webt.external.JTmaxResource</class-name>을 반드시 정의해야 한다. 단, 다음 예제는 EJB 애플리케이션의 classloading mode가 SHARED인 경우에만 사용 가능하다.

<node>
    <name>nodename</name>
    <engine-container>
        <name>container1</name>
        ....
        <external-resource>
            <name>jtmax</name>
            <class-name>tmax.jtmax.external.JTmaxResource</class-name>
            <property>
                <key>log-file-name</key>
                <value>c:\\jtmax.log</value>
            </property>
            <property>
                <key>log-level</key>
                <value>debug</value>
            </property>
            <property>
                <key>log-valid-day</key>
                <value>1</value>
            </property>
            <property>
                <key>fdl-file</key>
                <value>c:\\tmax\\sample\\fdl\\tmax.fdl</value>
            </property>
            <property-group>
                <name-prefix>jtmax1</name-prefix>
                <property>
                    <key>listen-port</key>
                    <value>6735</value>
                </property>
                <property>
                    <key>min</key>
                    <value>2</value>
                </property>
                <property>
                    <key>max</key>
                    <value>4</value>
                </property>
                <property>
                    <key>step</key>
                    <value>2</value>
                </property>
                <property>
                    <key>period</key>
                    <value>600000</value>
                </property>
                <property>
                    <key>mbean</key>
                    <value>true</value>
                </property>
                <property-group>
                    <name-prefix>ejb-service</name-prefix>
                    <property>
                        <key>name</key>
                        <value>ejb01</value>
                    </property>
                    <property-group>
                        <name-prefix>GSVC01</name-prefix>
                        <property>
                            <key>export-name</key>
                            <value>echotest</value>
                        </property>
                        <property>
                            <key>method-name</key>
                            <value>setStringEcho</value>
                        </property>
                        <property>
                            <key>method-signature</key>
                            <value>string</value>
                        </property>
                    </property-group>
                    <property-group>
                        <name-prefix>GSVC02</name-prefix>
                        <property>
                            <key>export-name</key>
                            <value>echotest</value>
                        </property>
                        <property>
                            <key>method-name</key>
                            <value>setIntEcho</value>
                        </property>
                        <property>
                            <key>method-signature</key>
                            <value>int</value>
                        </property>
                    </property-group>
                </property-group>
            </property-group>
        </external-resource>
        ....
    </engine-container>
</node>

다음은 JTmax 사용을 위해 JEUSMain.xml에 설정하는 태그에 대한 설명이다. <key> 태그에는 속성 이름을 <value> 태그에는 적용 가능한 값을 설정한다.

<key>구분<value>
listen-port설정값int
기본값0
설명커넥션을 설정할 포트를 지정한다.
min설정값int
기본값2
설명요청을 처리할 기본 핸들러의 개수를 지정한다.
max설정값int
기본값4
설명요청을 처리할 최대 핸들러의 개수를 설정한다.
step설정값int
기본값2
설명요청에 대한 핸들러가 부족할 때 추가적으로 생성하는 핸들러의 수를 설정한다.
period설정값int
기본값600000 (단위: Millisecond)
설명핸들러를 제거하는 기준시간을 지정한다. 핸들러의 수가 min에 설정한 개수보다 클 때 핸들러를 사용하지 않은 시간이 period에 지정된 시간을 초과할 경우 핸들러를 제거한다.
log-file-name설정값String
기본값NULL
설명로그 파일의 상대 경로 또는 절대 경로를 지정한다.
log-level설정값none | info | debug
기본값info
설명로그 레벨을 지정한다.
log-file-format설정값string(형식)
기본값MMddyyyy
설명log-valid-day가 1 이상일 경우 생성되는 로그 파일명의 형식을 지정한다.
log-buffer-size설정값int
기본값512
설명로그를 남길 때 사용되는 버퍼의 크기를 지정한다.
log-valid-day설정값int
기본값-1
설명로그 파일을 사용하는 경우 며칠 주기로 파일명을 갱신할 것인지를 지정한다. 0이나 음수값을 지정하는 경우 하나의 파일을 사용한다.
fdl-file설정값string
기본값NULL
설명Tmax FDL 버퍼를 사용하기 위한 필드 테이블의 위치를 지정한다.
default-charset설정값string
기본값NULL
설명Tmax 버퍼의 내용에 적용되는 Character Set을 지정한다.
mbean설정값true | false
기본값false
설명JTmax Admin을 위한 MBean을 등록할지 여부를 지정한다. JTmax Admin 기능은 JEUS v6.0 Fix#7 이상에서 지원한다.

2.3.2. EJB 설정

EJB를 사용하려면 JEUSMain.xml에서 EJB 서비스 정보를 등록해야 한다. Tmax 클라이언트에서 사용할 서비스명과 JEUS EJB 서비스의 메소드명을 대응시켜서 설정한다. Tmax 클라이언트의 서비스명과 JEUS EJB 서비스의 메소드명이 대응되는 부분은 다음과 같다.

<property-group>
     <name-prefix>ejb-service</name-prefix>
     <property>
         <key>name</key>
          <value>ejb01</value>
      </property>
      <property-group>
           <name-prefix>GSVC02</name-prefix>
           <property>
               <key>export-name</key>
                <value>echotest</value>
            </property>
            <property>
                <key>method-name</key>
                <value>setIntEcho</value>
            </property>
            <property>
                <key>method-signature</key>
                <value>int</value>
            </property>
        </property-group>
</property-group>

위에서 <name-prefix> 태그에 설정된 GSVC02는 Tmax에서 호출되는 EJB 서비스명이고 실질적인 EJB 서비스는 IntEcho이다.

<property-group>/<property> 속성의 <key> 태그에 해당하는 각각의 의미는 다음과 같다.

<key> 속성구분<value> 설명
export-name설정값string
기본값NULL
설명EJB명을 의미한다.
method-signature설정값char | long | int | double | float | string | bytes
기본값NULL
설명서비스가 변수로 받는 인자의 형식을 지정한다. 2종류 이상의 값을 동시에 설정할 때는 콤마(,)로 구분한다. ( 예: int,float )
max설정값int
기본값4
설명요청을 처리할 최대 핸들러의 개수를 설정한다.

EJB 서비스의 환경설정

EJB 서비스를 호출하기 위한 Tmax 환경설정 파일에 SERVICE 절과 GATEWAY 절을 설정해야 한다.

  • SERVICE 절

    다음은 SERVICE 절을 설정하는 문법과 항목에 대한 설명이다.

    *SERVICE
    ServiceName   SVRNAME = ServerName
    항목설명
    ServiceNameTmax 클라이언트에서 호출할 서비스명으로, WebT 서버를 사용할 경우 JEUS에서 제공하는 EJB 서비스에 대한 Alias이다. 실제로 수행할 JEUS의 EJB 서비스의 내용은 JEUS 서비스 파일에 설정한다.
    SVRNAME해당 서비스를 제공하는 서버 프로그램명으로 WebT 서버를 사용하는 경우 GATEWAY 절에 설정하게 되는 JAVAGW의 이름(GatewayName)을 지정한다.
  • GATEWAY 절

    다음은 GATEWAY 절을 설정하는 문법과 항목에 대한 설명이다.

    *GATEWAY 
    GatewayName   GWTYPE = GWType,
                  PORTNO = PortNumber,
                  RGWADDR = RemoteIPAddress,
                  RGWPORTNO = RemotePortNumber,
                  NODENAME = NodeName

    항목설명
    GatewayNameTmax 서버 프로그램이나 다른 게이트웨이들과 구분하기 위해 사용하는 해당 게이트웨이의 고유 명칭이다.
    GWTYPETmax에서 사용하는 게이트웨이의 종류를 지정한다. JAVAGW를 사용하기 위해서는 'JEUS'로 설정한다.
    PORTNOTmax와 JAVAGW 게이트웨이가 통신하기 위해 사용하는 포트 번호이다.
    RGWADDR게이트웨이가 접속할 상대방의 IP 주소이다. JAVAGW가 접속할 JEUS 서버의 IP 주소를 설정한다.
    RGWPORTNO게이트웨이가 접속할 상대방의 포트 번호이다. JEUS의 JTmax 환경설정 파일에 설정된 커넥션 포트 번호를 설정한다.
    NODENAME해당 로컬 노드의 이름이다.

다음은 EJB 서비스를 호출하기 위한 설정의 예제이다.

*SERVICE
GSVC01 SVRNAME = JAVAGW
GSVC02 SVRNAME = JAVAGW

*GATEWAY
JAVAGW GWTYPE = JEUS,
PORTNO = 6734,
RGWADDR = "127.0.0.1",
RGWPORTNO = 6735,
NODENAME = node_name

위와 같이 작성된 환경설정 파일을 sample.m이라고 했을 때 환경설정 파일을 작성한 후 JEUS를 기동한 상태로 Tmax 서버에서 다음과 같은 명령으로 Tmax를 기동하면 JTmax로의 연결이 이루어진다.

cfl -i sample.m

참고

서버를 사용하기 위한 Tmax 환경설정 파일의 설정은 게이트웨이를 사용하기 위한 설정과 동일하다. 자세한 설정 방법은 "Tmax Administration Guide"를 참고한다.

2.4. JTmax의 환경설정(JEUS7)

본 절에서는 JEUS 에서 JTmax 를 기동하기 위해 domain.xml을 설정하는 방법을 설명한다.

2.4.1. domain.xml 설정

다음은 domain.xml를 설정하는 예제이다. JTmax을 사용하기 위해서는 <external-resource> 태그 내부에 <class-name>tmax.webt.external.JTmaxResource</class-name>을 반드시 정의해야 한다. 단, 다음 예제는 EJB 애플리케이션의 classloading mode가 SHARED인 경우에만 사용 가능하다.

   <servers>
      <server>
      .....
         <external-resource>
            <name>jtmax</name>
            <class-name>tmax.jtmax.external.JTmaxResource</class-name>
            <property>
                <key>mbean</key>
                <value>true</value>
            </property>
            <property>
               <key>header-type</key>
               <value>extendedV4</value>
            </property>
            <property>
               <key>log-file-name</key>
               <value>/home/tmax1/jeus_sample/jtmax.log</value>
            </property>
            <property>
               <key>log-level</key>
               <value>debug</value>
            </property>
            <property>
               <key>log-valid-day</key>
               <value>1</value>
            </property>
            <property>
               <key>fdl-file</key>
               <value>/home/tmax1/jeus_sample/jtmax.fdl</value>
            </property>
           <!- TPQA 는 ejb service name 에서 사용한다. -->
            <property>
               <key>TPQA.listen-port</key>
               <value>8181</value>
            </property>
            <property>
               <key>min</key>
               <value>2</value>
            </property>
            <property>
               <key>max</key>
               <value>2</value>
            </property>
            <property>
               <key>step</key>
               <value>2</value>
            </property>
            <property>
               <key>period</key>
               <value>600000</value>
            </property>
            <property>
               <key>TPQA.ejb-service.name</key>
               <value>ECHOSTRING_J</value>
            </property>
            <property>
               <key>TPQA.ejb-service.ECHOSTRING_J.export-name</key>
               <value>echo</value>
            </property>
            <property>
               <key>TPQA.ejb-service.ECHOSTRING_J.method-name</key>
               <value>echoString</value>
            </property>
            <property>
               <key>TPQA.ejb-service.ECHOSTRING_J.method-signature</key>
               <value>string</value>
            </property>
            <property>
               <key>TPQA.ejb-service.name</key>
               <value>FDLSTRING</value>
            </property>
            <property>
               <key>TPQA.ejb-service.name</key>
               <value>FDLSTRING</value>
            </property>
            <property>
               <key>TPQA.ejb-service.FDLSTRING.export-name</key>
               <value>echo</value>
            </property>
            <property>
               <key>TPQA.ejb-service.FDLSTRING.method-name</key>
               <value>fdlEchoString</value>
            </property>
            <property>
               <key>TPQA.ejb-service.FDLSTRING.method-signature</key>
               <value>webt</value>
            </property>
         </external-resource>
      </server>
   </servers>

다음은 JTmax 사용을 위해 domain.xml에 설정하는 태그에 대한 설명이다. <key> 태그에는 속성 이름을 <value> 태그에는 적용 가능한 값을 설정한다.

<key>구분<value>
listen-port설정값int
기본값0
설명커넥션을 설정할 포트를 지정한다.
min설정값int
기본값2
설명요청을 처리할 기본 핸들러의 개수를 지정한다.
max설정값int
기본값4
설명요청을 처리할 최대 핸들러의 개수를 설정한다.
step설정값int
기본값2
설명요청에 대한 핸들러가 부족할 때 추가적으로 생성하는 핸들러의 수를 설정한다.
period설정값int
기본값600000 (단위: Millisecond)
설명핸들러를 제거하는 기준시간을 지정한다. 핸들러의 수가 min에 설정한 개수보다 클 때 핸들러를 사용하지 않은 시간이 period에 지정된 시간을 초과할 경우 핸들러를 제거한다.
log-file-name설정값String
기본값NULL
설명로그 파일의 상대 경로 또는 절대 경로를 지정한다.
log-level설정값none | info | debug
기본값info
설명로그 레벨을 지정한다.
log-file-format설정값string(형식)
기본값MMddyyyy
설명log-valid-day가 1 이상일 경우 생성되는 로그 파일명의 형식을 지정한다.
log-buffer-size설정값int
기본값512
설명로그를 남길 때 사용되는 버퍼의 크기를 지정한다.
log-valid-day설정값int
기본값-1
설명로그 파일을 사용하는 경우 며칠 주기로 파일명을 갱신할 것인지를 지정한다. 0이나 음수값을 지정하는 경우 하나의 파일을 사용한다.
fdl-file설정값string
기본값NULL
설명Tmax FDL 버퍼를 사용하기 위한 필드 테이블의 위치를 지정한다.
default-charset설정값string
기본값NULL
설명Tmax 버퍼의 내용에 적용되는 Character Set을 지정한다.
mbean설정값true | false
기본값false
설명JTmax Admin을 위한 MBean을 등록할지 여부를 지정한다. JTmax Admin 기능은 JEUS v6.0 Fix#7 이상에서 지원한다.

WebAdmin에서 설정

다음은 jeus WebAdmin 에서 External Resource Perperty 설정하는 예제이다.

[그림 2.2] JTMAX Propertey 설정 정보 화면

JTMAX Propertey 설정 정보 화면

다음은 각 항목에 대한 설명과 입력값에 대한 설명이다.

항목설명
Propertey

Propertey를 설정한다.

(예:

mbean=true

header-type=extendedV4

log-file-name=/home/tmax1/jeus_sample/jtmax.log

log-level=debug

log-valid-day=1

fdl-file=/home/tmax1/jeus_sample/jtmax.fdl

min=2

max=2

step=2

period=600000

TPQA.listen-port=8181

TPQA.ejb-service.name=ECHOSTRING_J

TPQA.ejb-service.ECHOSTRING_J.export-name=echo

TPQA.ejb-service.ECHOSTRING_J.method-name=echoString

TPQA.ejb-service.ECHOSTRING_J.method-signature=string

TPQA.ejb-service.name=FDLSTRING

TPQA.ejb-service.FDLSTRING.export-name=echo

TPQA.ejb-service.FDLSTRING.method-name=fdlEchoString

TPQA.ejb-service.FDLSTRING.method-signature=webt)

2.4.2. EJB 설정

EJB를 사용하려면 domain.xml에서 EJB 서비스 정보를 등록해야 한다. Tmax 클라이언트에서 사용할 서비스명과 JEUS EJB 서비스의 메소드명을 대응시켜서 설정한다. Tmax 클라이언트의 서비스명과 JEUS EJB 서비스의 메소드명이 대응되는 부분은 다음과 같다.

            <property>
               <key>TPQA.ejb-service.name</key>
               <value>ECHOSTRING_J</value>
            </property>
            <property>
               <key>TPQA.ejb-service.ECHOSTRING_J.export-name</key>
               <value>echo</value>
            </property>
            <property>
               <key>TQPA.ejb-service.ECHOSTRING_J.method-name</key>
               <value>echoString</value>
            </property>
            <property>
               <key>TPQA.ejb-service.ECHOSTRING_J.method-signature</key>
               <value>string</value>
            </property>

            <property>
               <key>TPQA.ejb-service.name</key>
               <value>FDLSTRING</value>
            </property>
            <property>
               <key>TPQA.ejb-service.FDLSTRING.export-name</key>
               <value>echo</value>
            </property>
            <property>
               <key>TPQA.ejb-service.FDLSTRING.method-name</key>
               <value>fdlEchoString</value>
            </property>
            <property>
               <key>TPQA.ejb-service.FDLSTRING.method-signature</key>
               <value>webt</value>
            </property>

위에서 TPQA.ejb-service.name 설정된 ECHOSTRING_J 는 Tmax에서 호출되는 EJB 서비스명이고 실질적인 EJB 서비스는 echoString 이다.

jeus WebAdmin 에서 External Resource Perperty 에서 ejb 서비스를 직접 방법은 domain.xml 설정을 참고 한다.

<property> 속성의 <key> 태그에 해당하는 각각의 의미는 다음과 같다.

<key> 속성구분<value> 설명
export-name설정값string
기본값NULL
설명EJB명을 의미한다.
method-signature설정값char | long | int | double | float | string | bytes | webt
기본값NULL
설명서비스가 변수로 받는 인자의 형식을 지정한다. 2종류 이상의 값을 동시에 설정할 때는 콤마(,)로 구분한다. (예: int,float)
method-name설정값string
기본값NULL
설명호출 하려는 EJB 서비스 이름이다.

EJB 서비스의 환경설정

EJB 서비스를 호출하기 위한 Tmax 환경설정 파일에 SERVICE 절과 GATEWAY 절을 설정해야 한다.

  • SERVICE 절

    다음은 SERVICE 절을 설정하는 문법과 항목에 대한 설명이다.

    *SERVICE
    ServiceName   SVRNAME = ServerName
    항목설명
    ServiceNameTmax 클라이언트에서 호출할 서비스명으로, WebT 서버를 사용할 경우 JEUS에서 제공하는 EJB 서비스에 대한 Alias이다. 실제로 수행할 JEUS의 EJB 서비스의 내용은 JEUS 서비스 파일에 설정한다.
    SVRNAME해당 서비스를 제공하는 서버 프로그램명으로 WebT 서버를 사용하는 경우 GATEWAY 절에 설정하게 되는 JAVAGW의 이름(GatewayName)을 지정한다.
  • GATEWAY 절

    다음은 GATEWAY 절을 설정하는 문법과 항목에 대한 설명이다.

    *GATEWAY 
    GatewayName   GWTYPE = GWType,
                  PORTNO = PortNumber,
                  RGWADDR = RemoteIPAddress,
                  RGWPORTNO = RemotePortNumber,
                  NODENAME = NodeName

    항목설명
    GatewayNameTmax 서버 프로그램이나 다른 게이트웨이들과 구분하기 위해 사용하는 해당 게이트웨이의 고유 명칭이다.
    GWTYPETmax에서 사용하는 게이트웨이의 종류를 지정한다. JAVAGW를 사용하기 위해서는 'JEUS'로 설정한다.
    PORTNOTmax와 JAVAGW 게이트웨이가 통신하기 위해 사용하는 포트 번호이다.
    RGWADDR게이트웨이가 접속할 상대방의 IP 주소이다. JAVAGW가 접속할 JEUS 서버의 IP 주소를 설정한다.
    RGWPORTNO게이트웨이가 접속할 상대방의 포트 번호이다. JEUS의 JTmax 환경설정 파일에 설정된 커넥션 포트 번호를 설정한다.
    NODENAME해당 로컬 노드의 이름이다.

다음은 EJB 서비스를 호출하기 위한 설정의 예제이다.

*SERVICE
ECHOSTRING_J SVRNAME = JAVAGW
FDLSTRING    SVRNAME = JAVAGW

*GATEWAY
JAVAGW GWTYPE = JEUS,
PORTNO = 6734,
RGWADDR = "127.0.0.1",
RGWPORTNO = 6735,
NODENAME = node_name

위와 같이 작성된 환경설정 파일을 sample.m이라고 했을 때 환경설정 파일을 작성한 후 JEUS를 기동한 상태로 Tmax 서버에서 다음과 같은 명령으로 Tmax를 기동하면 JTmax로의 연결이 이루어진다.

cfl -i sample.m

참고

서버를 사용하기 위한 Tmax 환경설정 파일의 설정은 게이트웨이를 사용하기 위한 설정과 동일하다. 자세한 설정 방법은 "Tmax Administration Guide"를 참고한다.

2.5. 그 외의 환경설정

Rolling Down 기능

WebT 클라이언트에서 JEUSMain.xml과 클라이언트를 실행할 때 다음의 WebT 애플리케이션을 설정하면 Rolling Down 기능을 사용할 수 있다.

  • JEUSMain.xml

    • <command-option>-Dtmax.webt.xid.log=true | false</command-option>

      WebT 트랜잭션을 처리할 때 WebT의 로그 레벨이 info인 경우에도 xa_start, xa_prepare, xa_commit, xa_rollback이 로그로 출력된다. (기본값 : false)

    다음은 JEUSMain.xml에 Rolling Down 기능을 설정하는 예이다.

    <command-option>
      -DUSE_ROLLING_DOWN=true 
    </command-option>
  • WebT 애플리케이션

    System.setProperty("USE_ROLLING_DOWN", "true")

Unix Domain Socket 기능

Unix(Sun, Aix, Linux, HP-UX)에서는 IPC를 위해서 TCP Socket 이외에 Unix Domain Socket을 제공한다. Tmax를 사용하는 클라이언트가 같은 머신(노드)에 있다면 일반 TCP Socket보다 Unix Domain Socket을 사용하는 것이 더 유리하므로 WebT 또한 같은 환경에서 Unix Domain Socket을 사용할 수 있도록 기능을 제공한다.

  • 지원하는 OS 및 JDK 버전

    • JDK 1.6 이상

    • linux x86_64 32/64bit, aix6.1 32/64bit 이상, sunOS 5.10 sparc 32/64bit 이상, hp11.31 32/64bit 이상 만을 지원 (HP에서는 JDK에 따라서 libweb.sl 파일을 읽지 못하고 libwebt.so파일만 로드할 수 있는 경우가 있기 때문에 배포되는 파일의 이름을 libwebt.sl 을 libwebt.so로 변경하여 사용해야 한다.)

설정을 통한 생성은 port를 "-1", 주소를 "path/cllrcad"로 지정해서 Tmax에 접속할 때 Unix Domain Socket을 사용한다. WebtConnection API를 사용할 때에도 마찬가지 방법으로 port와 IP 주소 부분을 지정하고 연결를 하면 해당 기능이 동작한다.

[그림 2.3] Unix Domain Socket 설정 정보 화면

Unix Domain Socket 설정 정보 화면

Unix Domain Socket 기능을 사용하기 위해서는 설정 이외에 우선적으로 다음과 같은 작업을 수행 후 WebT를 사용하여 작성된 에플리케이션을 기동해야 한다.

  • TMAXDIR 환경변수 지정

    Webt를 실행하는 셸에서 실제 동작 중인 TMAXDIR 환경변수를 지정한다.

    export TMAXDIR=/home/tmax
  • native library를 LD_LIBRARY_PATH에 위치한다.

    함께 배포되는 libwebt.so(.sl)에 대해서 Webt를 실행하는 셸에서 LD_LIBRARY_PATH에 라이브러리 위치를 지정한다.

    export LD_LIBRARY_PATH=/home/webt/lib:$LD_LIBRARY_PATH

참고

Unix Domain Socket 기능을 사용하는 경우 RollingDown 기능을 함께 사용할 수 없다.