Lorsque vous démarrez un serveur de conteneur qui stocke les données de session HTTP,
vous pouvez utiliser les fichiers XML par défaut ou spécifier des fichiers XML personnalisés. Ces fichiers créent des noms ObjectGrid spécifiques, un nombre de répliques, etc.
Emplacement des fichiers d'exemples
Ces fichiers XML sont regroupés dans
racine_install_wxs/ObjectGrid/session/samples pour une installation autonome ou
racine_was/optionalLibraries/ObjectGrid/session/samples pour
WebSphere eXtreme Scale installé dans une cellule
WebSphere
Application Server.
Package XML intégré
Si vous configurez un scénario intégré, le serveur de conteneur commence dans le groupe de serveurs de Web. Utilisez le fichier
objectGrid.xml et le fichier
objectGridDeployment.xml fournis par défaut. Vous pouvez mettre à jour ces fichiers pour personnaliser le comportement du gestionnaire de session HTTP.
Figure 1. Fichier objectGrid.xml<?xml version="1.0" encoding="UTF-8"?>
<objectGridConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://ibm.com/ws/objectgrid/config ../objectGrid.xsd" xmlns="http://ibm.com/ws/objectgrid/config">
<objectGrids>
<objectGrid name="session" txTimeout="30">
<bean id="ObjectGridEventListener" className="com.ibm.ws.xs.sessionmanager.SessionHandleManager"/>
<backingMap name="objectgridSessionMetadata" pluginCollectionRef="objectgridSessionMetadata" readOnly="false"
lockStrategy="PESSIMISTIC" ttlEvictorType="LAST_ACCESS_TIME" timeToLive="3600" copyMode="NO_COPY"/>
<backingMap name="objectgridSessionAttribute.*" template="true" readOnly="false" lockStrategy="PESSIMISTIC"
ttlEvictorType="NONE" copyMode="NO_COPY"/>
<backingMap name="objectgridSessionTTL.*" template="true" readOnly="false" lockStrategy="PESSIMISTIC"
ttlEvictorType="LAST_ACCESS_TIME" timeToLive="3600" copyMode="NO_COPY"/>
</objectGrid>
</objectGrids>
<backingMapPluginCollections>
<backingMapPluginCollection id="objectgridSessionMetadata">
<bean id="MapEventListener" className="com.ibm.ws.xs.sessionmanager.MetadataMapListener"/>
</backingMapPluginCollection>
</backingMapPluginCollections>
</objectGridConfig>
- Valeurs que vous pouvez modifier :
- Attribut de nom ObjectGrid
- La valeur doit correspondre aux valeurs suivantes dans les autres fichiers de configuration :
- La propriété objectGridName dans le fichier splicer.properties qui est utilisé pour raccorder l'application Web.
- L'attribut objectgridName dans le fichier objectGridDeployment.xml.
Si vous disposez de plusieurs applications et voulez stocker les données de session dans des grilles de données différentes, ces applications doivent avoir des valeurs d'attribut de nom ObjectGrid différentes.
- Attribut ObjectGrid txTimeout
- Cette valeur détermine le nombre de secondes pendant lequel une transaction peut être ouverte avant que le serveur de conteneur déclenche la fasse expirer.
La valeur par défaut est 30 secondes et elle peut être changée en fonction de l'environnement.
Si la persistance de session HTTP est configurée avec une valeur de paramètre d'initialisation de contexte de servlet replicationInterval supérieure à zéro, les transactions sont traitées par lots dans une unité d'exécution. Si la propriété replicationInterval a la valeur 0, une transaction démarre généralement lorsqu'une application Web extrait un objet HttpSession valide. La transaction valide la fin de la demande d'application Web. Si l'environnement a des demandes qui durent plus de 30 secondes, définissez cette valeur en conséquence.
- Valeurs que vous ne pouvez pas changer :
- ObjectGridEventListener
- La ligne ObjectGridEventListener ne peut pas être modifiée et elle est utilisée en interne.
- objectgridSessionMetadata
- La ligne objectgridSessionMetadata fait référence à la mappe où sont stockées les métadonnées de session HTTP. Il existe une entrée pour chaque session HTTP stockée dans la grille de données dans cette mappe.
- objectgridSessionTTL.*
- Cette valeur ne peut pas être modifiée et elle est réservée à une utilisation future.
- objectgridSessionAttribute.*
- Le texte objectgridSessionAttribute.* définit une mappe dynamique. Cette valeur est utilisée pour créer la mappe où sont stockés les attributs de session HTTP lorsque le paramètre fragmentedSession a la valeur true dans le fichier splicer.properties.
Cette mappe dynamique s'appelle objectgridSessionAttribute.*.
Une autre mappe est créée en fonction de ce modèle appelé objectgridSessionAttributeEvicted qui stocke les sessions qui ont expiré lorsque le conteneur Web n'a pas invalidé.
La ligne
MapEventListener est interne et ne peut pas être modifiée.
Figure 2. Fichier objectGridDeployment.xml<?xml version="1.0" encoding="UTF-8"?>
<deploymentPolicy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://ibm.com/ws/objectgrid/deploymentPolicy ../deploymentPolicy.xsd"
xmlns="http://ibm.com/ws/objectgrid/deploymentPolicy">
<objectgridDeployment objectgridName="session">
<mapSet name="sessionMapSet" numberOfPartitions="5" minSyncReplicas="0" maxSyncReplicas="0"
maxAsyncReplicas="1" developmentMode="false" placementStrategy="PER_CONTAINER">
<map ref="objectgridSessionMetadata"/>
<map ref="objectgridSessionAttribute.*"/>
<map ref="objectgridSessionTTL.*"/>
</mapSet>
</objectgridDeployment>
</deploymentPolicy>
- Valeurs que vous pouvez modifier :
- Attribut de nom ObjectGrid
- La valeur doit correspondre aux valeurs suivantes dans les autres fichiers de configuration :
- La propriété objectGridName dans le fichier splicer.properties qui est utilisé pour raccorder l'application Web.
- L'attribut name dans le fichier objectGrid.xml.
Si vous disposez de plusieurs applications et voulez stocker les données de session dans des grilles de données différentes, ces applications doivent avoir des valeurs d'attribut de nom ObjectGrid différentes.
- Attributs d'élément mapSet
- Vous pouvez changer toutes les propriétés mapSet, sauf pour l'attribut placementStrategy.
- Name
- Peut être mis à jour avec n'importe quelle valeur.
- numberOfPartitions
- Spécifie le nombre de partitions primaires qui sont démarrées sur chacun des serveurs
hébergeant l'application Web. Au fur et à mesure que l'on ajoute des partitions,
les données sont de plus en plus réparties dans l'éventualité d'un basculement. La valeur par défaut est 5 partitions ; elle convient pour la plupart des applications.
- minSyncReplicas, maxSyncReplicas et maxAsyncReplicas
- Spécifient le nombre et le type des fragments réplique qui stockent
les données de session HTTP. La valeur par défaut est 1 réplique asynchrone, ce qui convient pour la plupart des applications. La réplication synchrone intervient pendant le chemin de demande, ce qui peut augmenter les temps de réponse de l'application Web.
- developmentMode
- Informe le service de placement eXtreme Scale si les fragments réplique d'une partition
peuvent être positionnés sur le même noeud que leur fragment primaire. La valeur peut être définie comme true dans un environnement de développement,
mais il est conseillé de désactiver cette fonction en environnement de production en raison des risques de pertes de données que pourrait provoquer
une défaillance du noeud.
- placementStrategy
- Ne modifiez pas la valeur de cet attribut.
Le reste du fichier se réfère aux mêmes noms de mappes que dans le fichier objectGrid.xml. Ces noms ne peuvent pas être modifiés.
Valeurs non modifiables : - L'attribut placementStrategy dans l'élément mapSet.
Package XML distant
Lorsque vous utilisez le mode distant dans lequel les conteneurs s'exécutent comme des processus autonomes, vous devez utiliser le fichier
objectGridStandAlone.xml et le fichier
objectGridDeploymentStandAlone.xml pour démarrer les processus. Vous pouvez modifier ces fichiers pour adapter la configuration.
Figure 3. objectGridStandAlone.xml file<?xml version="1.0" encoding="UTF-8"?>
<objectGridConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://ibm.com/ws/objectgrid/config ../objectGrid.xsd"
xmlns="http://ibm.com/ws/objectgrid/config">
<objectGrids>
<objectGrid name="session" txTimeout="30">
<bean id="ObjectGridEventListener" className="com.ibm.ws.xs.sessionmanager.SessionHandleManager"/>
<backingMap name="objectgridSessionMetadata" pluginCollectionRef="objectgridSessionMetadata"
readOnly="false" lockStrategy="PESSIMISTIC" ttlEvictorType="LAST_ACCESS_TIME" timeToLive="3600"
copyMode="COPY_TO_BYTES"/>
<backingMap name="objectgridSessionAttribute.*" template="true" readOnly="false" lockStrategy="PESSIMISTIC"
ttlEvictorType="NONE" copyMode="COPY_TO_BYTES"/>
<backingMap name="objectgridSessionTTL.*" template="true" readOnly="false" lockStrategy="PESSIMISTIC"
ttlEvictorType="LAST_ACCESS_TIME" timeToLive="3600" copyMode="COPY_TO_BYTES"/>
</objectGrid>
</objectGrids>
<backingMapPluginCollections>
<backingMapPluginCollection id="objectgridSessionMetadata">
<bean id="MapEventListener" className="com.ibm.ws.xs.sessionmanager.MetadataMapListener"/>
</backingMapPluginCollection>
</backingMapPluginCollections>
</objectGridConfig>
- Valeurs que vous pouvez changer :
- Attribut de nom ObjectGrid
- La valeur doit correspondre aux valeurs suivantes dans les autres fichiers de configuration :
- La propriété objectGridName dans le fichier splicer.properties qui est utilisé pour raccorder l'application Web.
- L'attribut objectgridName dans le fichier objectGridStandAlone.xml.
Si vous disposez de plusieurs applications et voulez stocker les données de session dans des grilles de données différentes, ces applications doivent avoir des valeurs d'attribut de nom ObjectGrid différentes.
- Attribut ObjectGrid txTimeout
- Cette valeur détermine le nombre de secondes pendant lequel une transaction peut être ouverte avant que le serveur de conteneur déclenche la fasse expirer.
La valeur par défaut est 30 secondes et elle peut être changée en fonction de l'environnement.
Si la persistance de session HTTP est configurée avec une valeur de paramètre d'initialisation de contexte de servlet replicationInterval supérieure à zéro, les transactions sont traitées par lots dans une unité d'exécution. Si la propriété replicationInterval a la valeur 0, une transaction démarre généralement lorsqu'une application Web extrait un objet HttpSession valide. La transaction valide la fin de la demande d'application Web. Si l'environnement a des demandes qui durent plus de 30 secondes, définissez cette valeur en conséquence.
- Valeurs que vous ne pouvez pas changer :
- ObjectGridEventListener
- La ligne ObjectGridEventListener ne peut pas être modifiée et elle est utilisée en interne.
- objectgridSessionMetadata
- La ligne objectgridSessionMetadata fait référence à la mappe où sont stockées les métadonnées de session HTTP. Il existe une entrée pour chaque session HTTP stockée dans la grille de données dans cette mappe.
- objectgridSessionTTL.*
- Cette valeur ne peut pas être modifiée et elle est réservée à une utilisation future.
- objectgridSessionAttribute.*
- Le texte objectgridSessionAttribute.* définit une mappe dynamique. Cette valeur est utilisée pour créer la mappe où sont stockés les attributs de session HTTP lorsque le paramètre fragmentedSession a la valeur true dans le fichier splicer.properties.
Cette mappe dynamique s'appelle objectgridSessionAttribute.*.
Une autre mappe est créée en fonction de ce modèle appelé objectgridSessionAttributeEvicted qui stocke les sessions qui ont expiré lorsque le conteneur Web n'a pas invalidé.
Le ligne
MetadataMapListener est une ligne interne et elle ne peut pas être modifiée.
Figure 4. objectGridDeploymentStandAlone.xml file<?xml version="1.0" encoding="UTF-8"?>
<deploymentPolicy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://ibm.com/ws/objectgrid/deploymentPolicy ../deploymentPolicy.xsd"
xmlns="http://ibm.com/ws/objectgrid/deploymentPolicy">
<objectgridDeployment objectgridName="session">
<mapSet name="sessionMapSet" numberOfPartitions="5" minSyncReplicas="0" maxSyncReplicas="0"
maxAsyncReplicas="1" developmentMode="false" placementStrategy="PER_CONTAINER">
<map ref="objectgridSessionMetadata"/>
<map ref="objectgridSessionAttribute.*"/>
<map ref="objectgridSessionTTL.*"/>
</mapSet>
</objectgridDeployment>
</deploymentPolicy>
- Valeurs que vous pouvez modifier :
- Attribut objectgridName
- La valeur doit correspondre aux valeurs suivantes dans les autres fichiers de configuration :
- La propriété objectGridName dans le fichier splicer.properties qui est utilisé pour raccorder l'application Web.
- L'attribut name dans le fichier objectGrid.xml.
Si vous disposez de plusieurs applications et voulez stocker les données de session dans des grilles de données différentes, ces applications doivent avoir des valeurs d'attribut de nom ObjectGrid différentes.
- Attributs d'élément mapSet
- Vous pouvez changer toutes les propriétés mapSet, sauf pour l'attribut placementStrategy.
- Name
- Peut être mis à jour avec n'importe quelle valeur.
- numberOfPartitions
- Spécifie le nombre de partitions primaires qui sont démarrées sur chacun des serveurs
hébergeant l'application Web. Au fur et à mesure que l'on ajoute des partitions,
les données sont de plus en plus réparties dans l'éventualité d'un basculement. La valeur par défaut est 5 partitions ; elle convient pour la plupart des applications.
- minSyncReplicas, maxSyncReplicas et maxAsyncReplicas
- Spécifient le nombre et le type des fragments réplique qui stockent
les données de session HTTP. La valeur par défaut est 1 réplique asynchrone, ce qui convient pour la plupart des applications. La réplication synchrone intervient pendant le chemin de demande, ce qui peut augmenter les temps de réponse de l'application Web.
- developmentMode
- Informe le service de placement eXtreme Scale si les fragments réplique d'une partition
peuvent être positionnés sur le même noeud que leur fragment primaire. La valeur peut être définie comme true dans un environnement de développement,
mais il est conseillé de désactiver cette fonction en environnement de production en raison des risques de pertes de données que pourrait provoquer
une défaillance du noeud.
- placementStrategy
- Ne modifiez pas la valeur de cet attribut.
Le reste du fichier se réfère aux mêmes noms de mappes que dans le fichier objectGrid.xml. Ces noms ne peuvent pas être modifiés.
Valeurs non modifiables : - L'attribut placementStrategy dans l'élément mapSet.