Page 1 sur 1

[Résolu]Session http permanente en xPage

MessagePublié: 03 Sep 2012 à 09:24
par mike76
Serveur 8.5.3 FP2

Bonjour,

Je suis en train de développer une application en xPage.

J'ai besoin que l'utilisateur ne soit jamais déconnecté. A part bien sûr s'il ferme son navigateur ou bien il se déconnecte de l'application.

J'utilise donc ce bloc de script dans ma xPage pour qu'il n'y ait pas de déconnexion :

Code : Tout sélectionner
   <xp:scriptBlock id="KeepMySessionAlive">
      <xp:this.value><![CDATA[
                        var dbpath = '#{javascript:facesContext.getExternalContext().getRequestContextPath()}';
                        var sTimeoutSec = (parseInt('#{javascript:context.getProperty("xsp.session.timeout")}' || 30) * 60) - 30;
                       
                        if(!XSP.keepAlive)
                                {XSP.keepAlive=function xe_ka(){
                                    setTimeout('XSP.keepAlive()',sTimeoutSec * 1000);
                                    dojo.xhrGet({url:dbpath + '/xsp/.ibmmodres/ping',
                                                handleAs:'text',
                                                preventCache:true});
                                    };
                                   
                        setTimeout('XSP.keepAlive()',sTimeoutSec * 1000)}
                ]]></xp:this.value>
   </xp:scriptBlock>


Mon problème est le suivant :
L'utilisateur reste bien connecté au bout des 30 minutes (durée de la session http sur mon serveur), je le vois au niveau du serveur.
Après 30 minutes, je clique sur un bouton qui affiche un message via un alert (javascript côté client), ça fonctionne nickel

Par contre j'ai un problème pour le javascript exécuté côté serveur, au bout de 30 minutes, je clique sur un autre bouton qui fait un print (javascript côté serveur) pour afficher un message dans ma console serveur, aucun message.
Je suis obligé de recharger ma page dans le navigateur avec un F5 et ensuite ça fonctionne.

Auriez-vous une idée pour que mon javascript côté serveur fonctionne toujours après ce délai de 30 minutes.

Merci d'avance pour votre aide.

Re: Session http permanente en xPage

MessagePublié: 04 Sep 2012 à 08:54
par Smicky
As tu testé en utilisant le composant "Keep alive" de l'extension library / upgrade pack 1

Re: Session http permanente en xPage

MessagePublié: 04 Sep 2012 à 09:02
par mike76
Salut Michaël,

Je n'ai pas pu tester avec le composant de l'extension library car mon client ne souhaite pas installer cette extension sur son serveur Domino.
Donc j'essaie de faire avec les moyens du bord ;-)

J'ai trouvé le code ici :
http://www-10.lotus.com/ldd/ddwiki.nsf/ ... on_Library

Re: Session http permanente en xPage

MessagePublié: 04 Sep 2012 à 09:04
par Smicky
Rho... il se prive d'un truc supporté par IBM qui apporte plein de choses... c'est un peu bête...

Re: Session http permanente en xPage

MessagePublié: 04 Sep 2012 à 09:50
par mike76
il n'y a pas un moyen à la limite de récupérer uniquement le code de ce "keep alive" dans la librairie ??

Re: Session http permanente en xPage

MessagePublié: 04 Sep 2012 à 10:36
par Smicky
Si mais bon...
Ton client sait que l'UP 1 est un truc officiel et supporté par IBM ?

Re: Session http permanente en xPage

MessagePublié: 04 Sep 2012 à 10:42
par mike76
si il le sait malheureusement mais il l'utilisera que si un jour IBM l'intègre directement dans l'installation :(

je vais essayer de le convaincre, de toute façon il n'y aucune façon de vriller le serveur ?? et l'installation doit être simple ?

Re: Session http permanente en xPage

MessagePublié: 04 Sep 2012 à 14:16
par mike76
J'ai fait complètement autrement avec un refresh partiel dans la xPage, et ça fonctionne :

Code : Tout sélectionner
   <xp:panel id="refreshPanel">
      <xp:text escape="true" id="computedField1" value="#{javascript:@Now()}">
         <xp:this.converter>
            <xp:convertDateTime type="both" timeStyle="long"></xp:convertDateTime>
         </xp:this.converter>
      </xp:text>
   </xp:panel>
   
   <xp:scriptBlock id="scriptBlock1">
      <xp:this.value>
            <![CDATA[
setInterval(function() {
    XSP.partialRefreshPost("#{id:refreshPanel}", {
        onStart: null,
        onComplete: null,
        onError: null                       
    })
}, 900000)
            ]]>
      </xp:this.value>
   </xp:scriptBlock>

Re: [Résolu]Session http permanente en xPage

MessagePublié: 04 Sep 2012 à 15:36
par Smicky
Je pense que ca ne dois pas etre trés loin de ce que fait le composant keep alive de l'extlib/up1

pour info, l'UP1 + (voir UP2) sera inclus de base dans la 8.5.4 (sortie début d'année prochaine)

Re: [Résolu]Session http permanente en xPage

MessagePublié: 04 Sep 2012 à 15:54
par mike76
super merci pour l'info !!
a+
Michaël