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

API standards et tierces Java Discussion :

[Java Outlook Connector] ressources mémoires


Sujet :

API standards et tierces Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Juin 2005
    Messages : 35
    Points : 30
    Points
    30
    Par défaut [Java Outlook Connector] ressources mémoires
    Bonjour à tous,

    J'en remets une couche avec mon Java Outlook Connector ne serait-ce que pour le pauvre prochain qui devra effectuer des manipulations outlook en java...
    (je pense qu'une recherche avec les mot clés java outlook connector doit être vraiment impressionnante par la diversité des émetteurs)

    Bref, après moultes recherches,tests et retests des soluces des anciens posts je ne parviens toujours pas à libérer les ressources mémoires de mon appli...

    Pour vous éviter de répéter 36 fois les mêmes choses, je résume la situation :

    --> l'appli tourne en continue donc fuite mémoire = blocage à un moment même si la fuite est peu importante, je ne peux donc pas jouer avec l'allocation mémoire au démarrage de la JVM (-xms)

    --> grâce à vos différentes implications dans les discussions, je suis devenu expert avec le garbage collector (System.gc(), déréférencement)

    --> mes threads ne crée pas d'objet à tout va

    --> je ferme bien tous mes flux fichiers et mes Statments et ResultSet

    Si vous en voulez la preuve, comme mon appli est multi-protocoles,lorsque je fais du ftp ou smtp pop3 aucun problème (on distingue les allocations et libérations en suivant l'évolution de la mémoire --> stabilité parfaite).

    En revanche dès que je me connecte au serveur exchange via outlook connector, l'utilisation de la mémoire s'envole violamment mais sans jamais se libérer (même quand je passe ensuite à un autre protocole) et forcément comme on se sert bcp d'outlook, explosion du programme au bout de quelques heures.

    Enfin pour ceux qui ont déjà été voir la doc Moyosoft, lorsque je quitte je fais un Outlook.dispose() (fallais bien trouver quelque chose vu le manque de doc sur cette API).

    Ma question est donc simple : quelles sont les solutions qui s'offrent à moi lorsqu'une fuite mémoire provient d'une librairie externe?
    Svp, la réponse du style "change de librairie" n'est à envisager qu'en cas de dernier recours...

    Merci d'avance pour votre soutien ... je suis seul et perdu entre java et microsoft

    @+

  2. #2
    Membre confirmé Avatar de Satch
    Homme Profil pro
    Hypnothérapeute - Magicien
    Inscrit en
    Mars 2004
    Messages
    498
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Hypnothérapeute - Magicien

    Informations forums :
    Inscription : Mars 2004
    Messages : 498
    Points : 645
    Points
    645
    Par défaut
    Je vais peut-être dire une bêtise mais sait-on jamais.

    Il n'y aurait pas moyen d'utiliser cette API dans une autre JVM ? Ca irait chercher les infos que tu veux, les écrirait quelque part pour que ton appli (1ere JVM) puisse ensuite aller les rechercher.
    Comme la 2ème JVM lancée se fermera, plus de pbs de resources avec cette API.
    Je sais que désormais vivre est un calembour,
    La mort est devenue un état permanent,
    Le monde est aux fantômes, aux hyènes et aux vautours.
    Moi je vous dis bravo et vive la mort.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Juin 2005
    Messages : 35
    Points : 30
    Points
    30
    Par défaut
    Une réponse au combien intéressante mais un peu compliquée...
    Si je dois adopter un truc du genre (assez décevant à mon goût), il serait plus facile d'utiliser un autre programme java sur la même JVM ayant pour rôle de lancer,stopper puis relancer à l'infini mon appli...
    Merci pour ta remarque mais j'aimerais vraiment éviter de bidouiller dans une appli professionnelle comme celle la

  4. #4
    Membre à l'essai
    Inscrit en
    Juin 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 10
    Points : 17
    Points
    17
    Par défaut Changer d'API...
    Je suis déjà tombé sur ce genre de problème.
    Si c'est l'API que tu utilise qui est mauvaise (dans les conditions ou tu souhaite l'utiliser), la seule solution c'est d'utiliser autre chose.

    D'après ce que j'ai compris de la doc, cette API apelle du code natif. Si tu n'utilise pas beaucoup de fonction de l'API, tu peux peut-être essayer de faire ces appels en faisant du JNI.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Juin 2005
    Messages : 35
    Points : 30
    Points
    30
    Par défaut on dira que ça passe encore...
    Bonjour,

    Pour votre information, après une prise de contact avec les membres de moyosoft, j'ai reçu ce mail de leur part :

    "Nous avons effectivement constaté d'importantes fuites mémoires dues à notre connector, nous travaillons en ce moment sur le sujet afin d'améliorer la stabilité de notre outil. Je vous conseille en plus de la méthode dispose() de passer vos objets à null et de faire appel au garbage collector".

    En attendant de leurs nouvelles, je suis finalement en train de repenser mon code afin de lancer un programme indépendant s'occupant de toutes les manips outlook sans pomper toutes les ressources de la plateforme.

    Merci pour vos idées et observations.
    @+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Java et consommation de mémoire swap
    Par hugo123 dans le forum Langage
    Réponses: 5
    Dernier message: 28/01/2009, 01h05
  2. Réponses: 1
    Dernier message: 19/06/2008, 15h25
  3. Java & Outlook
    Par michaeljeru dans le forum Général Java
    Réponses: 2
    Dernier message: 12/06/2008, 12h34
  4. [Upload] Ressources mémoire lors de l'upload de photos
    Par Nostromo dans le forum Langage
    Réponses: 11
    Dernier message: 14/10/2007, 17h52
  5. Surveillance niveau de ressources /mémoire
    Par Wilco dans le forum Delphi
    Réponses: 1
    Dernier message: 12/05/2007, 15h28

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