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

Weblogic Java Discussion :

Lancer des threads perso dans les Actions sous weblogic


Sujet :

Weblogic Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Lancer des threads perso dans les Actions sous weblogic
    Bonjour à tous,

    Je vous plante le décor
    J'ai à l'heure actuelle une demande sur une application J2EE struts weblogic 9.2 oracle. Pas d'ejb ... Toute la communication entre le client et weblo passe par un proxy

    En fait, certains traitements sont trop longs et dépassent une norme interne sur le temps de session du proxy. Note : Ces traitements sont indivisibles.

    L'idée est donc la suivante :

    1. Le client appelle une actions struts comportant le traitement long.

    2. L'action lance un thread porteur du traitement métier, le thread est indépendant de la demande, il exécute en tache de fond la demande et positionnera une fois terminé la réponse dans la session utilisateur positionnera un flag F à "traitement terminé" . En attendant l'action positionne le flag F à "en cours" dans la session utilisateur.

    3. L'action rend la main au client avec une page indiquant que le traitement est en cours.

    4. Cette page indiquant que le traitement est en cours et qu'une demande sur la terminaison ou non de l’action sera réitérée automatiquement dans n secondes (chronomètre). En fait ce serait un javascript qui réinterrogerait la même action au bout de n secondes. Cela permet à la session de ne pas arrivé au timeout.

    5. Lorsque le client envoie la demande sur la terminaison du Traitement T à l'action celui-ci re-répond suivant la fin du traitement :
    - « traitement en cours » et on repart sur l’étape 3
    - soit par la réponse au traitement demandé initialement (traitement T terminé)

    Le problème c'est que la création de Thread est plutôt déconseillée car ils ne sont pas forcémment gérés par Weblogic d'où les problèmes d'interblocages de processus orphelins ... bref la classe

    J'ai vu qu'il y avait qqs posts sur des sujets similaires ... ou on parle de décomposer les traitements, utiliser jms, ...
    Moi la question est simple est-il possible de créer un pool de thread perso gérés par weblogic ? J4ai vu dans la doc qu'il y avait des pools mais j'ai cru comprendre que c'est plus pour prioriser les servlets, ce n'est que de la config et du tuning de weblog... Il n'y a pas de trace de pool de thread pour des dev persos...
    Enfin me semble-t-il ...
    Donc si vous avez des éléments de réponse, des exemples je suis preneur, des recommandations sur ce que je devrais "absolument" faire ...

    Sinon il y aurait une possibilité de faire cela à la AJAX, le client enverrait une requete AJAX au serveur lançant ainsi le traitement mais bon après si l'utilisateur navigue sur l'appli et revient sur la page du traitement long ca va être plus compliqué pour lui afficher le statut d'exécution ...
    Enfin j'étais plutôt parti sur la première solution

    Voilà, j'espère avoir été assez clair. N'hésitez pas si je dois préciser
    Je remercie d'avance tout ceux qui pourront m'aider, pis aussi tout ceux qui aimeraient bien mais qui savent pas, comme moi
    bonne soirée tlm

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 43
    Points : 48
    Points
    48
    Par défaut
    Bonsoir,

    Ma réponse va être simple, il faut voir du côté du Workmanager de weblo (depuis la version 9)
    http://e-docs.bea.com/wls/docs90/jav...rkManager.html

    Je pense que cette feature répondra à tes besoins.

    François
    ____________________
    http://blog.ostyn.fr

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    merci François pour votre réponse.
    J'ai commencé à regarder le workmanager ... mais la doc n'est pas des plus explicites et je n'ai pas réussi à mettre la main sur un exemple ...

    Quelqu'un a t il des éléments d'information à me fournir ?
    Ou bien quelqu'un peut-il m'expliquer en gros les étapes nécessaires à la mise en place d'un workmanager et comment on y lance des threads ?
    Histoire que je ne parte pas dans un truc compliqué alors que je peux peut être y arriver plus simplement ...

    J'ai vu qu'il y avait la possibilité d'ajouter un workmanager à mon appli web. Est-ce obligatoire ? Ou bien est ce que je peux utiliser celui de weblo ?

    Donc je suis preneur de tout élément d'information : exemple, explication, tuto, ...

    Merci

Discussions similaires

  1. [XL-2010] macro récuperant des données aussi dans les sous-répertoire
    Par flosauveur69 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 05/04/2012, 09h35
  2. Je me mélange dans les actions des boutons
    Par canary dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 27/04/2008, 10h09
  3. ouverture des balises PHP dans les include
    Par FoxLeRenard dans le forum Langage
    Réponses: 5
    Dernier message: 30/01/2006, 12h08
  4. Réponses: 3
    Dernier message: 15/04/2004, 08h44
  5. Gestion des message windows dans les threads
    Par billyboy dans le forum Windows
    Réponses: 5
    Dernier message: 06/10/2003, 17h25

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