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

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

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

  • jeus.tm.net.address-mapping-properties

    설명

    JEUS TM 간에 통신할 때 사용할 IP 주소를 매핑시키는 프로퍼티 파일을 지정한다. 이에 대한 자세한 설명은 JEUS Server 안내서의 IP 대역이 다른 서버 간에 트랜잭션 통신 문제를 참조한다.

    기본값

    프로퍼티 파일의 위치를 지정하지 않으면 이 기능을 사용하지 않는다.

  • jeus.tm.profile.classes

    설명

    TM Profile을 위해 사용되는 ProfileListener 클래스들을 지정한다.

    프로파일 기능에 대한 자세한 설명은 JEUS Server 안내서의 트랜잭션 프로파일 기능을 참조한다.

    기본값

    없음

  • jeus.tm.ignore.xaEmulation-resume-suspend-exception

    설명

    XAEmulation을 쓰는 경우 XAResource가 아니므로 suspend, resume 기능을 쓸 수 없다.

    하지만 간혹 프레임워크 단에서 suspend,resume을 호출하는 경우가 있는데 이때 LocalXAResourceWrapper 인 경우 delist,enlist시도시 Exception을 던지게된다.

    로직에는 영향을 주지 않으니 LocalXAResourceWrapper인경우 bypass 할 수 있도록 한다.

    기본값

    false

1.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.2. 하위 호환성을 위한 시스템 프로퍼티

  • jeus.tm.propagation.recalculated-timeout

    설명

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

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

    기본값

    false