Nous avons un processus suspendu, et le truss montre qu'il tente également de se connecter mais a échoué avec l'erreur ECONNREFUSED. La page de manuel dit ce qui suit, mais pourquoi a-t-elle été rejetée encore et encore?Comment gérer ECONNREFUSED pour se connecter?
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.
truss -p 2145
/3: lwp_park (0x00000000, 0) (couchage ...)
/2: nanosleep (0xFFFFFFFF7B5FBE60, 0xFFFFFFFF7B5FBE50) (couchage ...)
/2: nanosleep (0xFFFFFFFF7B5FBE60, 0xFFFFFFFF7B5FBE50) = 0
/2: so_socket (PF_INET, SOCK_STREAM, IPPROTO_TCP, "", SOV_DEFAULT) = 17
/2: fcntl (17, F_SETFD, 0x00000001) = 0
/2: connecter (17, 0xFFFFFFFF7B5FBF40, 16, SOV_DEFAULT) Err # 146 ECONNREFUSED
/2: close (17) = 0
/2: nanosleep (0xFFFFFFFF7B5FBE60, 0xFFFFFFFF7B5FBE50) (couchage ...)
/2: nanosleep (0xFFFFFFFF7B5FBE60, 0xFFFFFFFF7B5FBE50) = 0
/2: so_socket (PF_INET, SOCK_STREAM, IPPROTO_TCP, "", SOV_DEFAULT) = 17
/2: fcntl (17, F_SETFD, 0x00000001) = 0
/2: connecter (17, 0xFFFFFFFF7B5FBF40, 16, SOV_DEFAULT) Err # 146 ECONNREFUSED
/2: close (17) = 0
/2: nanosleep (0xFFFFFFFF7B5FBE60, 0xFFFFFFFF7B5FBE50) (couchage ...)
En fait, ce processus est un écouteur Oracle qui est un serveur au lieu d'un client. Donc c'est bizarre car cette erreur n'arrive que sur le processus client, n'est-ce pas? – Daniel
ECONNREFUSED est une erreur renvoyée par connect(), donc elle ne peut se produire que dans un client (si un client est défini comme la partie qui initie la connexion). – mark4o
Merci Mark. Je comprends plus maintenant. Un écouteur d'oracle de processus sever était suspendu, donc nous avons utilisé lsnrctl stop pour arrêter l'écouteur, mais "lnsrctl stop" se bloque également, le résultat de l'opération "lsnrctl stop" a signalé l'erreur ECONNREFUSED. Dans ce cas, "lsnrctl stop" doit être un client et l'écouteur oracle est un serveur. Bien que je ne sais pas le résultat pourquoi l'erreur se produit, mais j'en sais plus. Merci encore – Daniel