1. 트랜잭션 관련 명령어

트랜잭션 관련 명령어의 목록은 다음과 같다.

명령어 설명

modify-transaction-manager

대상 서버의 트랜잭션 매니저 설정을 변경한다.

recover-transactions

대상 서버의 리소스 매니저를 복구한다. 복구할 특정 리소스를 선택할 수 있다.

show-transaction-manager

대상 서버의 트랜잭션 매니저 설정을 확인한다.

transaction-info

대상 서버의 트랜잭션을 상태별로 확인한다.

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