Configuration du gestionnaire de sessions HTTP avec WebSphere Application Server

Alors que WebSphere Application Server offre une fonction de gestion de session, les performances se dégradent alors que le nombre de demandes augmente. WebSphere eXtreme Scale est livré avec une implémentation de la gestion des sessions qui fournit la réplication de sessions, la haute disponibilité, une meilleure évolutivité et des options de configuration plus robustes.

Avant de commencer

Pourquoi et quand exécuter cette tâche

Le gestionnaire de sessions HTTP de WebSphere eXtreme Scale prend en charge les serveurs imbriqués et éloignés pour la mise en cache.
  • Scénario de serveurs imbriqués

    Dans ce scénario, les serveurs WebSphere eXtreme Scale sont regroupés dans les processus où les servlets sont exécutés. Le gestionnaire de sessions peut communiquer directement avec l'instance ObjectGrid locale, pour éviter les retards coûteux du réseau.

    Si vous utilisez WebSphere Application Server, placez dans les répertoires META-INF de vos fichiers d'archive Web (WAR) les fichiers rép_base_wxs/session/samples/objectGrid.xml et rép_base_wxs/session/samples/objectGridDeployment.xml fournis. eXtreme Scale détecte automatiquement ces fichiers au démarrage de l'application et démarre automatiquement les conteneurs eXtreme Scale dans le même processus que le gestionnaire de sessions.

    Vous pouvez modifier le fichier objectGridDeployment.xml suivant que vous souhaitiez utiliser une réplication synchrone ou asynchrone et en fonction du nombre de fragments réplique à configurer.

  • Scénario de serveurs éloignés

    Dans les scénarios de serveurs distants, les serveurs de conteneur s'exécutent dans des processus différents que les servlets. Le gestionnaire de sessions communique avec un serveur de conteneur distant. Pour pouvoir utiliser un serveur distant connecté à un réseau, le gestionnaire de sessions doit être configuré avec les noms d'hôte et les numéros de port du domaine de service de catalogue. Le gestionnaire de sessions utilise ensuite une connexion client eXtreme Scale pour communiquer avec le serveur de catalogues et avec les serveurs de conteneur.

    Si les serveurs de conteneur sont démarrés dans des processus autonomes indépendants, démarrez les conteneurs eXtreme Scale avec les fichiers objectGridStandAlone.xml et objectGridDeploymentStandAlone.xml fournis dans le répertoire des exemples du gestionnaire de sessions.

