|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() |
Bonjour,
J'ai besoin de votre analyse sur un problème rencontré en production sur une machine AIX Ces machines hébergent un applicatif WebService en java qui ouvre un socket, se connecte à 1 CICS, déclenche un programme cobol , récupèrè la réponse et ferment le socket. Le problème est que, dès qu'il y a une sollicitation importante inhérente à une fréquentation Internet, je constate dans les logs que plusieurs ouvertures de sockets sont refusées aux heures de pointe : [Function: TCPIPConnection::openSocket]Failed to successfully open the connection (The socket name is not available on this system.) 1 - Quel est le problème ? 2 - Est ce une plage de ports locaux qui sature et refuse des nouvelles connexions tant que des sockets ne sont pas fermées ? 3 - Si oui , avons nous le moyen d'augmenter le nombre de sockets potentiellement utilisables? Au niveau nestat je ne constate rien de particulier a part plusieurs connexions loopback en TIME_WAIT . Merci de votre aide |
|
|
00
|
|
|
#2 |
![]() ![]() R&D en systemes informatiques bas niveau Unix/Linux Inscription : mai 2004 Messages : 5 464 ![]() |
Bonjour,
Ce programme est, malheureusement, mal concu, et le fait d'augmenter le nombre maximum de sockets ouvrable par un processus n'est qu'un contournement. Lorsque tu fermes une socket, celle-ci passe en etat TIME_WAIT, pendant 2 minutes par defaut. Pendant tout ce temps, elle reste reellement ouverte, meme si tu ne peux plus travailler dessus. Elle compte dans le nombre de sockets ouverte, sachant qu'il existe deux limites : le nombre de sockets par processus, et le nombre de sockets pour le systeme. Aux heures de pointe, tu passes ton temps a ouvrir et fermer des sockets. Au bout d'un moment, tu atteint une limite (processus ou systeme), et donc toute creation de socket t'es refusee. La solution est de garder la socket ouverte, mais cela demande de recoder le logiciel. En attendant que ce soit fait (ce qui ne sera probabelement jamais le cas), tu dois augmenter la limite du nombre de sockets par processus, ou bien la limite globale (voir les deux). |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com