Cuando inicia un servidor de contenedor que almacena datos de sesión HTTP,
puede utilizar los archivos XML predeterminados o puede especificar archivos
XML personalizados.
Estos archivos crean nombres de ObjectGrid específicos,
número de réplicas, etc.
Ubicación de los archivos de ejemplo
Estos archivos XML se empaquetan en
raíz_intal_wxs/ObjectGrid/session/samples para una instalación autónoma o
raíz_was/optionalLibraries/ObjectGrid/session/samples para
WebSphere eXtreme
Scale instalado en una célula de
WebSphere Application Server.
Paquete XML incorporado
Si está configurando un escenario incorporado,
el servidor de contenedor se inicia en el nivel de contenedor web.
Utilice el archivo
objectGrid.xml y el archivo
objectGridDeployment.xml, que se proporcionan de forma predeterminada.
Puede actualizar estos archivos para personalizar el comportamiento del gestor de sesiones
HTTP.
Figura 1. Archivo 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>
- Valores que puede cambiar:
- Atributo de nombre ObjectGrid
- El valor debe coincidir con los valores siguientes en otros archivos de
configuración:
- La propiedad objectGridName del archivo splicer.properties que se utiliza para unir la aplicación web.
- El atributo objectgridName del archivo objectGridDeployment.xml.
Si tiene
varias aplicaciones y desea que los datos de sesión se almacenen en cuadrículas de datos
diferentes, esas aplicaciones deben tener valores de atributo de nombre de ObjectGrid
diferentes.
- Atributo txTimeout de ObjectGrid
- Este valor determina durante cuántos segundos puede estar abierta una transacción
antes de que el servidor de contenedor desencadene un tiempo de espera excedido
para la transacción. El valor predeterminado es 30 segundos y se puede modificar
en función del entorno. Si la persistencia de sesiones HTTP se configura
con el parámetro de inicialización de contexto de servlet de
replicationInterval establecido en un valor mayor que cero,
las transacciones se procesarán por lotes en una hebra. Si
la propiedad replicationInterval se establece en 0,
una transacción normalmente empieza cuando una aplicación web recupera un objeto
HttpSession válido. La transacción se confirma al final de la solicitud de
aplicación web. Si el entorno tiene solicitudes que tardan más de 30 segundos,
establezca este valor como corresponda.
- Valores que no puede cambiar:
- ObjectGridEventListener
- La línea ObjectGridEventListener no se puede cambiar y se utiliza internamente.
- objectgridSessionMetadata
- La línea objectgridSessionMetadata hace referencia a la correlación donde se almacenan
los metadatos de sesión HTTP. Hay una entrada para cada sesión HTTP
almacenada en la cuadrícula de datos de esta correlación.
- objectgridSessionTTL.*
- Este valor no se puede cambiar y es para uso futuro.
- objectgridSessionAttribute.*
- El texto objectgridSessionAttribute.* define
una correlación dinámica. Este valor se utiliza para crear la correlación en la que se almacenan
los atributos de sesión HTTP cuando el parámetro fragmentedSession
se establece en true en el archivo
splicer.properties.
Esta correlación dinámica se denomina objectgridSessionAttribute.
Se crea otra correlación basándose en esta plantilla denominada
objectgridSessionAttributeEvicted, que almacena sesiones
que han excedido el tiempo de espera pero que el contenedor web no ha
invalidado.
La línea
MapEventListener es interna y no se puede modificar
Figura 2. Archivo 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>
- Valores que puede cambiar:
- Atributo de nombre ObjectGrid
- El valor debe coincidir con los valores siguientes en otros archivos de
configuración:
- La propiedad objectGridName del archivo splicer.properties que se utiliza para unir la aplicación web.
- El atributo name de ObjectGrid del archivo objectGrid.xml.
Si tiene
varias aplicaciones y desea que los datos de sesión se almacenen en cuadrículas de datos
diferentes, esas aplicaciones deben tener valores de atributo de nombre de ObjectGrid
diferentes.
- Atributos de elemento mapSet
- Puede cambiar todas las propiedades de mapSet excepto
las del atributo placementStrategy.
- Name
- Se puede actualizar con cualquier valor.
- numberOfPartitions
- Especifica el número de particiones primarias que se han iniciado en
cada servidor en que se aloja la aplicación web. A medida que añade las particiones,
los datos se extienden más en el caso de una migración tras error. El
valor predeterminado es 5 particiones y es correcto
para la mayoría de las aplicaciones.
- minSyncReplicas, maxSyncReplicas y maxAsyncReplicas
- Especifica el número y tipo de réplicas que almacenan los datos de sesión HTTP.
El valor predeterminado es 1 réplica asíncrona,
que es correcto para la mayoría de las aplicaciones. La réplica síncrona se produce durante la vía de acceso de
solicitud, que puede aumentar los tiempos de respuesta de su aplicación web.
- developmentMode
- Informa al servicio de ubicación de eXtreme Scale si los fragmentos réplica de
una partición se pueden ubicar en el mismo nodo que su réplica primaria.
Puede establecer el valor en true en un entorno de desarrollo, pero
inhabilite esta función en un entorno de producción porque una anomalía
en un nodo podría provocar la pérdida de los datos de sesión.
- placementStrategy
- No cambie el valor de este atributo.
El resto del archivo hace referencia a los mismos nombres de correlación que en el archivo objectGrid.xml.
No se pueden cambiar estos nombres.
Valores que no puede cambiar: - El atributo placementStrategy del elemento mapSet.
Paquete XML remoto
Cuando esté utilizando la modalidad remota,
donde los contenedores se ejecutan como procesos autónomos, deberá utilizar el archivo
objectGridStandAlone.xml y el archivo
objectGridDeploymentStandAlone.xml para iniciar los procesos.
Puede actualizar estos archivos para modificar la configuración.
Figura 3. Archivo objectGridStandAlone.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="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>
- Valores que puede cambiar:
- Atributo de nombre ObjectGrid
- El valor debe coincidir con los valores siguientes en otros archivos de
configuración:
- La propiedad objectGridName del archivo splicer.properties que se utiliza para unir la aplicación web.
- El atributo objectgridName del archivo
objectGridStandAlone.xml.
Si tiene
varias aplicaciones y desea que los datos de sesión se almacenen en cuadrículas de datos
diferentes, esas aplicaciones deben tener valores de atributo de nombre de ObjectGrid
diferentes.
- Atributo txTimeout de ObjectGrid
- Este valor determina durante cuántos segundos puede estar abierta una transacción
antes de que el servidor de contenedor desencadene un tiempo de espera excedido
para la transacción. El valor predeterminado es 30 segundos y se puede modificar
en función del entorno. Si la persistencia de sesiones HTTP se configura
con el parámetro de inicialización de contexto de servlet de
replicationInterval establecido en un valor mayor que cero,
las transacciones se procesarán por lotes en una hebra. Si
la propiedad replicationInterval se establece en 0,
una transacción normalmente empieza cuando una aplicación web recupera un objeto
HttpSession válido. La transacción se confirma al final de la solicitud de
aplicación web. Si el entorno tiene solicitudes que tardan más de 30 segundos,
establezca este valor como corresponda.
- Valores que no puede cambiar:
- ObjectGridEventListener
- La línea ObjectGridEventListener no se puede cambiar y se utiliza internamente.
- objectgridSessionMetadata
- La línea objectgridSessionMetadata hace referencia a la correlación donde se almacenan
los metadatos de sesión HTTP. Hay una entrada para cada sesión HTTP
almacenada en la cuadrícula de datos de esta correlación.
- objectgridSessionTTL.*
- Este valor no se puede cambiar y es para uso futuro.
- objectgridSessionAttribute.*
- El texto objectgridSessionAttribute.* define
una correlación dinámica. Este valor se utiliza para crear la correlación en la que se almacenan
los atributos de sesión HTTP cuando el parámetro fragmentedSession
se establece en true en el archivo
splicer.properties.
Esta correlación dinámica se denomina objectgridSessionAttribute.
Se crea otra correlación basándose en esta plantilla denominada
objectgridSessionAttributeEvicted, que almacena sesiones
que han excedido el tiempo de espera pero que el contenedor web no ha
invalidado.
La línea
MetadataMapListener
es interna y no se puede modificar.
Figura 4. Archivo objectGridDeploymentStandAlone.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>
- Valores que puede cambiar:
- Atributo objectgridName
- El valor debe coincidir con los valores siguientes en otros archivos de
configuración:
- La propiedad objectGridName del archivo splicer.properties que se utiliza para unir la aplicación web.
- El atributo name de ObjectGrid del archivo objectGrid.xml.
Si
tiene varias aplicaciones y desea que los datos de sesión se almacenen en cuadrículas de datos
diferentes, esas aplicaciones deben tener valores de atributo de nombre de ObjectGrid
diferentes.
- Atributos de elemento mapSet
- Puede cambiar todas las propiedades de mapSet excepto
las del atributo placementStrategy.
- Name
- Se puede actualizar con cualquier valor.
- numberOfPartitions
- Especifica el número de particiones primarias que se han iniciado en
cada servidor en que se aloja la aplicación web. A medida que añade las particiones,
los datos se extienden más en el caso de una migración tras error. El
valor predeterminado es 5 particiones y es correcto
para la mayoría de las aplicaciones.
- minSyncReplicas, maxSyncReplicas y maxAsyncReplicas
- Especifica el número y tipo de réplicas que almacenan los datos de sesión HTTP.
El valor predeterminado es 1 réplica asíncrona,
que es correcto para la mayoría de las aplicaciones. La réplica síncrona se produce durante la vía de acceso de
solicitud, que puede aumentar los tiempos de respuesta de su aplicación web.
- developmentMode
- Informa al servicio de ubicación de eXtreme Scale si los fragmentos réplica de
una partición se pueden ubicar en el mismo nodo que su réplica primaria.
Puede establecer el valor en true en un entorno de desarrollo, pero
inhabilite esta función en un entorno de producción porque una anomalía
en un nodo podría provocar la pérdida de los datos de sesión.
- placementStrategy
- No cambie el valor de este atributo.
El resto del archivo hace referencia a los mismos nombres de correlación que en el archivo objectGrid.xml.
No se pueden cambiar estos nombres.
Valores que no puede cambiar: - El atributo placementStrategy del elemento mapSet.