TroubleShooting

[Tuxedo] SVCTIMEOUT / Tperrno = 10

최선을 다하자! 2022. 9. 20. 15:00

Can't send request to service TOLOWER
Tperrno = 10

 

1)      에러 내용

서비스 수행 중 서버 프로세스에서 자원이 부족한 상태에서 발생할 수 있는 TPELIMIT 에러나 서비스타임아웃에 걸리거나 하는 경우에, 해당 서비스를 호출했던 호출자에서 발생할 수 있는 에러입니다.

 

2)      조치 사항

서버 프로세스를 확인해야 합니다.

 

 

 

ULOG

 

.node1!BBL.26083850.1.0: INFO: Awaiting process 46989822 for killing
144440.node1!BBL.26083850.1.0: INFO: Kill process 46989822 successful
144440.node1!BBL.26083850.1.0: CMDTUX_CAT:1836: WARN: Server(46989822) processing terminated with SIGKILL after SVCTIMEOUT
144440.node1!BBL.26083850.1.0: LIBTUX_CAT:541: WARN: Server GROUP2/200 terminated
144440.node1!BBL.26083850.1.0: LIBTUX_CAT:557: INFO: Server GROUP2/200 being restarted
144440.node1!simpserv2.56492380.1.0: 09-20-2022: Tuxedo Version 12.2.2.0.0, 64-bit
144440.node1!simpserv2.56492380.1.0: LIBTUX_CAT:262: INFO: Standard main starting
144440.node1!simpserv2.56492380.1.0: LIBTUX_CAT:476: WARN: Server 6/200: client process 42074474: lost message
144440.node1!simpserv2.56492380.1.0: LIBTUX_CAT:477: WARN: SERVICE=TOLOWER    MSG_ID=0    REASON=server died
144440.node1!simpserv2.56492380.1.0: Welcome to the simple server
144440.node1!restartsrv.23724626.1.-2: 09-20-2022: Tuxedo Version 12.2.2.0.0, 64-bit
144440.node1!restartsrv.23724626.1.-2: server GROUP2/200: CMDTUX_CAT:580: INFO: A server process has restarted: 56492380

 

 

 

 

특정 서버내에 잘못된 long job 을 갖고 있는 service 가 존재할경우

해당 service 가 실행하는 동안 다른 서비스가 실행될 수 없기 때문에 특정 시간이 지나면 해당 서버를  kill 시켜버립니다. (SIGKILL)

 

그리고 restart 옵션을 Y로 주면 서버가 재시동 됩니다.

 

 


현상 : 103017.kolon1!SRVHL016.81456.1.0: 03-12-2002: Tuxedo Version 7.1
            103017.kolon1!SRVHL016.81456.1.0: LIBTUX_CAT:262: INFO: Standard main starting
            103017.kolon1!SRVHL016.81456.1.0: LIBTUX_CAT:476: WARN: Server 100/2262: client process 89356: lost message
            103017.kolon1!SRVHL016.81456.1.0: LIBTUX_CAT:477: WARN: SERVICE=hzp09001    MSG_ID=0    REASON=server died
     

 

 

원인 : - core file이 발생하지 않은 경
              서비스 프로그램의 SQL 문장을 DBMS에서 SQL 문장을 처리하는데 지정된 시간을 초과(Full scan)하는 경우에                   발생(TPETIMEOUT).
            - core file이 발생한 경우
              1.함수를 잘못 사용하는 경우, 예를 들면 숫자 변수에 문자값을 setting 등
              2.선언된 변수의 크기보다 더 큰 값이 들어오는 경우.
              3.Server program에 출력문에서 varchar로 선언된 것이 출력할 때 .arr이 없이 출력한 경우.
     

 

 

조치 : - core file이 발생하지 않은 경우
              서비스 프로그램의 SQL 문장을 튜닝해야 한다.
           - core file이 발생한 경우
              1.함수를 잘못 사용한 부분을 확인하여 수정한다.
              2.변수값의 크기를 확인하여 적게 선언 되어 있는 경우 더 크게 잡아준다.
                (strcpy, strcat 등을 사용하는 경우 해당 변수에 들어오는 값을 확인하여 변수 크기를 조정한다.)
              3.printf문에서 varchar에 해당되는 것을 수정(x ==> x.arr)