Procédure

  1. Raccordez votre application de sorte qu'elle puisse utiliser le gestionnaire de sessions. Pour utiliser le gestionnaire de sessions, vous devez ajouter les déclarations de filtre appropriées aux descripteurs de déploiement Web de l'application. En outre, les paramètres de configuration du gestionnaire de sessions sont transmis au gestionnaire de sessions sous la forme de paramètres d'initialisation du contexte de servlet dans les descripteurs de déploiement. Vous pouvez introduire ces informations dans votre application de différentes manières :
    • Raccord automatique avec WebSphere Application Server

      Vous pouvez configurer votre application pour qu'elle utilise un gestionnaire WebSphere eXtreme Scale de sessions HTTP lorsque vous installez votre application. Vous pouvez également modifier la configuration de l'application ou du serveur pour qu'ils utilisent le gestionnaire WebSphere eXtreme Scale de sessions HTTP. Pour plus d'informations, voir Fractionnement automatique des applications pour la gestion de session HTTP dans WebSphere Application Server.

    • Raccord automatique de l'application avec des propriétés personnalisées

      Vous n'avez pas besoin de raccorder manuellement vos applications lorsqu'elles s'exécutent dans WebSphere Application Server ou dans WebSphere Application Server Network Deployment.

      Ajoutez une propriété personnalisée à une cellule ou à un serveur pour définir à cette étendue le fichier splicer.properties pour toutes les applications Web. Utilisez les étapes suivantes pour configurer la propriété personnalisée :

      1. Dans la console d'administration de WebSphere Application Server, accédez au chemin correct de l'endroit où vous voulez définir la propriété personnalisée pour indiquer l'emplacement du fichier splicer.properties.
        • Pour définir la propriété personnalisée pour toutes les applications ou pour une application spécifique, cliquez sur Administration du système > Cellule > Propriétés personnalisées.
        • Pour définir la propriété personnalisée à appliquer à toutes les applications sur un serveur d'applications spécifique, cliquez sur Serveur d'applications > <nom_serveur> > Administration > Propriétés personnalisées. Le nom de propriété est com.ibm.websphere.xs.sessionFilterProps et sa valeur se trouve dans le fichier splicer.properties dont a besoin votre application. Exemple de chemin d'emplacement d'un fichier : /opt/splicer.properties.
      2. Ajoutez la propriété personnalisée com.ibm.websphere.xs.sessionFilterProps. La valeur de cette propriété personnalisée indique l'emplacement du fichier splicer.properties à éditer. Le fichier existe dans le gestionnaire_déploiement. Si vous voulez indiquer le fichier splicer.properties pour une application spécifique à l'aide d'une propriété personnalisée au niveau de la cellule, entrez le nom de la propriété personnalisée comme <application_name>,com.ibm.websphere.xs.sessionFilterProps, où application_name est le nom de l'application pour laquelle vous voulez appliquer la propriété personnalisée.
      Important : Vérifiez que le fichier mis à jour splicer.properties se trouve dans le même chemin sur tous les noeuds contenant un serveur d'applications hébergeant l'application ou les applications qui sont à raccorder pour la réplication de session.

      Les portées de cellule, de serveur et d'application sont les seules portées disponibles lors d'une exécution dans un gestionnaire de déploiement. Si vous avez besoin d'une autre portée, raccordez manuellement vos applications Web.

      A faire : Notez aussi que le raccordement automatique ne fonctionne que si tous les noeuds exécutant l'application contiennent le fichier splicer.properties dans le même chemin. Dans le cas d'environnements mixtes contenant des noeuds Windows et UNIX, cette manière de procéder n'est pas possible et vous devez raccorder manuellement l'application.
    • Raccorder l'application avec le script addObjectGridFilter
      Utilisez un script de ligne de commande fourni avec eXtreme Scale pour raccorder une application avec des déclarations de filtre et une configuration sous forme de paramètres d'initialisation de contexte de servlet. Pour un déploiement WebSphere Application Server, ce script se trouve dans <was_home>/optionalLibraries/ObjectGrid/session/bin/addObjectGridFilter.bat/sh. Pour un déploiement autonome, le script se trouve dans WXS_HOME/ObjectGrid/session/bin/addObjectGridFilter.sh/bat. Le script oddObjectGridFilter utilise deux paramètres :
      • Application : chemin absolu du fichier archive d'entreprise à raccorder
      • Chemin absolu du fichier de propriétés du raccordeur qui contient des propriétés de configuration.

      Voici le format du script :

      [Windows]
      addObjectGridFilter.bat [ear_file] [splicer_properties_file]
      [Unix]
      addObjectGridFilter.sh [ear_file] [splicer_properties_file]
      [Unix] Exemple en utilisant eXtreme Scale installé sur WebSphere Application Server sur UNIX :
      1. cd rép_base_wxs/optionalLibraries/ObjectGrid/session/bin
      2. addObjectGridFilter.sh /tmp/mySessionTest.ear racine_was/optionalLibraries/ObjectGrid/session/samples/splicer.properties

      [Unix] Exemple en utilisant eXtreme Scale installé dans un répertoire autonome sur UNIX :

      1. cd racine_was/session/bin
      2. addObjectGridFilter.sh /tmp/mySessionTest.ear racine_was/session/samples/splicer.properties
      Le filtre de servlet qui est raccordé conserve les valeurs de configuration par défaut. Vous pouvez remplacer ces valeurs par défaut par des options de configuration que vous spécifiez dans le fichier de propriétés, dans le second argument. Pour une liste des paramètres que vous pouvez utiliser, voir Paramètres d'initialisation du contexte de servlet.

      Vous pouvez modifier et utiliser l'exemple de fichier splicer.properties fourni avec l'installation d'eXtreme Scale. Vous pouvez également utiliser le script addObjectGridServlets, qui insère le gestionnaire de sessions en étendant chaque servlet. Mais le script recommandé est le script addObjectGridFilter.

    • Raccorder manuellement l'application avec le script de génération Ant
      WebSphere eXtreme Scale est fourni avec un fichier build.xml qui peut être utilisé par Apache Ant, qui est inclus dans le dossier racine_was/bin d'une installation WebSphere Application Server. Vous pouvez modifier le fichier build.xml pour changer les propriétés de configuration du gestionnaire de sessions. Les propriétés de configuration sont identiques aux noms de propriété dans le fichier splicer.properties. Pour modifier le fichier build.xml, appelez le processus Ant en exécutant la commande suivante :
      • [Unix] ant.sh, ws_ant.sh
      • [Windows] ant.bat, ws_ant.bat
      (UNIX) ou (Windows).
    • Mettre à jour manuellement le descripteur Web

      Editez le fichier web.xml intégré à l'application Web pour incorporer la déclaration de filtre, son mappage de servlet et les paramètres d'initialisation du contexte de servlet. N'utilisez pas cette méthode car elle est source d'erreurs possibles.

    Pour une liste des paramètres que vous pouvez utiliser, voir Paramètres d'initialisation du contexte de servlet.
  2. Déployez l'application. Déployez l' application à l'aide de votre procédure normale pour un serveur ou un cluster. Une fois que vous avez déployé l'application, vous pouvez la démarrer.
  3. Accédez à l'application. Vous pouvez maintenant accéder à l'application, qui interagit avec le gestionnaire de sessions et WebSphere eXtreme Scale.

