2009-07-09 3 views
1

프로세스가 중지되었으며 트러스가 연결도 시도하지만 오류 ECONNREFUSED로 실패했음을 보여줍니다. 맨 페이지에는 다음과 같은 내용이 있지만 왜 반복해서 거절 당했습니까?ECONNREFUSED를 (를) 연결하는 방법은 무엇입니까?

ECONNREFUSED   The attempt to connect was force- 
         fully rejected. The calling program 
         should close(2) the socket descrip- 
         tor,  and  issue  another 
         socket(3SOCKET) call to obtain a new 
         descriptor before attempting another 
         connect() call. 

트러스 -p 2,145

/3 인 lwp_park (0x00000000의, 0) (수면 ...)

/2 인 nanosleep (0xFFFFFFFF7B5FBE60, 0xFFFFFFFF7B5FBE50) (자 ...)

/2 인 nanosleep (0xFFFFFFFF7B5FBE60, 0xFFFFFFFF7B5FBE50) = 0

/2 so_socket (PF_INET, SOCK_STREAM, IPPROTO_TCP ","SOV_DEFAULT) = 17

,451,515,

/2은 fcntl (17 F_SETFD가 0x00000001) = 0

/2 연결 (17 0xFFFFFFFF7B5FBF40, 16 SOV_DEFAULT) ERR # 146 ECONNREFUSED

/2 닫기 (17) = 0

/2 인 nanosleep (0xFFFFFFFF7B5FBE60, 0xFFFFFFFF7B5FBE50) (자 ...)

/2 인 nanosleep (0xFFFFFFFF7B5FBE60, 0xFFFFFFFF7B5FBE50) = 0

/2 so_socket (PF_INET, SOCK_STREAM, 은 fcntl (17 F_SETFD가 0x00000001) = 0

/2 : CONNECT (17 0xFFFFFFFF7B5FBF40, 16 SOV_DEFAULT)가 잘못 # 146 ECONNREFUSED가

IPPROTO_TCP는 ""SOV_DEFAULT)는 17

/2 =

/2 닫기 (17) = 0

/2 인 nanosleep (0xFFFFFFFF7B5FBE60, 0xFFFFFFFF7B5FBE50)

답변

0

아마도 방화벽 (... 자)? 많은 잠재적 인 이유가 있습니다.

2

때때로이 컴퓨터에서 작동하고 실패하기 시작합니까? 아니면 매번 오류가 반환됩니까? 다른 컴퓨터가 아닌 일부 컴퓨터에서만 작동합니까?

서버 프로그램이 수신 대기 소켓을 크래시하거나 닫았을 수 있습니다. 서버에서 "netstat -af inet"을 시도하여 해당 포트에 LISTEN 상태의 소켓이 있는지 확인하고 해당 포트에서 현재 연결 수를 확인하십시오. 서버 프로세스 ID의 Solaris 명령 "pfilespid"을 사용하여 서버가 여전히 수신 소켓을 열고 있는지 확인하고 현재 클라이언트 연결 수를 확인할 수 있습니다. 연결이 많이 이루어지는 경우 listen() 백 로그로 충분해야합니다. 클라이언트의 truss 명령에 -vall 옵션을 추가하여 연결할 주소와 포트를 표시하여 올바른지 확인하십시오. 또한 네트워크, 방화벽 또는 NAT 문제를 배제하기 위해 서버 시스템에서 동일한 연결을 시도하십시오.

+0

실제로이 프로세스는 클라이언트가 아닌 서버 인 oracle listener입니다. 이 오류는 클라이언트 프로세스에서만 발생하므로 이상합니다. – Daniel

+1

ECONNREFUSED는 connect()에서 반환 된 오류이므로 클라이언트가 연결을 시작한 당사자로 정의 된 경우에만 클라이언트에서 발생할 수 있습니다.Thanks Mark. – mark4o

+0

나는 이제 더 많은 것을 이해한다. 엄밀한 프로세스 오라클 리스너가 매달려 있었기 때문에 lsnrctl stop을 사용하여 리스너를 중지했지만 "lnsrctl stop"또한 중지되고 "lsnrctl stop"의 트러스 결과는 ECONNREFUSED 오류를보고했습니다. 따라서이 경우 "lsnrctl stop"은 클라이언트이어야하고 oracle listener는 서버 여야합니다. 그 결과가 왜 일어나는지는 모르지만 더 많이 알고 있습니다. 다시 한 번 감사드립니다. – Daniel

관련 문제