BOnjour,
Je développe un serveur résident qui doit stocker en mémoire des objets chargés depuis une base de donnée et les servir à la demande à des CGI.
Chaque CGI se connecte en TCP pour faire sa requete et attend une réponse que lui envoie le serveur.
J'utilise les composants Indy IdTCPserver, IDTcpClient du package dclIndy70.
Voila en gros le résumé de la situation.
Maitenant mon problème :
sous windows tout fonctionne sans probleme, le serveur accepte une forte charge sans broncher.
sous Linux/Kylix : redHat7
Au bout d'un certains nombres de traitements , le serveur refuse de faire toute nouvelle tache prétextant soit :
-EDatabaseError : Can't connect to MySQL server on (10061)
-EFOpenError : Too many open files
-EIdInvalidSocket,Impossible d'allouer le socket
Il me semble tout bien nettoyer comme il faut, (j'utilise un programme de test sous win pour trouver les leak il n'y en pas de mon fait) alors je me demande si ces composants ne garderaient pas les sockets ouverts lorsqu'ils recoivent une connexion ou qqchose du genre ?
D'avance merci pour vos éclairages.
Partager