Fichiers XML de configuration du gestionnaire de sessions HTTP

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.