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)