Que faire ensuite

Vous pouvez modifier la majorité des attributs de configuration du gestionnaire de sessions lorsque vous instrumentez votre application pour utiliser le gestionnaire de sessions. Ces attributs sont : réplication synchrone ou asynchrone, taille de la table de session en mémoire, etc. En dehors des attributs modifiables lors de l'instrumentation de l'application, les seuls autres attributs de configuration que vous pouvez modifier après le déploiement de l'application sont ceux liés à la topologie des clusters de serveurs WebSphere eXtreme Scale et à la manière dont leurs clients (gestionnaires de sessions) s'y connectent.
Comportement de scénarios distant : si la grille de données complète qui héberge les données de sessions d'application est inaccessible à partir du client du conteneur Web, le client utilise le conteneur Web de base dans WebSphere Application Server pour la gestion des sessions. La grille de données peut être inaccessible dans les scénarios suivants :
  • Problème de réseau entre le conteneur Web et les serveurs de conteneur distants.
  • Arrêt des processus serveur de conteneur distant
Le nombre de références de session conservées en mémoire, spécifié par le paramètre sessionTableSize , est toujours maintenu lorsque les sessions sont stockées dans le conteneur Web de base. Les sessions les moins utilisées sont invalidés à partir du cache de session du conteneur Web lorsque la valeur sessionTableSize est dépassée. Si la grille de données distante devient disponible, les sessions ayant été invalidées à partir du cache du conteneur Web peuvent extraire les données de la grille de données distante et charger les données dans une nouvelle session. Si l'ensemble de la grille de données distante n'est pas disponible et que la session est invalidée dans le cache de session, les données de session utilisateur sont perdues. Compte tenu de ce problème, n'arrêtez pas l'ensemble de la grille de données distante de production lorsque le système est chargé.