[Tuxedo] TM_SHUTDOWNTIMEOUT 테스트
# TM_SHUTDOWNTIMEOUT
0~65535(초) 까지의 값을 설정 가능하며, 이 파타미터가 설정되어 있으면 tmshutdown은 timeout을 처리한다.
AP server 프로세스가 TM_SHUTDOWNTIMEOUT 으로 설정된 시간(초) 이내에 정상적으로 종료되지 않으면, tmshutdown 은 더 이상 기다리지 않고 아래와 같이 메시지를 남기고 계속 진행하게 된다.
tmshutdown -s simpserv
Shutting down server processes ...
Server Id = 21 Group Id = APPGRP2 Machine = SITE2: timeout
Server Id = 21 Group Id = APPGRP1 Machine = SITE1: shutdown succeeded
1 process stopped.
ULOG에는 아래와 같은 메시지가 남게 된다.
112017.node1!tmshutdown.57671988.1.-2: 12-12-2022: Tuxedo Version 12.2.2.0.0, 64-bit
112017.node1!tmshutdown.57671988.1.-2: CMDTUX_CAT:1853: INFO: TM_SHUTDOWNTIMEOUT is set to 31 seconds
112048.node1!tmshutdown.57671988.1.-2: CMDTUX_CAT:1857: WARN: Server process ID 40829288 on site AIX1 failed to shut down within 31 seconds
112118.node1!simpserv3.40829288.1.0: LIBTUX_CAT:522: INFO: Default tpsvrdone() function used
112118.node1!simpserv3.40829288.1.0: ERROR: msgsnd err:(LIBTUX_CAT:669: ERROR: Message operation failed because of the invalid message queue identifier) errn
112118.node1!simpserv3.40829288.1.0: LIBTUX_CAT:431: ERROR: Service receive: cannot send meta-msg reply
해당 프로세스는 이미 SHUTDOWN 명령을 받았으므로, 이 명령 자체가 취소되지는 않으며 해당 프로세스는 SHUTDOWN을 계속 진행하며, 단지 tmshutdown 이 기다리지 않는 것이다.
TM_SHUTDOWNTIMEOUT 이 설정되어 있지 않거나 잘못 설정된 경우(숫자가 아니거나 범위를 벗어나는 경우)에는
0(초) 으로 설정된 것과 동일하다. 이 경우에는 서버 프로세스가 종료할 때까지 tmshutdown 은 기다리게 된다.
### 1
-w 옵션과 TM_SHUTDOWNTIMEOUT 이 모두 설정되어 있으면
-w 가 사용되며 TM_SHUTDOWNTIMEOUT은 무시된다.
만약 TM_SHUTDOWNTIMEOUT=10 으로 환경변수가 설정되어있고
tmshutdown -w 15 -i 301 로 tmshutdown을 진행하였다면
ulog에는 TM_SHUTDOWNTIMEOUT이 발생하였다는 로그가 떨어지지 않으며 서버는 15초 후에 shutdown 된다.
### 2
-k 옵션과 TM_SHUTDOWNTIMEOUT 이 모두 설정되어 있으면
-k 가 사용되며 TM_SHUTDOWNTIMEOUT은 무시된다.
만약 TM_SHUTDOWNTIMEOUT=10 으로 환경변수가 설정되어있고
tmshutdown -k kill -i 301 으로 tmshutdown 을 진행하였다면
-k 옵션을 먼저 물고 들어가기 때문에 SHUTDOWNTIMEOUT의 시간과 상관없이 곧바로 SIGKILL이 이루어진다.