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

JSF Java Discussion :

Interruption de requête


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Avatar de Cafeinoman
    Homme Profil pro
    Couteau suisse d'une PME
    Inscrit en
    Octobre 2012
    Messages
    628
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Couteau suisse d'une PME

    Informations forums :
    Inscription : Octobre 2012
    Messages : 628
    Par défaut Interruption de requête
    Bonjour,

    Je cherche un moyen pour interrompre une requête JSF sous certaines conditions. Pour vous situer le contexte, je bosse avec Wildfly 8.2 et Primefaces sur une plateforme web. Les admins de la plateforme peuvent créer des repository jcr. Sauf que ça nécessite un reload des sous-systèmes Wildfly.

    Je vais donc programmer le reload à des heures de faible affluence, mais au cas où quelqu'un effectue une requête au même moment, j'aimerais pouvoir l'intercepter avant que le serveur renvoi une erreur 500, notamment pour éviter que quelqu'un perde son boulot si c'est un POST.

    Je suppose qu'il va me falloir du Javascript, mais ça n'est pas trop mon truc, d'où mon appel à la communauté.

    Merci d'avance.

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Il ne serait pas plus simple de refuser toute nouvelle requête et d'attendre que le serveur ait traité toutes celles en cours avant de le couper ?

    Sinon, il faudrait éventuellement passer par un filtre en amont pour enregistrer les paramètres de ton request dans une base de données (ou autre moyen de stockage plus light), et les supprimer à la fin, quelque chose comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException
    {
        try
        {
     
            // Enregistrement des paramètres de la requête pour l'utilisateur connecté
     
     
            chain.doFilter(request, response);
     
     
            // Suppression des paramètres de cette requête
        }
        catch (Throwable t)
        {
            // on trace ?
        }
    }
    Donc une fois le serveur coupé, toutes les traces restantes dans cette base seraient potentiellement des requêtes inachvées, mais pas sûr, le serveur s'est peut-être arrêté avant le retrait de l'enregistrement dans la base mais après son traitement du request...

    Ensuite, il faut pouvoir relancer ta requête, là, un peu de javascript pourrait aider... et encore... pas forcément utile
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre émérite
    Avatar de Cafeinoman
    Homme Profil pro
    Couteau suisse d'une PME
    Inscrit en
    Octobre 2012
    Messages
    628
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Couteau suisse d'une PME

    Informations forums :
    Inscription : Octobre 2012
    Messages : 628
    Par défaut
    Je vois ce que tu veux dire, mais ça me parait source de bugs effectivement. La solution serait effectivement d'empêcher que le serveur accepte la requête, ce qui permettrai de ne pas perdre de contenu, mais je ne vois pas comment faire sans que le client vérifie l'état du serveur, ce qui pour moi provoque une erreur...

  4. #4
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    A mon avis, c'est plutôt du côté d'un serveur Apache (ou autre) que tu trouveras quelque chose.
    Il faudrait interdire toute nouvelle requête, laisser le temps à celles en cours de se terminer, et ensuite, on peut couper (ou rebooter) le serveur sans risque...

    Je pense qu'Apache sait faire ça (dans le principe, c'est très proche d'un load balancing) mais n'étant pas un spécialiste, je ne sais pas trop comment
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre émérite
    Avatar de Cafeinoman
    Homme Profil pro
    Couteau suisse d'une PME
    Inscrit en
    Octobre 2012
    Messages
    628
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Couteau suisse d'une PME

    Informations forums :
    Inscription : Octobre 2012
    Messages : 628
    Par défaut
    Bon, j'ai compris, je vais me plonger dans la doc d'undertow. Parce que oui, je tape en 443 directement sur un sous-système du Wildfly, qui en plus devra à terme être multihost...
    Vous croyez que le père Noël m'apportera les journées de 48h que j'ai demandé?

  6. #6
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Cafeinoman Voir le message
    Vous croyez que le père Noël m'apportera les journées de 48h que j'ai demandé?
    Si tu ne demandes que 48h, ce serait mesquin de sa part de te le refuser

    Merci pour la référence à Undertow, je ne connaissais pas mais ça pourrait nous être utile... un peu dans le même contexte que toi
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. [WD17] Interruption de requête
    Par cladoo dans le forum WinDev
    Réponses: 4
    Dernier message: 12/11/2012, 23h25
  2. Interruption d'une requête
    Par le Daoud dans le forum Général Java
    Réponses: 5
    Dernier message: 20/04/2006, 13h45
  3. Utilisation de MAX dans une requête SQL
    Par Evil onE dans le forum Langage SQL
    Réponses: 7
    Dernier message: 15/06/2004, 18h38
  4. Requete requête sous sybase
    Par eddie dans le forum Sybase
    Réponses: 3
    Dernier message: 02/04/2003, 14h51
  5. [BDD] Enregistrer le résultat d'une requête
    Par Mowgly dans le forum C++Builder
    Réponses: 5
    Dernier message: 19/06/2002, 15h26

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