Skip to end of metadata
Go to start of metadata

개요


 TCP  연결타입을 사용하여 DB 에 접속한 경우 DB client 프로그램이 정상적인 DB 연결 종료( Session close) 가 되지 않은 경우  altibase_boot.log 에는  관련 오류 메세지를 기록하게 되어 있습니다.

본 페이지에서는 해당 메세지의 유형과  원인에 대해서 자세히 설명합니다.

에러 메세지의 유형


ALTIBASE HDB 모든 버전에 오류 메세지가 기록되며    ALTIBASE HDB 버전에 따라 에러 메시지가 다소 다릅니다.

ALTIBASE HDB 4 ~ ALTIBASE HDB 5.3.3

ERR-71018(errno=238) Failed to invoke a system function, read()

ERR-71019(errno=104) Failed to invoke a system function, write() 

ALTIBASE HDB 5.5.1 ~ 이상버전

ERR-71018(errno=238) Failed to invoke the read() system function

ERR-71019(errno=104) Failed to invoke the write() system function 

 

에러 메세지 설명


알티베이스 서버에는 클라이언트와 알티베이스 서버의 연결 상태를 감시하는 '세션 매니저 쓰레드'가 있습니다.

일반적으로 클라이언트 프로세스가 비정상 종료하면 그 클라이언트와 연결된 세션은 바로 그 상태를 감지할 수 있습니다.
하지만 세션 작업과는 무관한 알티베이스 서버 내부의 작업을 오랜 시간 수행 중일 때, 해당 세션은 클라이언트와 알티베이스 서버와의 연결 상태를 확인할 수 없습니다. 그래서 '세션 관리 쓰레드'를 두어 세션의 연결 상태를 주기적으로 감시합니다.

ERR-71018(errno=113) Failed to invoke a system function, read()
ERR-71019
(errno=104) Failed to invoke a system function, write()

위 에러 코드들은(ERR-71018,71019) 이 쓰레드가 클라이언트와의 연결이 단절되었음을 감지하고 해당 세션을 정리하였음을 알리는 메시지입니다.

에러 코드 ERR-71018 은 클라이언트의 요청을 기다리는 단계에서,
 
에러 코드 ERR-71019 는 클라이언트로 응답하는 단계에서 연결이 끊어졌음을 감지했다는 의미합니다.

원인


연결이 끊긴 원인은 시스템 에러 코드 errno을 통해 유추할 수 있습니다.   

ERR-71018(errno=113) Failed to invoke a system function, read()

ERR-71019(errno=104) Failed to invoke a system function, write()

위 에러 메세지중에서   errno=113,  errno=104 가 시스템 에러 코드를  나타냅니다.


주요 에러코드 

주로 발생하는 에러는 아래와 같습니다.

  •  ECONNRESET
       이 에러 코드는 알티베이스 서버가 클라이언트로부터 RST 패킷을 수신하면 errno  ECONNRESET을 설정됩니다.
       RST
    패킷은 클라이언트에서 연결이 더 이상 유효 하지 않다고 알리는 경우에 해당합니다.
     

 

 

OS시스템 에러코드
Linux104
AIX73
HP-UX232
SUN131
Windows10054

 

  •  ETIMEDOUT
       TCP
    통신에서 해당 세션에 응답이 없을 경우 OS는 여러 차례 연결 상태 확인을 위해 패킷 재전송을 시도합니다.
       만약 설정된 시간 동안 응답이 없을 경우 ETIMEDOUT 가 발생합니다.

 

OS시스템 에러코드
Linux110
AIX78
HP-UX238
SUN145
Windows10060


시스템 에러코드의 확인

Icon

Linux의 경우 /usr/include/asm-x86_64/errno.h 파일에 에러코드에 대해서 정의가 되어 있습니다.

AIX의 경우 /usr/include/errno.h 파일에 에러코드에 대해서 정의가 되어 있습니다.

그 외의 OS에서도 에러코드에 대해서 정의된 헤더파일 ( errno.h ) 가 존재하는 경우 해당 파일을 참조해서 에러 코드의 의미를 확인할 수 있습니다.


주요발생 케이스

주로 DB client 와 DB server 간에 연결된 TCP 세션이  강제로 종료되는  상황에서  자주 발생할 수 있습니다.

  • L4, 방화벽에 의해서  idle 한  TCP session 이 강제로 정리된 경우
  • LAN 카드, 기타 네트웍 장비의 기계적인 오류
  • DB client 프로그램의 비정상적인 종료 또는  재기동

조치


알티베이스 서버에서 클라이언트와의 연결이 단절되었음을 감지하여 세선을 정리했음을 알리는 메시지로 알티베이스 서버에서 취할 수 있는 조치는 없습니다.  

 

참고


이중화 환경에서는 altibase_rp.log 에 이와 동일한 에러 메시지가 발생할 수 있습니다.
이중화 sender 가 이중화 로그 전송 중 receiver 가 종료된 상태를 감지할 때 발생합니다



 

 

  • No labels