1. 트랜잭션 관련 명령어
트랜잭션 관련 명령어의 목록은 다음과 같다.
명령어 | 설명 |
---|---|
대상 서버의 트랜잭션 매니저 설정을 변경한다. |
|
대상 서버의 리소스 매니저를 복구한다. 복구할 특정 리소스를 선택할 수 있다. |
|
대상 서버의 트랜잭션 매니저 설정을 확인한다. |
|
대상 서버의 트랜잭션을 상태별로 확인한다. |
1.1. modify-transaction-manager
대상 서버의 트랜잭션 매니저 설정을 변경한다.
-
alias
modify-tm, modifytm, tmconfig, tmconf
-
사용법
modify-transaction-manager <server-name> [-at,--activeTimeout <active-timeout>] [-pt,--prepareTimeout <prepare-timeout>] [-pdt,--preparedTimeout <prepared-timeout>] [-ct,--commitTimeout <commit-timeout>] [-rt,--recoveryTimeout <recovery-timeout>] [-it,--incompleteTimeout <incomplete-timeout>] [-d,--txLogDir <transaction-log-directory>] [-a,--automaticRecovery <automatic-recovery-enable/disable>] [-f,--forceLock] [-detail]
-
파라미터
파라미터 설명 <server-name>
트랜잭션 설정을 변경할 서버의 이름이다.
[-at,--activeTimeout <active-timeout>]
트랜잭션을 시작하고 commit까지의 최대 시간이다. 시간을 초과한 트랜잭션은 강제로 rollback된다.
[-pt,--prepareTimeout <prepare-timeout>]
루트 코디네이터가 prepare를 보내고 하위 코디네이터로부터 그 응답을 기다리는 최대 시간이다.
[-pdt,--preparedTimeout <prepared- timeout>]
하위 코디네이터가 prepare 응답을 보내고 루트 코디네이터의 Global decision을 기다리는 최대 시간이다. 시간을 초과한 경우 루트에 prepare 응답을 다시 보낸다.
[-ct,--commitTimeout <commit- timeout>]
루트 코디네이터가 하위 코디네이터로 commit을 보내고 그 응답을 기다리는 최대 시간이다. 시간을 초과한 경우 incomplete 트랜잭션으로 취급한다.
[-rt,--recoveryTimeout <recovery- timeout>]
recovery 정보를 뽑아내는 데 기다리는 최대 시간이다. 시간을 초과하는 경우 사용자에게 recovery를 맡긴다.
[-it,--incompleteTimeout <incomplete- timeout>]
Incomplete 트랜잭션이 recover되기까지 기다리는 최대 시간이다. 시간을 초과할 경우 Incomplete 트랜잭션이라는 정보를 삭제한다.
[-d,--txLogDir <transaction-log- directory>]
recovery를 위한 트랜잭션 로그를 남기는 디렉터리이다. 자세한 설명은 JEUS Server 안내서의 복구 관련 로그 파일을 참고한다.
[-a,--automaticRecovery <automatic- recovery-enable/disable>]
[동적 변경] 서버에 이상이 있을 때 다른 서버가 해당 서버의 Incomplete 트랜잭션을 recovery할지 여부를 설정한다. 자세한 설명은 JEUS Server 안내서의 트랜잭션 복구를 참고한다.
[-f,--forceLock]
설정 변경을 강제로 진행하여 반영한다.
[-detail]
결과를 자세하게 조회한다.
-
예제
-
현재 설정 확인
[MASTER]domain1.adminServer>modify-transaction-manager server1 Shows the current configuration. transaction of server (server1) ================================================================================ +---------------------+--------------------------------------------------------+ | Active Timeout | 600000 | | Prepare Timeout | 120000 | | Prepared Timeout | 60000 | | Commit Timeout | 240000 | | Recovery Timeout | 120000 | | Incomplete Timeout | 86400000 | | Tx Log Dir | ${SERVER_HOME}/.workspace/tmlog | | Automatic Recovery | false | +---------------------+--------------------------------------------------------+ ================================================================================
-
동적 설정인 트랜잭션 자동 복구 기능 켜기
[MASTER]domain1.adminServer>modify-transaction-manager server1 -automaticRecovery true Successfully performed the MODIFY operation for transaction of server (server1). Check the results using "show-transaction-manager server1 or modify-transaction-manager sever1"
-
서버 재시작으로 반영되는 타임아웃 설정 변경
[MASTER]domain1.adminServer>modify-transaction-manager server1 -activeTimeout 20000 Successfully performed the MODIFY operation for transaction of server (server1), but all changes were non-dynamic. They will be applied after restarting. Check the results using "show-transaction-manager server1 or modify-transaction-manager server1"
-
동적 반영 설정과 서버 재시작으로 반영되는 설정 함께 변경
[MASTER]domain1.adminServer>modify-transaction-manager server1 -automaticRecovery true -activeTimeout 20000 Successfully performed the MODIFY operation for transaction of server (server1), but some changes were non-dynamic. They will be applied after restarting. Check the results using "show-transaction-manager server1 or modify-transaction-manager server1"
-
1.2. recover-transactions
대상 서버의 리소스 매니저를 복구한다. 복구할 리소스를 선택할 수 있다.
-
alias
recovertx, tmresync
-
사용법
recover-transactions -server <server-name> <resource-type> <export-name> [<connector-module-name>]
-
파라미터
파라미터 설명 -server <server-name>
서버의 이름이다.
<resource-type>
복구할 리소스 타입을 지정한다.
-
sql : JDBC XADataSource
-
jms : JMS Connection Factory
-
connector : Connector 리소스 어댑터
<export-name>
리소스의 <export-name>을 지정한다.
[<connector-module-name>]
리소스가 Connector인 경우에는 해당 Connector Module의 이름을 지정한다.
-
-
예제
[MASTER]domain1.adminServer>recover-transactions -server server1 sql jdbc/derby/XADataSource The recover-transactions command was executed on the server1 server.
1.3. show-transaction-manager
대상 서버의 트랜잭션 매니저 설정을 확인한다.
-
alias
show-tm, showtm
-
사용법
show-transaction-manager <server-name>
-
파라미터
파라미터 설명 <server-name>
서버의 이름이다.
-
예제
[MASTER]domain1.adminServer>show-transaction-manager server1 Shows the current configuration. transaction of server (server1) ================================================================================ +---------------------+--------------------------------------------------------+ | Active Timeout | 600000 | | Prepare Timeout | 120000 | | Prepared Timeout | 60000 | | Commit Timeout | 240000 | | Recovery Timeout | 120000 | | Incomplete Timeout | 86400000 | | Tx Log Dir | ${SERVER_HOME}/.workspace/tmlog | | Automatic Recovery | false | +---------------------+--------------------------------------------------------+ ================================================================================
1.4. transaction-info
대상 서버의 트랜잭션을 상태별로 확인한다.
-
alias
transactioninfo, txinfo
-
사용법
transaction-info -server <server-name> [-i,--inflight] [-d,--indoubt] [-r,--retrying]
-
파라미터
파라미터 설명 -server <server-name>
서버의 이름이다.
[-i,--inflight]
진행 중인 트랜잭션을 확인한다. commit 또는 rollback 단계까지 진행되지 않은 메모리 상의 트랜잭션이다.
[-d,--indoubt]
미완료 트랜잭션을 확인한다. 불완전한 상태의 끝나지 않은 것으로 복구가 필요하거나 현재 결정을 받지 못한 트랜잭션이다.
[-r,--retrying]
재시도할 트랜잭션을 확인한다. 리소스 매니저의 문제로 one-phase-commit 또는 two-phase-commit을 제대로 처리하지 못해 JEUS 자체적으로 재시도 중인 트랜잭션이다.
-
예제
[MASTER]domain1.adminServer>transaction-info -server server1 <transactions of server1> In-Flight Transaction Information ================================================================================ +------------------+---------+-------+--------+---------+---------+------------+ | XID | Coordina| Extern| Status | Timeout | Elapse | XAResources| | | tor |al XID | | | | | +------------------+---------+-------+--------+---------+---------+------------+ | 049FE5.00C0A80011| 192.168.| | STATUS | 5000(ms)| 7418(ms)| jdbc/derby/| |2608221CC3D6B40000|0.17:9736| |_MARKED_| | |XADataSource| |000000000011.00 | | |ROLLBACK| | | | +------------------+---------+-------+--------+---------+---------+------------+ ================================================================================ In-doubt Transaction Information ========================================================================== +----+----------------+--------------------+-------+------------+--------+ | XID| Coordinator | External XID | Status| Decision | Sub-XID| +----+----------------+--------------------+-------+------------+--------+ (No data available) ========================================================================== Retrying Transaction Information ============================================================= +----+-----+------------------------------+-------+---------+ | XID| Name| Failuere Count | Status| Decision| +----+-----+------------------------------+-------+---------+ (No data available) =============================================================