FAQ
Failed to invoke a system function, ~ Protocol processing failed. Close connection...
분류 에러메시지 등록일 2013-09-13 조회수 4034
현상 
알티베이스 서버 쪽 trace 로그, altibase_boot.log 파일에서 아래와 같은 에러 메시지를 만날 수 있습니다. 

 
ERR-71018(errno=113) Failed to invoke a system function, read() 
Protocol processing failed. Close connection...

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

Protocol processing failed. Close connection... 


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

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

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

에러 코드 ERR-71018 은 클라이언트의 요청을 기다리는 단계에서,

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


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



원인

연결이 끊긴 원인은 시스템 에러 코드 errno을 통해 유추할 수 있습니다.
주로 발생하는 에러는 아래와 같습니다.


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

   Linux 104, AIX 73, HP-UX 232, SunOS 131, Windows 10054
입니다.

2) ETIMEDOUT

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

   Linux 110, AIX 78, HP-UX 238, SunOS 145, Windows 10060
입니다.

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


참고
이중화 환경에서는 altibase_rp.log 에 이와 동일한 에러 메시지가 발생할 수 있습니다.

이중화 sender 가 이중화 로그 전송 중 receiver 가 종료된 상태를 감지할 때 발생합니다.
 


유사 에러 메시지
5.5.1 이전 버전에서는 에러 코드는 동일하지만 에러 메시지가 약간 다릅니다.

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

 


RST 패킷이 발생하는 경우
- 연결 시도 시 목적 host와 port에 연결을 대기하는(listen)하는 프로세스가 없는 경우
- TCP가 현재 맺고 있는 연결을 날려 버리고자 하는 경우
- TCP가 이전에 맺고 있던 연결이 더 이상 유효 하지 않다고 알리는 경우
 

 
목록