Как бороться с ECONNREFUSED для подключения? - PullRequest
1 голос
/ 09 июля 2009

У нас завис процесс, и ферма показывает, что он также пытается подключиться, но произошел сбой с ошибкой 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 2145

/ 3: lwp_park (0x00000000, 0) (спит ...)

/ 2: наноспит (0xFFFFFFFF7B5FBE60, 0xFFFFFFFF7B5FBE50) (спит ...)

/ 2: наносон (0xFFFFFFFF7B5FBE60, 0xFFFFFFFF7B5FBE50) = 0

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

/ 2: fcntl (17, F_SETFD, 0x00000001) = 0

/ 2: connect (17, 0xFFFFFFFF7B5FBF40, 16, SOV_DEFAULT) Ошибка # 146 ECONNREFUSED

/ 2: закрыть (17) = 0

/ 2: наноспит (0xFFFFFFFF7B5FBE60, 0xFFFFFFFF7B5FBE50) (спит ...)

/ 2: наносон (0xFFFFFFFF7B5FBE60, 0xFFFFFFFF7B5FBE50) = 0

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

/ 2: fcntl (17, F_SETFD, 0x00000001) = 0

/ 2: connect (17, 0xFFFFFFFF7B5FBF40, 16, SOV_DEFAULT) Ошибка # 146 ECONNREFUSED

/ 2: закрыть (17) = 0

/ 2: наноспит (0xFFFFFFFF7B5FBE60, 0xFFFFFFFF7B5FBE50) (спит ...)

Ответы [ 2 ]

2 голосов
/ 09 июля 2009

Иногда это работает с этой машины и затем начинает отказывать, или ошибка возвращается каждый раз? Работает ли это на некоторых машинах, а не на других?

Возможно, серверная программа аварийно завершила работу или закрыла сокет прослушивания. Попробуйте «netstat -af inet» на сервере, чтобы убедиться, что на этом порту есть сокет в состоянии LISTEN, и проверить текущее количество соединений на этом порту. Команду Solaris «pfiles pid » для идентификатора процесса сервера также можно использовать для проверки того, что на сервере все еще открыт сокет прослушивания, и для проверки текущего числа клиентских подключений. Если выполняется много подключений, убедитесь, что достаточно невыполненного задания listen(). Добавьте параметр -vall в команду truss на клиенте, чтобы показать адрес и порт, к которому вы подключаетесь, чтобы убедиться, что они верны. Также попробуйте установить то же соединение с серверного компьютера, чтобы исключить любую проблему с сетью, брандмауэром или NAT.

0 голосов
/ 09 июля 2009

Брандмауэр возможно? Есть много потенциальных причин.

...