Au lieu d'utiliser l'interface BackingMap pour définir à l'aide d'un programme les attributs BackingMap qui doivent être utilisés par l'expulseur basé sur la durée de vie, vous pouvez utiliser un fichier XML pour configurer chaque instance de BackingMap. Le code suivant démontre comment définir ces attributs pour trois mappes BackingMap différentes :
Avant de commencer
Avant de commencer, choisissez le type d'expulseur que vous allez utiliser :
- Expulseur TTL basé sur le temps par défaut : l'expulseur par défaut utilise une règle d'expulsion TTL (time-to-live) pour chaque instance BackingMap.
- Mécanisme d'expulsion enfichable : les expulseurs enfichables utilisent généralement une règle d'expulsion basée sur le nombre de tentatives et non pas sur le temps.
La plupart des paramètres d'expulseur doivent être définis avant l'initialisation d'ObjectGrid.
Procédure
- Pour définir l'expulseur TTL par défaut, ajoutez l'attribut ttlEvictorType dans le fichier XML descripteur d'ObjectGrid.
L'exemple suivant montre que l'instance BackingMap map1 utilise le type d'expulseur TTL NONE. L'instance BackingMap map2 utilise le ttype d'expulseur TTL LAST_ACCESS_TIME ou LAST_UPDATE_TIME. Indiquez que l'un ou l'autre de ces deux paramètres. L'instance BackingMap map2 a une valeur de durée de vie de 1800 seconds, soit 30 minutes. L'instance BackingMap map3 est définie pour utiliser le type d'expulseur basé sur la durée de vie CREATION_TIME et a une durée de vie de 1200 secondes (20 minutes).
Figure 1. Enable TimeToLive
evictor with 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="grid1">
<backingMap name="map1" ttlEvictorType="NONE" />
<backingMap name="map2" ttlEvictorType="LAST_ACCESS_TIME|LAST_UPDATE_TIME"
timeToLive="1800" />
<backingMap name="map3" ttlEvictorType="CREATION_TIME"
timeToLive="1200" />
</objectgrid>
</objectGrids>
- Pour définir un expulseur enfichable, utilisez l'exemple suivant.
Figure 2. Connexion d'un expulseur en utilisant 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="grid">
<backingMap name="map1" ttlEvictorType="NONE" pluginCollectionRef="LRU" />
<backingMap name="map2" ttlEvictorType="NONE" pluginCollectionRef="LFU" />
</objectGrid>
</objectGrids>
<backingMapPluginCollections>
<backingMapPlugincollection id="LRU">
<bean id="Evictor" className="com.ibm.websphere.objectgrid.plugins.builtins.LRUEvictor">
<property name="maxSize" type="int" value="1000" description="set max size
for each LRU queue" />
<property name="sleepTime" type="int" value="15" description="evictor
thread sleep time" />
<property name="numberOfLRUQueues" type="int" value="53" description="set number
of LRU queues" />
</bean>
</backingMapPluginCollection>
<backingMapPluginCollection id="LFU">
<bean id="Evictor" className="com.ibm.websphere.objectgrid.plugins.builtins.LFUEvictor">
<property name="maxSize" type="int" value="2000" description="set max size for each LFU heap" />
<property name="sleepTime" type="int" value="15" description="evictor thread sleep time" />
<property name="numberOfHeaps" type="int" value="211" description="set number of LFU heaps" />
</bean>
</backingMapPluginCollection>
</backingMapPluginCollections>
</objectGridConfig>