IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Lister les handles d'un Process


Sujet :

C#

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2005
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2005
    Messages : 482
    Points : 625
    Points
    625
    Par défaut Lister les handles d'un Process
    Salut les gens,

    je suis confronté à un pitti problème avec une application serveur dans notre société.

    un de mes prédécesseurs (je le hais !) a créé une application client/serveur fonctionnant à base de socket. 1 serveur et environ une quinzaine de postes clients.

    le serveur fonctionne (à peu près ...) mais quand on regarde dans le gestionnaire de taches, le nombre de handles ne cesse d'augmenter jusqu'à plantage complet de la bécane (au bout d'environ 8 jours).

    quand je suis arrivé dans la boite j'avais d'autres chats à fouetter (chui sadique!) alors je me suis contenté de faire une petite appli qui compte les handles à base de "getprocessbyname" et de "handlecount" et qui nous envoyait un mail quand le nombre approchait 250000 (sic!!)

    aujourd'hui j'aimerais trouver d'où peut bien provenir cette fuite. (et corriger si possible) mais vu le nombre de lignes de code je suis désespéré.

    j'aimerais donc améliorer mon programme de compteur de handles en LISTEUR de handles pour voir à quoi correspondent ces "trucs" qui se perdent.

    mais je ne trouve rien là-dessus (ou je ne cherche pas avec les bons mots-clefs...)

    le serveur a été conçu (n'importe comment) en c# avec le framework 1.1
    moi je bosse plutôt (bien ) en framework 2.0 (1.1 quand il faut :/)

    si l'un d'entre vous à une idée pour mon identification de ces "trucs" ou toute autre solution pour pister cette saturation... je lui offre ma reconnaissance éternelle (chui immortel) et inconditionnelle !
    "Essayer est le premier pas vers l'Echec !" (Homer Simpson)

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    Par défaut
    salut

    il te faudrait diagnostiquer "le responsable" de la création de ces handles et de voir la nature des handles crées.

    Si celà se trouve, le programme ouvre des sockets à la toque sans jamais les fermer d'ou une augmentation des handle sous-jacents à l'utilisation de ces sockets par le système d'exploitation...
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  3. #3
    Membre expérimenté Avatar de ctxnop
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2007
    Messages : 858
    Points : 1 732
    Points
    1 732
    Par défaut
    Salut,
    Pourquoi vouloir écrire un listeur de handle ? Utilise un qui existe déjà, comme http://technet.microsoft.com/fr-fr/s.../bb896653.aspx

    (note: ne te fie pas à la date de la page ni la version indiquée, la page n'est plus mise à jour mais le .Zip à downloader l'est lui, on est à la version 12.04 au moment où j'écris ces lignes)

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2005
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2005
    Messages : 482
    Points : 625
    Points
    625
    Par défaut
    yop,

    theMonz31 : le responsable c'est mon prédécesseur ^^;
    nan sans blague c'est justement ce que j'essaye de faire, retrouver le type des handles en surnombre pour m'orienter un peu dans ce code qui est très long, très complexe (du genre bien bordélique, sans aucun commentaire et rempli d'abhérations) et pas threadsafe pour un sou (vs2003...) donc chiant à migrer en 2005 (ah ouai, ca crée plein de threads partout aussi et quand tu quittes l'appli, il faut ensuite killer l'exe !!)

    ctxnop : j'ai dl le programme et c'est vrai que ca me donne pas mal d'infos sympa; j'arrive à voir quelques milliers de ces Handles mais malheureusement il ne me marque que le nom de l'exe l'ayant créé, son ID et son adresse mémoire, et non pas le type de l'objet (ce que je recherche en priorité pour faire un 'find' dans le code).
    mais bon je n'ai pas encore poussé plus loin l'utilisation de ce soft aujourd'hui (gavé de taf ); en tout cas il peut m'être très utile à plein de choses...

    je garde encore un peu ce post sous la main au cas où quelqu'un connaitrait une alternative...

    merci à vous deux
    "Essayer est le premier pas vers l'Echec !" (Homer Simpson)

  5. #5
    Membre éclairé Avatar de ppphil
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 612
    Points : 685
    Points
    685
    Par défaut
    As-tu regardé au niveau du listen du serveur.
    A mon avis, il doit créer un thread par connexion à chaque demande de client.
    Et ce thread n'est pas terminé pour une raison ou une autre.
    Tu devrais pouvoir trouver le bout de code où il y a un listen, non ?

Discussions similaires

  1. Lister les handles des fenetres
    Par UserOlivier dans le forum C++/CLI
    Réponses: 2
    Dernier message: 09/09/2010, 14h29
  2. [Wamp] Lister les process de Windows
    Par zerros dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 06/05/2010, 15h32
  3. Réponses: 2
    Dernier message: 20/02/2009, 10h36
  4. lister les threads d'un process
    Par kaff dans le forum Windows
    Réponses: 3
    Dernier message: 22/04/2006, 11h56
  5. Lister les process avec leurs arguments
    Par jamfr73 dans le forum MFC
    Réponses: 5
    Dernier message: 23/12/2004, 10h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo