Propriétés personnalisées pour la gestion de sessions
Vous pouvez définir des paramètres supplémentaires pour la gestion de sessions via les propriétés personnalisées de paramètres.
- Dans la console d'administration, cliquez sur .
- Dans Propriétés supplémentaires, cliquez sur Propriétés personnalisées.
- Dans la page Propriétés personnalisées, cliquez sur Nouveau.
- Dans la page de paramètres, entrez la propriété à configurer dans la zone Nom et la valeur à lui associer dans la zone Valeur.
- Cliquez sur Valider ou sur OK.
- Cliquez sur Sauvegarder dans la barre des tâches de la console d'administration pour sauvegarder les modifications apportées à la configuration.
- Redémarrez le serveur.
- AlwaysEncodeURL
- CheckSessionCookieNameOnEncodeURL
- checkSessionNewOnIsValidRequest
- CloneSeparator
- CloneSeparatorChange
- DebugSessionCrossover
- DelayAfterDuplicateIdException
- DelayInvalidationAlarmDuringServerStartup
- ForceSessionInvalidationMultiple
- HideSessionValues
- HttpSessionCloneId
HttpSessionEnableUnmanagedServerReplication
- HttpSessionIdLength
- HttpSessionIdReuse
- HttpSessionReaperPollInterval
- InvalidateOnUnauthorizedSessionRequestException
- NoAdditionalSessionInfo
- NoAffinitySwitchBack
- OptimizeCacheIdIncrements
- SecurityUserIgnoreCase
- Servlet21SessionCompatibility
- SessionIdentifierMaxLength
- SessionInvalidatorThreadPoolSize
- SessionRewriteIdentifier
- SessionTableName
- SessionTableSkipIndexCreation
- ThrowSecurityExceptionOnGetSessionFalse
- UseInvalidatedId
- UseOracleBLOB
- UsingApplicationSessionsAndInvalidateAll
- UsingCustomSchemaName
AlwaysEncodeURL
La Spécification Servlet 2.5 indique qu'il ne faut pas encoder l'URL sur l'appel response.encodeURL si ce n'est pas nécessaire. Pour assurer la compatibilité avec les versions antérieures lorsque le codage des URL est activé, affectez à la propriété personnalisée AlwaysEncodeURL la valeur true pour appeler la méthode encodeURL. L'URL est toujours encodée, même si le navigateur prend en charge les cookies. La propriété doit être configurée au niveau du conteneur Web.
CheckSessionCookieNameOnEncodeURL
Utilisez cette propriété pour vérifier l'existence du cookie de session HTTP lorsque vous déterminez si l'ID de session doit être codé dans l'adresse URL. Elle doit être configurée au niveau du conteneur Web.
La valeur par défaut de cette propriété est false. Lorsque vous l'associez à la valeur true, vous permettez au gestionnaire de session de vérifier l'existence du cookie de session HTTP lorsqu'il détermine si l'ID de session doit être codé dans l'adresse URL.
checkSessionNewOnIsValidRequest
Cette propriété permet d'indiquer si le serveur peut gérer plusieurs demandes de client simultanées lorsque la propriété HttpSessionIdReuse est activée. Elle doit être configurée au niveau du conteneur Web.
Par défaut, le gestionnaire de session gère une seule demande de client à un moment donné, lorsque la propriété HttpSessionIdReuse est également activée. Paramétrez checkSessionNewOnIsValidRequest sur false pour autoriser le gestionnaire de session à gérer plusieurs demandes simultanées d'un client lorsque la propriété HttpSessionIdReuse est activée. Si HttpSessionIdReuse n'est pas activée, cette propriété n'a pas d'effet.
Vous devez ensuite redémarrer le serveur afin que le changement de configuration soit pris en compte.
La valeur par défaut de cette propriété est true.
CloneSeparator
Utilisez cette propriété pour spécifier un caractère différent en tant que séparateur de clones dans des cookies de session. La valeur définie de cette propriété personnalisée doit être un caractère.
Cette propriété a été définie comme propriété personnalisée de conteneur Web dans la version 6.1, mais vous devez la définir comme propriété personnalisée de gestion de session au niveau du conteneur Web.

Le fait que n'importe quel caractère peut être spécifié comme valeur de cette propriété personnalisée n'implique pas que le caractère que vous indiquez fonctionne correctement. Ce fait n'implique pas non plus qu'IBM est responsable du traitement des incidents pouvant découler de l'utilisation d'un caractère alternatif.
bpracCloneSeparatorChange
Utilisez cette propriété pour gérer l'affinité des sessions. L'ID clone du serveur est ajouté à l'identificateur de session et est séparé par le signe deux-points (:). Sur certaines unités WAP (Wireless Application Protocol), le signe deux points (:) n'est pas autorisé. Associez cette propriété à la valeur true pour remplacer le séparateur par le signe plus (+). Elle doit être configurée au niveau du conteneur Web.
DebugSessionCrossover
La propriété personnalisée DebugSessionCrossover permet au code d'effectuer des vérifications supplémentaires pour contrôler que le processus accède ou fait référence uniquement à la session associée à la demande. En cas d'incohérences, des messages sont consignées.
Définissez la propriété sur true pour activer la détection d'erreurs de données de session.
Pour plus d'informations, voir l'article, Incidents de session HTTP.
DelayAfterDuplicateIdException
La propriété personnalisée DelayAfterDuplicateIdException indique le délai, en millisecondes, pendant lequel le gestionnaire de session doit attendre avant de tenter d'extraire une session du serveur dorsal après la survenance d'une erreur SESN0196W. Elle doit être configurée au niveau du conteneur Web.
La valeur par défaut de cette propriété est 500.
DelayInvalidationAlarmDuringServerStartup
Cette propriété permet de différer le démarrage de l'alarme d'invalidation au démarrage du serveur du nombre de secondes indiqué.
La valeur par défaut de cette propriété est 0.
ForceSessionInvalidationMultiple
La propriété personnalisée ForceSessionInvalidationMultiple indique si le gestionnaire de session doit attendre indéfiniment qu'une demande soit terminée avant de tenter d'invalider la session, ou s'il doit attendre un délai pré-défini avant d'invalider la session. La valeur par défaut de cette propriété est 3.
- Si vous spécifiez 0 (zéro) pour cette propriété, le gestionnaire de sessions
attendra indéfiniment la fin d'une demande avant de tenter d'invalider la session.
Si normalement vos demandes ne sont pas liées par une limite du temps de réponse, spécifiez 0 pour cette propriété.
- Si vous indiquez un entier positif, comme 1, 2 ou 3, pour cette propriété personnalisée, même sur la
session qui n'est pas définie comme terminée, le gestionnaire de session tentera d'invalider la session au terme du délai indiqué après la dernière tentative d'accès. L'on obtient ce délai en multipliant la valeur spécifiée pour cette propriété et la valeur spécifiée pour la propriété Session
Timeout. Ainsi, si vous spécifiez 2 minutes pour la propriété Session Timeout
et 2 pour la propriété ForceSessionInvalidationMultiple, le gestionnaire de sessions
tentera d'invalider la session au bout de 4 minutes.
Si vous voulez invalider vos sessions au bout d'un certain laps de temps, spécifiez pour cette propriété l'entier positif qui convient.
HideSessionValues
La propriété personnalisée HideSessionValues empêche la consignation de valeurs d'attribut de session dans les traces du gestionnaire de session. Elle doit être configurée au niveau du conteneur Web.
Les applications stockent ces valeurs d'attribut de session. La valeur par défaut est true.
HttpSessionCloneId
Utilisez cette propriété pour modifier l'ID clone d'un membre du cluster. Cet ID doit être unique au sein d'un cluster pour assurer l'affinité des sessions. Une fois défini, ce nom remplace le nom par défaut généré par WebSphere Application Server. Elle doit être configurée au niveau du conteneur Web.
Longueur de l'ID clone par défaut: 8 ou 9
Longueur de l'ID clone par défaut : 40
![[z/OS]](../images/ngzos.gif)
HttpSessionEnableUnmanagedServerReplication
Définissez cette propriété personnalisée sur true si vous souhaitez activer la reprise en ligne du serviteur en répliquant les données de session dans un espace de données géré par un contrôleur. La valeur par défaut est false.
HttpSessionIdLength
Utilisez cette propriété pour configurer la longueur de l'identificateur de session. N'utilisez pas de valeur trop faible. Une valeur trop faible limite le nombre de combinaisons possibles et augmente les risques d'identification de la valeur choisie. Dans un cluster, tous les membres doivent être configurés avec un ID de même longueur. Plage autorisée : 8 à 128. Longueur par défaut : 23. Elle doit être configurée au niveau du conteneur Web.
HttpSessionIdReuse
La propriété HttpSessionIdReuse permet d'indiquer si le gestionnaire de session peut utiliser l'ID de session transmis depuis un navigateur pour préserver les données de la session pour toutes les applications Web exécutées au sein d'un environnement sur lequel la persistance des sessions n'est pas activée. Elle doit être configurée au niveau du conteneur Web.
Dans un environnement à plusieurs machines virtuelles Java sur lequel la persistance des sessions n'est pas configurée, le fait de définir cette propriété sur true permet au gestionnaire de sessions d'utiliser les mêmes informations de session pour l'ensemble des requêtes d'un utilisateur, même si les applications Web traitant ces requêtes sont gérées par différentes machines virtuelles Java. La valeur par défaut de cette propriété est false. Paramétrez cette propriété surtrue si vous souhaitez permettre au gestionnaire de sessions d'utiliser l'ID de session transmis depuis un navigateur pour préserver les données de la session pour toutes les applications Web exécutées au sein d'un environnement sur lequel la persistance des sessions n'est pas activée.
![[z/OS]](../images/ngzos.gif)
ExtendedMessage: BBOO0220E: SessionContext:createSession - call to
establishAffinity for id numéro_ID failed with rc 4
HttpSessionReaperPollInterval
Utilisez cette propriété pour indiquer, en secondes, l'intervalle d'activation du processus chargé de supprimer les sessions non autorisées. La valeur spécifiée pour cette propriété remplace la valeur de l'installation par défaut, qui est comprise entre 30 et 360 secondes et garantit l'exécution du processus du collecteur à un intervalle spécifique.
Si l'intervalle d'inactivité maximal est inférieur à 2 minutes, l'intervalle d'interrogation du collecteur est généralement compris entre 30 et 60 secondes.
Si l'intervalle d'inactivité maximal est compris entre 2 minutes et 15 minutes, l'intervalle d'interrogation du collecteur est généralement compris entre 30 et 60 secondes.
Si l'intervalle d'inactivité maximal est compris entre 15 minutes et 30 minutes, l'intervalle d'interrogation du collecteur est généralement compris entre 120 et 180 secondes.
Si l'intervalle d'inactivité maximal est supérieur à 30 minutes, l'intervalle d'interrogation du collecteur est généralement compris entre 240 et 300 secondes.
Etant donné que le délai d'expiration par défaut et l'intervalle d'inactivité maximal sont de 30 minutes, l'intervalle du collecteur est généralement compris entre 2 et 3 minutes.
Par exemple, vous pouvez choisir d'utiliser cette propriété si vous voulez que les sessions ayant dépassé le délai d'expiration d'installation soient invalidées à une fréquence de plus 2 ou 3 minutes. Si vous spécifiez HttpSessionReaperPollInterval=120, les sessions sont invalidées dans les 2 minutes suivant l'expiration.
La valeur minimale de cette propriété est de 30 secondes. Si une valeur inférieure à la valeur minimale est entrée, la propriété spécifiée est ignorée et une valeur appropriée est automatiquement déterminée et utilisée. L'intervalle d'inactivité maximal correspond au délai d'expiration de la session. La valeur par défaut repose sur l'intervalle d'inactivité maximal défini dans la gestion de session.
InvalidateOnUnauthorizedSessionRequestException
Affectez à cette propriété la valeur true si, en réponse à une demande non autorisée, vous souhaitez que le gestionnaire de session invalide une session au lieu d'émettre un message d'erreur UnauthorizedSessionRequestException.
Lorsqu'une session est invalidée, le demandeur peut créer une session mais n'a accès à aucune des données de session précédemment enregistrées. Cette invalidation permet à un seul utilisateur de continuer de traiter les demandes après une déconnexion, tout en protégeant les données de session.
Par défaut, cette propriété a la valeur false.
NoAdditionalSessionInfo
Affectez la valeur true à cette propriété pour forcer la suppression des informations inutiles dans les identificateurs de session. Elle doit être configurée au niveau du conteneur Web.
NoAffinitySwitchBack
Affectez à cette propriété la valeur true pour conserver l'affinité avec le nouveau membre, même après la restauration du membre d'origine. Lorsqu'un membre du cluster est défectueux, ses demandes sont acheminées vers un autre membre et les sessions sont activées dans cet autre membre. L'affinité de session est maintenue avec le nouveau membre. Lorsque le membre défaillant est est de nouveau opérationnel, les demandes de sessions créées dans le membre d'origine lui sont réacheminées. Les valeurs autorisées sont true ou false, false étant la valeur par défaut. Elle doit être configurée au niveau du conteneur Web.
Associez cette propriété à la valeur true lorsque les sessions réparties sont configurées avec une écriture basée sur l'heure. Lors de l'utilisation de la réplication de session mémoire à mémoire, définissez la propriété personnalisée HttpSessionCloneId de manière à activer le retour d'affinité. Notez que cette propriété n'a aucun impact sur le comportement lorsque les sessions distribuées ne sont pas activées.
OptimizeCacheIdIncrements
Affectez à la propriété personnalisée OptimizeCacheIdIncrements la valeur true pour que le gestionnaire de session évalue si la session en mémoire pour un module Web est plus ancienne que la copie dans le stockage permanent. Cette propriété résout l'augmentation continue des ID en cache.
Si la gestion de session HTTP est configurée pour utiliser la persistance des sessions et que la session du navigateur de l'utilisateur va et vient entre de multiples applications Web, vous constaterez sans doute une activité supplémentaire dans le stockage permanent car les sessions en mémoire pour un module Web sont rafraîchies à partir du stockage permanent. En conséquence, les ID en cache augmentent constamment et les attributs de la session en mémoire sont écrasées par ceux de la copie persistante. Attribuez à cette propriété la valeur true si vous souhaitez éviter l'augmentation permanente des ID en cache.
Dans une configuration en cluster, vérifiez que chaque membre du cluster a la même heure système.
SecurityUserIgnoreCase
Affectez la valeur true à cette propriété si vous souhaitez que l'identité de sécurité de niveau session et l'identité de sécurité client soient considérées comme étant concordantes même si leurs casses sont différentes.
Lorsque un utilisateur configure l'intégration de la sécurité de niveau session, le gestionnaire de session compare l'identité de sécurité du propriétaire de la session avec l'identité de sécurité de la demande du client. Comme une distinction entre majuscules et minuscules est opérée dans les critères de correspondance, si ces deux identités ne correspondent pas exactement, une exception UnauthorizedSessionRequestException est renvoyée au client.
Si, dans certaines situations, vous souhaitez que l'identité de sécurité de niveau session et la sécurité d'identité du client soient considérées comme étant concordantes même si leurs casses sont différentes, ajoutez la propriété personnalisée SecurityUserIgnoreCase à vos paramètres de configuration de conteneur Web et paramétrez la propriété sur true. Si cette propriété a la valeur true, une exception UnauthorizedSessionRequestException n'est pas générées si l'identité de sécurité de niveau session et la sécurité d'identité du client sont identiques à l'exception de leurs casses. Par exemple, si cette propriété est définie sur true, l'identité de sécurité de niveau session UTILISATEUR1 correspond aux identités de sécurité de client Utilisateur1 et utilisateur1.
Servlet21SessionCompatibility
Associez cette propriété personnalisée à la valeur true pour activer le comportement de session global. Dans Servlet 2.2 et versions ultérieures, la portée des sessions est le module Web. La valeur par défaut est false.

SessionIdentifierMaxLength
Utilisez cette valeur pour définir la longueur maximale d'un identificateur de session. Elle doit être configurée au niveau du conteneur Web.
Dans un cluster, en raison de la reprise qui se produit lors d'une requête émise vers un nouveau membre de cluster, la gestion de session ajoute un nouvel ID clone à l'ID clone existant. Dans un cluster important, si des serveurs sont défectueux plus fréquemment, il est possible que la longueur de l'identificateur de session réduise trop l'espace prévu pour l'URL. Cette propriété permet de retrouver la condition et de prendre les actions appropriées pour résoudre les reprises de serveurs. Si l'option est définie, un message est consigné lorsque la longueur maximale est atteinte. Valeur autorisée : entier.
SessionInvalidatorThreadPoolSize
Indique la taille maximale du pool d'unités d'exécution pour les unités d'exécution qui collectent les sessions non valides ayant expiré. Ces unités d'exécution sont chargées de prévenir les autres serveurs si les sessions sont distribuées et de nettoyer les éventuelles références locales à ces sessions. Si la fréquence d'expiration des sessions est plus élevée en raison d'un intervalle de délai d'attente réduit et si le nombre de sessions est plus élevé en raison d'un trafic important, le nombre de ces unités d'exécution doit être supérieur.
La valeur par défaut est 50. La valeur minimale est 20 et la valeur maximale est 100.
SessionRewriteIdentifier
Cette propriété permet de modifier la clé utilisée pour la réécriture d'URL. La clé par défaut est jsessionid.
SessionTableName
Utilisez cette propriété personnalisée pour définir le nom de la table de base de données. Valeur admise : chaîne. La valeur par défaut est SESSIONS.
Certaines applications s'appuient sur la méthode ejbCreate(...) pour la création du bean entity dans la base de données. Dans ce cas, l'association de la propriété JVM com.ibm.websphere.ejbcontainer.allowEarlyInsert à la valeur true remplace le comportement par défaut.
SessionTableSkipIndexCreation
Cette propriété permet de désactiver la création d'index au démarrage du serveur.
Cette propriété personnalisée doit être utilisée uniquement si vous souhaitez créer manuellement vos propres index de base de données pour la persistance de session. Il est cependant conseillé de laisser le gestionnaire de sessions créer les index de base de données.
Pour activer cette propriété, accédez à la page des propriétés personnalisées de gestion de sessions dans la console d'administration, entrez le nom de propriété SessionTableSkipIndexCreation puis attribuez-lui la valeur true. Avant d'activer cette propriété, assurez-vous que l'index correct existe sur votre base de données de sessions.
ThrowSecurityExceptionOnGetSessionFalse
Associez cette propriété personnalisée à la valeur false pour que la gestion de session puisse renvoyer une valeur de session null au lieu d'une exception UnauthorizedSessionrequestException. La valeur par défaut est true.
UseInvalidatedId
Associez cette propriété personnalisée à la valeur true pour réutiliser l'ID entrant si la session associée à cet ID a été invalidée récemment. Vous optimiserez ainsi les performances en empêchant la vérification du stockage permanent. La valeur par défaut est true.
UseOracleBLOB
La propriété personnalisée UseOracleBLOB crée la table de bases de données des sessions HTTP à l'aide d'un type de données BLOB (Binary Large Object) pour la colonne intermédiaire. Cette propriété augmente les performances des sessions persistantes lorsque des bases de données Oracle sont utilisées. En raison d'une restriction liée à Oracle, le support BLOB requiert l'utilisation du pilote de base de données OCI (Oracle Call Interface) d'Oracle pour des données supérieures à 4000 octets. Vous devez également vérifier qu'une nouvelle table de sessions est créée avant le redémarrage du serveur en supprimant les anciennes tables de session ou en modifiant la définition de la source de données pour référencer une base de données qui ne contient pas de table de sessions.
Nom | Valeur |
---|---|
UseOracleBLOB | true |
UsingApplicationSessionsAndInvalidateAll
Lors de l'appel à la méthode invalidateAllSet, tous les objets IBMApplicationSessions ne sont pas vérifiés. Si vous utilisez à la fois l'objet IBMApplicationSessions et l'appel invalidateAll, utilisez la paire valeur-nom suivante :
Nom | Valeur |
---|---|
UsingApplicationSessionsAndInvalidateAll | true |
UsingCustomSchemaName
Utilisez cette propriété pour vérifier que le gestionnaire de sessions détecte la table de sessions lors des démarrages suivants du serveur.
Attribuez la valeur true à cette propriété personnalisée pour la persistance des sessions. La propriété customSchema n'a pas la valeur par défaut dans le pilote JDBC DB2.
La valeur par défaut est false.