AnsweredAssumed Answered

[WEBSERVICE] Gérer un pool de connexion en webservice ?

Question asked by sebguillomon on Jun 17, 2009
Bonjour,

J'espère que ce message est dans la bonne partie du forum.

Voilà ma problématique : je me connecte en webservice à Alfresco et pour l'instant, à chaque action, je me connecte puis déconnecte :

SessionUtils.startSession();

try{

… code…

} catch (Exception e) {
   throw e;
} finally {
   SessionUtils.endSession();
}

avec SessionUtils :

public class SessionUtils {
   /** Espace de travail par défaut */
   public static final Store STORE = new Store(Constants.WORKSPACE_STORE,
                                    PropertiesUtils.findValueForCode(
                                       PORTAL_CONTEXT,
                                       ALFRESCO_DEFAULT_STORE) );
   /**
    * Ouverture d'une session
    *
    * @throws AuthenticationFault Erreur d'authentification
    */
   public static void startSession()throws AuthenticationFault{
      String remoteUrl = PropertiesUtils.findValueForCode(
                     PORTAL_CONTEXT,
                     ALFRESCO_REMOTE_URL);
      String user = PropertiesUtils.findValueForCode(
                  PORTAL_CONTEXT,
                  ALFRESCO_REMOTE_USER);
      String password = PropertiesUtils.findValueForCode(
                     PORTAL_CONTEXT,
                     ALFRESCO_REMOTE_PASSWORD);
      WebServiceFactory.setEndpointAddress(remoteUrl);
      AuthenticationUtils.startSession(user, password);
   }
   
   /**
    * Fermeture de la session
    */
   public static void endSession(){
      AuthenticationUtils.endSession();
   }
   
   /**
    * Renvoie l'adresse de l'espace de travail par défaut
    *
    * @return Adresse de l'espace
    */
   public static String getStorePath(){
      return STORE.getAddress();
   }
}

Mon portail qui puise des information dans Alfresco doit s'y connecter en permanence et j'aimerais optimiser les performances.

Mes questions sont les suivantes :
Y-a-t-il un timeout sur une session ou puis-je me connecter une fois pour toutes et utiliser ma session ouverte sans la refermer ?
Comment peut-on utiliser le ticket créé pour appeler les services ?
Comment peut-on savoir si notre session a expiré pour en recréer une s'il s'avère qu'il y a un timeout ?

Voilà j'espère que c'est clair ?

Merci pour votre aide.

Outcomes