Tmax 5 SP2 Fix#1
본 장에서는 Tmax 5 SP2 Fix#1에 신규 기능과 추가된 기능 그리고 변경된 기능에 대해 간략히 설명한다. 상세한 설명은 관련 안내서를 참고한다.
1. 추가 기능
본 절에서는 추가된 주요 기능에 대해 설명한다.
1.1. ENGINE
-
tmm에서 file에 login을 다른 스레드로 처리할 수 있는 기능 추가
-
TMMOPT 절에 [-g] / [-m] 옵션 추가
항목 설명 [ -g ]
file write를 위한 별도의 스레드를 생성하여 처리한다. 설정하지 않을 경우에는 기존처럼 메인 스레드에서 처리한다.
[ -m ]
file write가 느릴 경우 보관할 요청들의 갯수를 지정한다. 지정하지 않을 경우 10000개로 고정한다. 약 한 개에 8192byte씩 소비한다.
[-g] 옵션이 함께 있어야 의미기 있는 설정이다.
-
관련 이슈 : IMS 77057
-
-
SLOG에 TPENOENT 에러에 대해서도 출력하는 기능 추가
-
Tmax 5 SP3 이전 버전에서는 운영상의 문제로 TPENOENT 에러가 발생하는 경우 클라이언트에서만 확인할 수 있었다. 만약 SLOG에 해당 에러가 기록이 된다면 클라이언트를 확인할 필요 없이 시스템 운영자가 잘못된 이유를 빨리 파악할 수 있게 된다. 이 버전에서 TPENOENT 에러가 발생하는 경우 SLOG에 남도록 기능을 추가하였다.
-
CLHOPT = " -x 1"
-
설정하지 않았다면 SLOG에 기록하지 않는다.
-
-
관련 이슈 : IMS 47663
-
1.3. 도메인 게이트웨이
-
도메인 게이트웨이를 통한 호출하는 경우 사용자 로깅 기능 추가
-
도메인 게이트웨이의 요청 전후에 메시지 처리에 대해서 로그를 남기는 기능을 추가하였다. clh로부터의 요청/송신, 리모트 게이트웨이로부터의 요청/송신하는 경우 로그를 남긴다.
-
GATEWAY 절의 CLOPT 설정에 [-p <파일경로>]를 통해서 출력할 메시지 종류를 선택할 수 있다.
-
관련 이슈 : IMS 73152
-
1.4. JEUS_ASYNC GATEWAY
-
FailBack 기능 추가
-
UCS type의 서버는 한 프로세스로 한 번에 하나의 채널에 대해서만 처리 가능하다. CLH에서 UCS로 전송하는 채널을 여러 개로 설정해도 소켓에 대기 중인 데이터만 발생하게 만들고, 채널만 낭비시킨다. 환경설정을 통해 UCS type의 경우 INBOUNDCPC를 별도로 설정할 수 있도록 기능을 추가하였다.
-
관련 이슈 : IMS 77228
-
1.5. TCP GATEWAY
-
Tcpgw 세션 연결 종료 출력 로그 on/off 기능 추가
-
CLOPT 항목에 [ -l ] 옵션을 주었을 경우 연결을 끊을 때의 로그인 SVR0030, SVR6102, SVR6103가 남지 않도록 기능이 추가하였다.
-
관련 이슈 : IMS 76422
-
1.6. 유틸리티
-
fdlc 디컴파일 옵션 추가
-
fdl 파일을 텍스트 파일로 환원하는 fdlc 옵션을 추가하였다.
-
예제
$ fdlc -f tmax.fdl -r de_fdl.f FDLC is successfully done. total 149 field(s).
-
관련 이슈 : IMS 75051
-
-
tmd 따옴표 처리 옵션 추가
-
tmd에서 " 가 포함된 string 타입의 데이터를 처리할 수 있는 옵션을 추가하였다.
-
tmd -i 입력 파일 -q 옵션을 주어 실행하면 string 데이터 중의 \" 를 "로 인식하여 처리한다.
-
예제
$ tmd -i aa -q output: ABC "DEF" $ cat aa *tpcall TOUPPER STRING abc \"def\"
-
관련 이슈 : IMS 76132
-
-
tmboot에 -i 옵션 추가
-
tmboot -g로 실행하는 경우 서버를 부팅시키는 중 max에 도달한 서버가 있을 때 전체 과정을 중지한다. "tmboot -g -i"를 함께 사용하는 경우 max에 도달한 서버가 있더라도 전체 과정이 중지되지 않고 다음 서버들을 기동할 수 있도록 기능을 추가하였다.
-
예제
$ tmboot -i -g svg1
-
관련 이슈 : IMS 72610
-
-
racdr 기능 추가
-
기존 버전에서는 같은 도메인에서 racd를 이용하여 명령을 수행(tmboot 등)이 가능하다.
Tmax 5 SP2 Fix#1에서는 다른 도메인의 명령 수행이나 파일 전송 기능이 가능 하도록 racdr 유틸리티를 추가하였다.
-
사용방법
racd에서는 사용자 변경사항은 없고 racdr은 다음 옵션들을 지원한다.
racdr [-h][-f cfg_file][-n node_name][-c command] [-s file_name][-d dest_no]
옵션 설명 [-h]
Usage 화면을 출력한다.
[-f cfg_file]
다른 도메인의 노드 정보를 저장한 환경 파일을 지정한다. 별도로 지정하지 않으면 현재 디렉터리의 racdr.cfg 또는 $TMAXDIR/config/racdr.cfg 파일을 사용한다.
[-n node_name]
환경 파일에서 정의한 노드이름을 지정한다. 모든 요청들은 해당 노드의 racd 로 전달되어 수행된다.
[-c command]
racd에서 명령을 실행한다. 명령이 파라미터를 가지는 경우 따옴표로 묶어서 하나의 인자로 전달되도록 해야 한다.
명령은 tmboot, tmdown, cfl, gst만 허용된다. 그 외의 명령이나 쉘 스크립트는 수행할 수 없다.
[-s file_name]
파일을 해당 노드로 전송한다. 반드시 -d 옵션과 함께 사용해야 한다.
저장될 위치에 이미 파일이 존재하는 경우 해당 파일의 이름을 변경하고 전송된 파일을 기존 파일 이름으로 저장한다. 기존 파일의 이름은 뒷부분에 현재의 "_년월일시분초"가 추가되며, 같은 이름의 파일이 또 존재하면 그 뒤에 "_번호"를 추가한다.
파일 전송 도중 실패하면 전송중이던 파일은 삭제하고, 기존 파일을 복원한다.
[-d dest_no]
파일이 저장될 경로를 지정한다.
경로는 최대 3개까지 지정 가능하다. 경로는 환경 파일에서 설정하며, dest_no는 설정한 디렉터리의 번호를 지정한다.
첫 번째 경로(dest1)는 1, 두 번째 경로(dest2)는 2, 세 번째 경로(dest3)는 3을 지정한다.
-
racdr의 환경 파일 설정 방법
환경 파일은 다음과 같은 형식으로 설정한다.
----------------------------------------------------------------------- #nodename ip-address racport dest1(appbin) dest2(applib) dest3(config) tmnode1 192.168.1.1 5000 /tmax/appbin /tmax/applib /tmax/etc tmnode2 192.168.1.2 5000 /tmax/appbin /tmax/applib /tmax/config othnode 192.168.10.2 9999 /tmax/appbin /tmax/applib /tmax/config
-
주의사항
-
명령을 실행할 때 명령 인자의 파라미터에 반드시 -n 옵션을 설정해서 해당 노드만 수행하도록 해야 한다.
-
입력을 요구하는 명령은 처리할 수 없다. 입력을 요구하지 않는 방식으로 수행되도록 명령 인자를 설정해야 한다.
$ tmdown Do you really want to down whole Tmax? (y : n):
$ tmdown -n node1
-
실행 화면 결과는 해당 명령이 모든 수행을 마치고 종료될 때 client로 전달됨을 유의한다.
-
실행 화면 결과 중 STDOUT과 STDERR 출력은 실제 화면과 다른 순서로 출력될 수 있음을 유의한다.
-
racdr 수행 결과에서 tmboot의 STDERR 내용은 출력되지 않음을 유의한다.
-
명령이 실행되는 중에는 racd는 다른 요청을 처리할 수 없음을 유의한다.
-
-
racd 사용 예제
$ racd $ racd -k
-
racdr 사용 예제
다음은 /app/svr2 파일을 tmnode1 노드의 /tmax/appbin 디렉터리로 파일을 전송하는 예이다.
$ racdr -f config.txt -n tmnode1 -s /app/svr2 -d 1
다음은 tmnode1 노드에 cfl 명령을 수행하는 예이다.
$ racdr -f config.txt -n tmnode1 -c "cfl -i tmaxconfig.m"
다음은 tmnode1 노드에 tmboot 명령을 수행하는 예이다.
$ racdr -f config.txt -n tmnode1 -c "tmboot -n node1"
다음은 tmnode1 노드에서 특정 서버를 종료하는 예이다.
$ racdr -f config.txt -n tmnode1 -c "tmdown -n node1 -S svr2"
-
관련 이슈 : IMS 72610
-
-
cfl -x 옵션 추가
-
cfl를 수행할 때 SERVER 절 설정에 TARGET 및 CLOPT의 [-x] 옵션을 사용하는 경우 존재하는 서버/서비스 이름인지 체크한다.
-
추가된 에러 메시지
-
SERVER절의 TARGET 설정에 환경 파일에서 선언되지 않은 서버명이 설정되었을 때 다음의 에러 메시지가 출력된다.
CFL3184 line %d(서버가 선언된 라인): invalid target server name %s(TARGET에 설정한 서버명)
-
SERVICE절의 CLOPT 설정에 환경 파일에서 선언되지 않은 서비스명으로 -x 옵션이 설정되었을 때 다음의 에러 메시지가 출력된다.
CFL3183 line %d(서버가 선언된 라인): invalid service name %s(-x로 설정한 서비스명)
-
-
관련 이슈 : IMS 75628
-
-
tmd -l 옵션 추가
-
기존 tmd를 실행하는 경우 데이터를 받는 한 줄은 1024byte로 제한되어 있었다. 사용자가 설정할 최대 데이터 크기만큼 사이즈를 설정하도록 기능추가하였다.
-
예제
$ tmd -i test.64000 -l 64003
-
관련 이슈 : IMS 73033
-
1.7. 관리도구
-
st -v -pod 기능 추가
-
tmadmin에서 st -v -pod을 적용하는 경우 POD인 서버의 상태 부분에 항상 "(POD)"가 출력되도록 기능 추가하였다.
-
사용 방법
$$3 tmaxs7 (tmadm): st -v -pod ------------------------------------------------------------------------ clh svrname (svri) status count qcount qpcount emcount ------------------------------------------------------------------------ 0 _rqsvg ( 2) RDY 0 0 0 0 0 svr2 ( 5) NRDY(POD) 0 0 0 0 0 svr3 ( 6) RDY 0 0 0 0 0 svr_ucs ( 7) RDY 0 0 0 0 0 svr_rq ( 8) RDY 0 0 0 0 0 fdltest ( 9) RDY 0 0 0 0
-
관련 이슈 : IMS 75147
-
-
clh에 접속가능한 최대 사용자 수 확인
-
tmadmin에서 tmaxinfo(ti), cfg -n 명령에서 다음과 같이 출력되도록 기능 추가하였다.
-
사용 방법
$$1 tmaxs7 (tmadm): ti Supported maximum user per node = 12067, Supported maximum user per handler = 12067, $$2 tmaxs7 (tmadm): cfg -n Supported maximum user per node = 12067, Supported maximum user per handler = 12067,
-
관련 이슈 : IMS 70872
-
2. 변경 기능
본 절에서는 변경된 주요 기능에 대해 설명한다.
2.1. ENGINE
-
lockfile에 IPCPERM 설정이 적용 안되는 현상
-
Tmax 재기동하는 경우 path 디렉터리의 기존에 생성된 lockfile(tmmld, clhld00x, tmconfig)들에 대해서도 IPCPERM 설정대로 permission이 적용되도록 수정하였다.
-
관련 이슈 : IMS 78728
-
2.2. TDL
-
TDL hash 함수 성능 개선
-
hash collision이 많을 수록 tdlupedate 시간이 많이 걸리는 현상 해결을 위해 최신의 hash 함수를 적용해서 collision을 감소시키도록 기능을 개선하였다.
-
관련 이슈 : IMS 75196
-
2.3. 클라이언트 / 서버
-
tpadvertise() / tpunadvertise() 기능 보완
기존에는 tpadvertise, tpunadvertise 는 환경설정에 등록되어 있는 서비스만을 대상으로 동작하는 방식을 mksvr로 등록한 서비스 및 tpadvertise에 의해 새롭게 등록한 서비스를 등록/해제할 수 있도록 보완하였다.
다음은 변경된 동작 방식에 대한 설명이다.
-
svrlib의 tpadvertise
-
환경 설정 파일(config.m)에 등록한 서비스를 tpadvertise 수행하는 경우
-
tpunadvertise 수행을 했었다면 다시 서비스할 수 있는 상태로 변경한다.
-
다른 서버에서 tpadvertise를 실행하는 경우 실패 처리한다.
-
-
mksvr로 등록한 서비스를 tpadvertise 수행하는 경우
-
tpunadvertise 수행을 했었다면 다시 서비스할 수 있는 상태로 변경한다.
-
다른 서버에서 tpadvertise 실행하는 경우 실패 처리한다.
-
서버 프로세스를 모두 종료할 때 tpadvertise했던 서비스는 함께 자동 삭제한다.
-
-
tpadvertise에 의해 새롭게 등록한 서비스를 tpadvertise 수행하는 경우
-
새로운 서비스를 등록한다.
-
tpunadvertise 수행을 했었다면 다시 서비스 할 수 있는 상태로 변경한다.
-
다른 서버에서 tpadvertise 실행시 실패 처리한다.
-
서버 프로세스를 모두 종료할 때 tpadvertise했던 서비스는 함께 자동 삭제한다.
-
-
-
svrlib의 tpunadvertise
-
환경설정 파일(config.m)에 등록한 서비스를 tpunadvertise 수행하는 경우
-
상태가 UNADV로 변경되며, 서비스를 호출하는 경우 TPENOENT가 tperrno에 설정된다.
-
-
mksvr로 등록한 서비스를 tpunadvertise 수행하는 경우
-
상태가 UNADV로 변경되며, 서비스를 호출하는 경우 TPENOENT가 tperrno에 설정된다.
-
모든 서버가 종료될 때에는 서비스 자체가 없어진다.
-
-
tpadvertise에 의해 새롭게 등록한 서비스를 tpunadvertise를 수행하는 경우
-
상태가 UNADV로 변경되며, 서비스를 호출하는 경우 TPENOENT가 tperrno에 설정된다.
-
모든 서버가 종료될 때에는 서비스 자체가 없어진다.
-
-
-
제약 사항
-
설정하지 않은 서비스에 대해 tpadvertise를 실행하는 경우에는 mksvr에서 서비스가 동적 등록하는 프로세스로 동작을 수행한다.
-
SVCTIMEOUT과 AUTOTRAN을 설정할 수 없다.
-
-
로그 추가
tpadvertise가 이미 다른 서버에서 수행한 경우에 slog에 다음을 출력한다.
-
SVR3041 fail to tpadvertise: svc(%1) in svr(%2:%3), mysvri(%4)
(1: tpadvertise하려는 서비스 이름, 2: 이미 등록한 서버 이름, 3: 이미 등록한 서버의 인덱스, 4: tpadvertise를 실행한 서버의 인덱스)
-
TMM3041 fail reg svc (%1, %2, %3, %4) not equal svri(%5)
(1: 등록하려는 서비스 이름, 2: 서비스 인덱스, 3: 이미 등록한 서버의 인덱스, 4: 서버 그룹의 인덱스, 5: 요청한 서버의 인덱스)
-
-
tpadvertise 실패하는 경우 tperrno 추가
구분 설명 TPELIMIT
노드의 서비스 갯수 제한으로 더이상 새로운 서비스를 등록할 수 없을 경우 발생한다.
TPEMATCH
-
이미 등록한 서비스인데 function이 다를 경우 발생한다.
-
이미 다른 서버에 등록한 서비스일 경우 발생한다.
-
-
관련 이슈 : IMS 71318
-
2.4. 유틸리티
-
TIP 서버 MIN/MAX 제약사항 제거
-
TIP 서버를 사용할 때 MIN/MAX를 1만 설정할 수 있는 제약사항을 풀어서 여러 개의 TIP 서버가 기동할 수 있도록 변경하였다.
-
관련 이슈 : IMS 78786
-
3. 버그 패치
3.1. ENGINE
-
tmdown -i 중 TMM이 비정상 종료되는 현상 수정
-
비정상 종료로 재기동되는 서버가 많은 상황에서 ASQCOUNT에 의해서 기동되는 서버가 많을 경우 tmdown -i로 종료한 경우 TMM이 비정상 종료되는 현상을 수정하였다.
-
관련 이슈 : IMS 75782
-
-
서버에서 tpforward하고 다른 서버에서 tpreturn를 수행하는 경우 불특정하게 CLH가 비정상 종료하는 현상
-
CLH에서 tpforward에 대한 tpreturn을 처리하는 경우 free한 메모리를 참조하려고 하여 발생한 현상으로 이를 수정하였다.
-
관련 이슈 : IMS 75301
-
-
tmadmin gwi로 백업 게이트웨이 정보를 조회할 때의 버그 수정
-
tmadmin에서 gwinfo로 게이트웨이 정보를 조회할 때 보내는 메시지를 TMM이 처리하는 과정에서 비정상 종료되는 현상을 수정하였다.
-
관련 이슈 : IMS 75390
-
-
멀티 노드에서 tpsend 호출하는 경우 비정상동작 수정
-
로컬 노드에 있는 서비스에서 다른 노드에 있는 서비스로 tpconnect 호출 후 tpsend를 호출하면 다음의 에러가 발생하는 오류를 수정하였다.
(E) CLI 3039 internal error : unknown message type :2006 [CSC5713]
-
관련 이슈 : IMS 77055
-
-
tmdown -s svr 중 프로세스 비정상 종료시 재기동 현상 수정
-
tmdown -S svrname으로 서버를 종료하는 중에 해당 서버가 비정상 종료되면 TMM에서 종료 중임에도 불구하고 재기동시키며 다음의 에러 메시지를 남긴다.
(E) TMM2108 register request from server(svr2) error: SVR_DOWN_REQUESTED [TMM0156]
이와 같은 상황에서는 서버의 down 상태를 체크해서 재기동하지 않도록 수정하였다.
-
관련 이슈 : IMS 70994
-
-
ctx_ereply 기능 관련 CLH memory leak 현상 수정
-
ctx_ereply가 활성화되어 있는 상황에서 tpacall + TPNOREPLY를 설정해서 UCS의 서비스를 호출하는 경우에 clh memory leak이 발생하지 않도록 수정하였다.
-
관련 이슈 : IMS 75659
-
-
tmadmin 마스터 모드에서 restat -a를 하면 리모트 노드의 통계가 초기화되지 않는 오류 수정
-
tmadmin이 실행된 이후 같은 노드에서 tmamdin -m이 실행되면, 그 tmadmin -m에서 restat 등 마스터에 적용되는 명령이 다른 노드에서 실행되지 못하는 현상을 수정하였다.
-
관련 이슈 : IMS 68751
-
-
TMM의 다른 프로세스에 write 재시도 방식 변경
-
TMM이 tmdown으로 보낸 메시지를 tmdown이 모두 읽기 전에 계속 write를 시도했을 때 기존에는 일정 횟수(500) 이상 시도하면 실패로 간주하였다.
write가 실패하면 싱글 노드에서는 tmdown 과정이 정상적으로 종료되나 멀티 노드에서는 local 노드만 tmdown 과정이 완료되고 리모트 쪽에서 tmdown 과정이 실행이 안된다. 이러한 문제점을 해소하기 위해 최소 1초가 지나야 write 시도한 횟수를 증가시키도록 하여 짧은 시간에 한꺼번에 많은 write의 재시도가 발생하더라도 실패하지 않도록 수정되었다.
TMM not_tproc_ready: ind = 2003, fd = 2008, w_trycnt = 500 TMM2084 trying to write to tproc is blocked: tproc (DOWN) closed and data dropped [TMM0022]
-
관련 이슈 : IMS 67087
-
-
tmboot -h에 -w 옵션 설명 추가
-
관련 이슈 : IMS 69364
-
-
CLH 비정상 종료되는 현상 수정
-
dynamic 서버와 conversation 모드를 수행하는 경우 clh가 비정상 종료되는 현상을 수정하였다.
-
관련 이슈 : IMS 72946
-
3.2. 클라이언트 / 서버
-
서버 라이브러리에서 undefined symbols 문제 수정
-
RDP 및 기타 서버 라이브러리에서 아래의 심볼들이 UNDEF라서 실행 파일을 빌드하는 경우 오류가 발생하는 현상을 수정하였다.
UNDEF |_tdlend UNDEF |_tdlstart UNDEF |tdl_version_freezing_no UNDEF |tdl_version_freezing_sw
-
관련 이슈 : IMS 78398
-
-
server library에서 current_time 이름의 변수를 사용하지 않도록 수정
-
AP 서버를 빌드하는 경우 current_time이라는 함수를 사용한 사용자 라이브러리를 함께 빌드할 때 서버가 부트하고 서비스 요청하면 비정상 종료하는 현상이 있었다. Tmax 서버 라이브러리에서 current_time 이름을 변경하여 충돌하지 않도록 수정하였다.
-
관련 이슈 : IMS 77546
-
-
서버에서 tp_sleep()을 호출하는 도중 tmadmin을 통해 ca 명령을 실행하면 tp_sleep()에서 대기하고 있지 않는 현상 수정
-
tp_sleep을 수행하는 경우 TMM으로부터 들어온 메시지가 있어도 TMM 요청을 처리하고, timeout의 나머지 시간만큼 대기하도록 수정하였다.
-
관련 이슈 : IMS 75771
-
-
XA 서버에서 tx_commit할 때 에러가 발생하는 현상 수정
-
XA 서버에서 tx_begin 이후 tpcall(TPNOTRAN)을 호출하는 경우 검사하는 로직때문에 xa_end(SUSPEND)로 동작하면서 tx_commit할 때 에러가 발생하는 현상을 수정하였다.
-
관련 이슈 : IMS 75802
-
-
tmm swap 메모리 증가 현상
-
TMAX_TRACE 설정하고, SVCTIME이 1이고, 부하가 많을 경우 서버에서 서비스 수행 전후 trace log를 TMM에 보내면서 지연 처리되어 SVCTIMEOUT이 발생한다. 에러 메세지를 TMM에 요청하면서 메시지가 혼합되어 TMM에서 정상 처리를 하지 못하고 swap 메모리가 증가하는 현상을 수정하였다.
-
관련 이슈 : IMS 77057
-
-
xid 0-0-0 발급되는 현상 보완
-
알수 없는 이유로 xid가 발급되지 않은 '0-0-0’으로 xa_start를 하는 경우가 발생하여 글로벌 트랜잭션이 불일치되는 현상이 발생하여, '0-0-0’으로 시작되는 트랜잭션은 실패로 응답을 주어 caller에서 실패 처리하도록 보완하였다.
-
출력 에러 코드
-
"SVR3042 xid is invalid (0-0-0), svc(%s)"가 출력되며, 호출된 서비스 이름이 %s를 대신한다.
-
errno는 TPETRAN, usrcode는 TX_ESYSTEM 이 발생한다.
-
-
관련 이슈 : IMS 77327
-
-
DYN 서버 타입의 경우 LIFESPAN에 설정에 의해 MIN으로 설정 서버까지 모두 죽는 현상 수정
-
DYN 서버 타입에 LIFESPAN을 적용하는 경우 프로세스 번호가 min 이하의 process가 IDLE 시간 이후에 종료되며, 전체 서버가 부하상태에 있다가 동시에 부하가 끊기면 특정 시점에 MIN으로 설정된 모든 프로세스가 종료되는 현상을 수정하였다.
-
관련 이슈 : IMS 79230
-
-
UCS를 기동하는 경우 TRC5003 에러 발생하는 현상 수정
-
엔진은 64bit, UCS 서버 라이브러리는 32bit를 사용하는 환경에서 32bit 라이브러리가 공유 메모리 사이즈를 조정하는 오류가 있었다. 이를 32bit 엔진에서 64bit 엔진에서 사용하는 공유 메모리 사이즈로 계산하도록 수정하였다.
-
관련 이슈 : IMS 75150
-
-
2pc 처리 도중 서버가 비정상 종료될 때 rollback이 2번 일어나는 현상 수정
-
XA 서버인 svr_xa1, svr_xa2가 있을 경우 svr_xa1에서 tx_begin 이후 tpcall로 svr_xa2로 호출 후 svr_xa1 을 kill로 종료하는 경우 xa_start된 xid 이외의 다른 xid로 xa_rollback을 하는 현상이 발생하였다. svr나 svc에 AUTOTRAN 설정이 되어 있지 않아야 발생하는 문제를 수정하였다.
-
구버전 AUTOTRAN 호환 패치 기능을 추가하면서 발생한 사이드 이펙트이다.
-
관련 이슈 : IMS 76716
-
-
Multithread client에서 tmax_chk_conn(0)를 사용 하면 TPESYSTEM 발생하는 에러 수정
-
관련 이슈 : IMS 75567
-
-
MultiContext에서 context에서 tp_strat하는 경우 암호화 중복 사용 오류 패치
-
MultiContext를 사용하여 각 context에서 서로 다른 라벨로 환경 정보를 읽어 접속할 때 일부 라벨에 암호화를 설정했을 때 tpstart 후 에러가 발생 종전에는 암호화 설정 여부가 context마다 분리되어 있지 않았으므로 일부 context에만 암호화를 사용할 경우 설정상의 충돌 발생하며 이때 context 마다 암호화 설정 여부를 다르게 설정할 수 있도록 수정하였다.
-
주의 사항
암호화 사용 여부에 따라 클라이언트 환경 파일에 암호화 설정해야 한다.
-
비암호화
TMAX_SEMANTICS="CRYPT_SW:N"
-
암호화
TMAX_SEMANTICS="CRYPT_SW:Y"
-
-
관련 이슈 : IMS 75976
-
3.3. 도메인 게이트웨이
-
COUSIN Gateway Load Balancing 오류 수정
-
아래와 같은 환경에서도 B 도메인에서의 LOAD 값에 맞게 분산하도록 수정하였다.
A 도메인, B 도메인의 환경 SVCA가 A 도메인에서 COUSIN 게이트웨이으로 설정되고 B 도메인에서 COUSIN으로 설정되어 있는 경우
SVCA가 B 도메인으로 게이트웨이를 통해서 스케줄링되었을 경우에는 LOAD 값에 상관없이 B 도메인의 수신한 노드에서 처리되도록 하는 방식으로 수정되었다.
-
관련 이슈 : IMS 75689
-
-
게이트웨이 요청 건수가 268435456 이상일 경우 TMAX_TRACE를 ON시키는 문제 수정
-
게이트웨이에서 기동 이후 요청 건수가 268435456가 넘을 경우 TMAX_TRACE를 ON으로 설정하지 않았는데 Trace 로그가 ULOG로 출력되는 문제를 수정하였다.
-
관련 이슈 : IMS 77057
-
3.4. 유틸리티
-
cfl을 수행하는 경우 환경 파일에 UCS 서버가 LIFESPAN=IDLE_DOWN으로 설정되어 있을때 에러가 발생하는 현상
-
LIFESPAN을 IDLE_DOWN 또는 DOWN로 설정하여도 에러가 발생하지 않도록 수정하였다.
-
관련 이슈 : IMS 78830
-
-
tmd buffer type 잘못된 값을 지정한 경우 core 발생 현상
-
사용자가 입력한 데이터에서 잘못된 버퍼 타입을 설정하여도 비정상 종료되지 않도록 수정하였다.
-
관련 이슈 : IMS 77980
-
-
TIP 서버 멀티 노드를 구성하는 경우 게이트웨이를 설정한 노드에서 TIP 서버가 기동되지 않는 현상 수정
-
cfl로 환경 파일을 작성하는 과정에서 발생한 오류로 정상동작하게 수정하였다.
-
관련 이슈 : IMS 71844
-
3.5. 관리 도구
-
tmadmin에서 unadv / adv의 -p 옵션이 적용되지 않는 현상
-
unadv / adv의 -p 옵션이 적용되지 않는 현상 및 unadv -p 옵션을 요청하는 경우 응답을 받지 못하는 현상을 수정하였다.
-
관련 이슈 : IMS 78995
-
-
tmadmin wsgwinfo을 실행하는 경우 Hang이 걸리는 현상
-
연결된 WSGW가 없을 때 wsgwinfo를 실행하는 경우 Hang이 걸리는 현상을 수정하였다.
-
관련 이슈 : IMS 79458
-
-
ds 명령어의 Usage -c clid를 -c cli_id로 변경
-
ds 명령어의 Usage -c clid를 -c cli_id로 변경하였다.
-
관련 이슈 : IMS 74424, 79516
-
-
tmadmin chtrc, chlog에서 -g, -v 옵션을 동시에 주었을 때 에러 현상 수정
-
tmadmin에서 chtrc -g svgname -v svrname -s spec을 실행하는 경우 잘못된 현상을 수정하였다.
-
관련 이슈 : IMS 76320
-
-
st -s로 조회하는 경우 -n 옵션 적용 안되는 현상 수정
-
-n 옵션 부분이 잘못 처리된 부분이 있어서 이 부분을 올바르게 수정하였다.
-
관련 이슈 : IMS 72444
-
-
st -s로 조회하는 경우 NDRY로 보이는 현상 수정
-
Tmax 서버가 down된 상태이나 st -s로 조회하는 경우 NDRY로 보이는 현상 수정하였다.
-
관련 이슈 : IMS 76225
-
3.6. TDL
-
백업이 설정된 경우 tdlupdate 실행 중 shm_backup에 잘못된 global seqno 반영 현상
-
tdlupdate 실행 중에 global seqno 갱신 시점을 update 맨 뒤로 옮겨 발생하는 현상으로 global seqno가 변경된 후 shm_backup의 global seqno를 반영하도록 기능을 수정하였다.
-
해당 현상은 Tmax 5 SP1 r6303, Tmax 5 SP2 r6400 이후 버전에서 발생한 오류이다.
-
관련 이슈 : IMS 73527
-
-
MONITOR=Y |tdlshm -s e로 활성화된 경우에만 getrusage()와 gettimeoutday() 함수가 호출되도록 오류 수정
-
관련 이슈 : IMS 69713
-
3.7. 도메인 게이트웨이
-
G/W의 connect을 시도하는 경우 특정 상황에서 socket을 해제하지 않는 오류 발생
-
Tmax 5 SP2에 반영된 non-block connect 기능 추가 후 다음과 같은 문제를 수정하였다.
-
-i 옵션이 없이 사용시 요청마다 연결 중인 socket을 close하지 않고 새로운 socket을 만들어 내는 문제
-
-i 옵션 사용이나 GWCHKINT을 사용하는 경우 GWCONNECT_TIMEOUT이 NLIVEINQ나 GWCHKINT보다 클 경우에 socket을 close하지 않고 새로운 socket을 만들어내는 문제
-
-
관련 이슈 : IMS 74015
-
-
도메인GW Failover되지 않는 현상
-
도메인GW(TMAX,TMAXNONTX)의 Failover가 정상 동작하지 않고 (TPENOREADY)가 발생하는 현상을 수정하였다.
-
관련 이슈 : IMS 77388
-
3.8. Tuxedo 게이트웨이
-
tuxgw에서 CLH로부터 도착한 prepare/commit/rollback 메시지를 처리할 때 xid를 찾지 못하는 현상을 오류 수정
-
관련 오류 메시지
(E) GATEWAY3020 failed to get xid from txhead [TUXGW0155] (E) GATEWAY0209 internal error : request table overflow [TUXGW0014]
-
관련 이슈 : IMS 73518
-
-
Tuxedo 게이트웨이 멀티 노드를 구성하는 경우 비정상종료 현상 수정
-
멀티 노드 환경에서 shm에 접근하는 svgno 인덱스를 2번 노드의 Tuxedo 게이트웨이에서 LOCAL 노드값을 그대로 사용해서 발생한 버그를 수정하였다.
_flag_eo_control(svrname = "\272\334^O\376\340\335\360^M^O(invalid char ptr (0x0ffffffffffffed0))), line 1508 in "etc.c" _eo_control_check(svrname = "", flag = 608715906), line 1600 in "etc.c" main.init(argc = 150994943, argv = (nil)), line 414 in "main.c" main(argc = 0, argv = (nil)), line 127 in "main.c"
-
관련 이슈 : IMS 77103
-
-
Tuxedo 게이트웨이 cpu 사용률 이 증가되는 현상 수정
-
Tmax Tuxedo 게이트웨이에서 Tuxedo 도메인 게이트웨이로 연결을 시도하는 도중 Tuxedo 도메인에서 연결을 거부하는 경우 Tuxedo 게이트웨이의 CPU(무한 select) 사용률이 증가되는 현상을 수정하였다.
-
관련 이슈 : IMS 78018
-
3.9. Java 게이트웨이
-
jeusgw Async Gateway의 CLOPT에 [-a] 옵션 사용할 때 지정된 파일이 없으면 jeusgwa가 무한 재기동 현상 수정
-
관련 이슈 : IMS 71122
-
-
jeusgw Async Gateway의 CLOPT에 [-H] 옵션 추가
-
[-H]을 사용하는 경우 로그 레벨 -D 4에서 alive check할 때 메시지 미출력되도록 기능이 추가되었다.
-
관련 이슈 : IMS 70952
-
-
jeusgw Async Gateway의 CLOPT의 CDATE 매크로가 날짜가 변경할 때 즉시 반영되도록 수정
-
관련 이슈 : IMS 70952
-
-
jeusgw Sync Gateway를 통해 string 타입의 필드 값을 가진 필드 버퍼를 수신하였을 때 처리 중 Core가 발생하는 오류 수정
-
jeusgw에서는 fdl version 값을 초기화하지 않아서 수신된 fdl 데이터를 변환할 때 오류가 발생하는 현상이 수정되었다.
-
관련 이슈 : IMS 75639
-
-
jtmax 서버로 string field buffer type 서비스를 요청하는 경우 jesugw 비정상 종료되는현상 수정
-
관련 이슈 : IMS 76699
-
-
JEUS 타입의 게이트웨이로 요청하는 경우 alive check하는 중 들어온 요청(tpcall, tpacall 등의 모든 요청)에 대해서 무조건 실패로 응답하는 현상 수정
-
관련 이슈 : IMS 75825
-