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

Struts 1 Java Discussion :

Utiliser les threads dans application Struts


Sujet :

Struts 1 Java

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2004
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 21
    Points : 14
    Points
    14
    Par défaut Utiliser les threads dans application Struts
    Bonjour,

    J'ai une application qui tourne sous websphère, j'utilise le framework Struts.
    Cette application doit lancer plusieurs traitement long et certains doivent s'éxécuter en parralèle.

    J'ai donc réfléchi à une solution :

    déjà les threads sont déconseillés dans les conteneurs web d'apres la spec J2EE, si j'utilise les threads dans webspheres Est ce que c'est bon puisque c'est un serveur d'application ?

    Voici ce que je compte faire :

    - mon appli se divise en trois couche,
    - les traitements sont tous lancés à travers des threads appelé "unité de traitement" : ceux ci peuvent être lancés en parallèle et sont plus ou moins long
    - le séquencement est defini dans une autre classe "sequenceur" qui gérent l'ordonancement des "unités de traitement" : le sequencement est lui meme lancé dans un thread

    Tout ces elements se trouve dans la couche application.

    Depuis la couche presentation (struts) j'apelle une classe située dans la couche application qui se charge de lancer le thread séquencement. la main est ensuite rapidement retournée à l'utilisateur

    le "sequenceur" tourne en tache de fond et lance les "unités de traitment".


    Voila comment je compte faire l'appli.

    Qu'en pensez vous

    Merci d'avance

  2. #2
    Membre éprouvé
    Avatar de yolepro
    Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2002
    Messages : 918
    Points : 1 144
    Points
    1 144
    Par défaut
    Bonjour,

    Effectivement les Threads sont deconseillés par la specification J2EE, d'ailleurs si tu fais des acces a un container via ce thread sous WAS attends toi a avoir des avertissements au niveau des logs.

    Maintenant deconseillé ne veut pas dire interdit. J'ai eu l'occasion de travailler sur des applications qui l'utilisaient pour faire de longs traitements asynchrones (traitement de nuit ou hebdomadaire, envoie de mail, ....). Dans ce cadre, c'est tout à fait justifié.
    Il faut que tu veilles à ce que le thread soit bien délimité à une action en particulier car les problèmes d'effondrement de perf voir de crash serveur viennent souvent d'une mauvaise gestion des threads.

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2004
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 21
    Points : 14
    Points
    14
    Par défaut
    si tu fais des acces a un container via ce thread sous WAS attends toi a avoir des avertissements au niveau des logs
    En fait là je comprend pas, Websphere est un server d'application, donc si les thread tourne dans ce serveur dans la couche appli c'est OK ?

  4. #4
    Membre à l'essai
    Inscrit en
    Juin 2004
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 21
    Points : 14
    Points
    14
    Par défaut
    je voulais aussi ajouter que en mode administration, l'application est mono utilisateur, les traitements longs ne sont lancés que par un super utilisateur.

    Les threads sont donc possible car je n'ai pas a gerer les threads dans un environeement multi utilisateur, et je n'aurais pas de pb de goulot d'étranglement dûe au synchronisation

    merci

  5. #5
    Membre éprouvé
    Avatar de yolepro
    Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2002
    Messages : 918
    Points : 1 144
    Points
    1 144
    Par défaut
    Cela peut dépendre des serveurs d'application d'après ce que j'ai lu. Certain peuvent t'empecher de faire tourner des Threads qui accederait directement a la couche metier de ton application.

    Mais ca n'est pas le cas de WAS d'apres mon experience. Maintenant, si comme tu le dis, le périmetre est limité à une personne et que WAS te permet de faire des Threads pour acceder a la couche metier, je ne vois pas de problème.

  6. #6
    Membre à l'essai
    Inscrit en
    Décembre 2004
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 18
    Points : 22
    Points
    22
    Par défaut
    Je ne sais pas si ca s'appliquerait a ton cas mais dans le mien, on avait des composants a la norme JCA qui etaient multi-threadés et dans ce cas plutot que de lancer les threads manuellement on disposait d'un objet javax.resource.spi.work.WorkManager a qui on "demandait" de lancer les threads.

    Ainsi c'etait le serveur d'application qui se chargeait de gerer les threads.

  7. #7
    Membre éprouvé
    Avatar de yolepro
    Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2002
    Messages : 918
    Points : 1 144
    Points
    1 144
    Par défaut
    Je suis ArithmeticException sur sa lancé en te donnant un article intéressant sur le sujet :

    http://www.devx.com/Java/Article/28815

  8. #8
    Membre à l'essai
    Inscrit en
    Juin 2004
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 21
    Points : 14
    Points
    14
    Par défaut
    Ok merci

    je vais creuser dans ce sens et voir comment utiliser l'objet javax.resource.spi.work.WorkManager

Discussions similaires

  1. Utilisation des threads dans une application Perl/Tk
    Par Kroui dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 04/07/2011, 20h00
  2. Comment utiliser les thread dans ce cas ?
    Par ketchupi dans le forum Threads & Processus
    Réponses: 5
    Dernier message: 03/06/2011, 00h56
  3. Réponses: 1
    Dernier message: 10/04/2010, 09h10
  4. comment utiliser les lock dans les threads ?
    Par skad dans le forum Général Python
    Réponses: 2
    Dernier message: 15/07/2008, 14h28
  5. les threads dans NSE
    Par LN(a) dans le forum Delphi
    Réponses: 1
    Dernier message: 01/12/2006, 18h11

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