Vous pouvez utiliser le fichier XML de configuration pour modifier les paramètres du client.
Pourquoi et quand exécuter cette tâche
Pour modifier les paramètres d'un client WebSphere eXtreme Scale , vous devez créer un fichier XML ObjectGrid ayant une structure semblable à celle du fichier utilisé pour le serveur de conteneur.
Vous pouvez remplacer les paramètres suivants sur le client :
- Créez une instance ObjectGrid propre au client.
- Copiez le fichier XML ObjectGrid utilisé pour ouvrir le serveur.
- Editez le nouveau fichier pour personnaliser le client :
- Pour définir ou mettre à jour les attributs du client, indiquez
une nouvelle valeur ou modifiez la valeur existante.
- Pour supprimer un plug-in du client, utilisez la chaîne vide comme
valeur pour l'attribut className.
- Pour modifier un plug-in existant, indiquez une nouvelle valeur pour l'attribut className.
- Vous pouvez aussi ajouter les plug-in pris en charge pour les remplacements par les clients :
TRANSACTION_CALLBACK, OBJECTGRID_EVENT_LISTENER, EVICTOR et MAP_EVENT_LISTENER.
- Créez un client à l'aide du nouveau fichier XML de remplacement par les clients.
- Créez un fichier XML de configuration ObjectGrid pour le client qui ait une structure semblable à celle du fichier pour le serveur de conteneur.
Supposons que le fichier XML a été associé à un fichier XML de stratégie de déploiement et que ces fichier ont été utilisés pour démarrer un serveur de conteneur.
companyGridServerSide.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="CompanyGrid">
<bean id="TransactionCallback"
className="com.company.MyTxCallback" />
<bean id="ObjectGridEventListener"
className="com.company.MyOgEventListener" />
<backingMap name="Customer"
pluginCollectionRef="customerPlugins" />
<backingMap name="Item" />
<backingMap name="OrderLine" numberOfBuckets="1049"
timeToLive="1600" ttlEvictorType="LAST_ACCESS_TIME" />
<backingMap name="Order" lockStrategy="PESSIMISTIC"
pluginCollectionRef="orderPlugins" />
</objectGrid>
</objectGrids>
<backingMapPluginCollections>
<backingMapPluginCollection id="customerPlugins">
<bean id="Evictor"
className="com.ibm.websphere.objectGrid.plugins.builtins.LRUEvictor" />
<bean id="MapEventListener"
className="com.company.MyMapEventListener" />
</backingMapPluginCollection>
<backingMapPluginCollection id="orderPlugins">
<bean id="MapIndexPlugin"
className="com.company.MyMapIndexPlugin" />
</backingMapPluginCollection>
</backingMapPluginCollections>
</objectGridConfig>
Sur un serveur de conteneur, l'instance ObjectGrid nommée CompanyGrid se comporte conformément à ce qui est défini dans le fichier companyGridServerSide.xml. Par défaut, les paramètres du client CompanyGrid sont identiques à ceux de l'instance CompanyGrid
qui s'exécute sur le serveur.
Le fichier XML ObjectGrid suivant peut être utilisé pour définir
certains attributs et plug-in du client CompanyGrid.
companyGridClientSide.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="CompanyGrid">
<bean id="TransactionCallback"
className="com.company.MyClientTxCallback" />
<bean id="ObjectGridEventListener" className="" />
<backingMap name="Customer" numberOfBuckets="1429"
pluginCollectionRef="customerPlugins" />
<backingMap name="Item" />
<backingMap name="OrderLine" numberOfBuckets="701"
timeToLive="800" ttlEvictorType="LAST_ACCESS_TIME" />
<backingMap name="Order" lockStrategy="PESSIMISTIC"
pluginCollectionRef="orderPlugins" />
</objectGrid>
</objectGrids>
<backingMapPluginCollections>
<backingMapPluginCollection id="customerPlugins">
<bean id="Evictor"
className="com.ibm.websphere.objectGrid.plugins.builtins.LRUEvictor" />
<bean id="MapEventListener" className="" />
</backingMapPluginCollection>
<backingMapPluginCollection id="orderPlugins">
<bean id="MapIndexPlugin"
className="com.company.MyMapIndexPlugin" />
</backingMapPluginCollection>
</backingMapPluginCollections>
</objectGridConfig>
Résumé des remplacements définis :
- Le TransactionCallback du client est com.company.MyClientTxCallback
et non le paramètre com.company.MyTxCallback du côté serveur.
- Le client n'est associé à aucun plug-in ObjectGridEventListener car
la valeur className est la chaîne vide.
- Le client associe numberOfBuckets à la valeur 1429 pour le backingMap Customer,
conserve le plug-in Evictor et supprime le plug-in MapEventListener.
- Les attributs numberOfBuckets et timeToLive
du backingMap OrderLine ont été modifiés.
- Bien qu'un attribut lockStrategy différent ait été indiqué,
les conséquences sont nulles car cet attribut n'est pas pris en charge
pour un remplacement par le client.
- Créez le client en utilisant le fichier XML.
Pour créer le client CompanyGrid à l'aide du fichier companyGridClientSide.xml, transmettez le fichier XML ObjectGrid sous la forme d'une URL à l'une des méthodes de connexion dans l'interface ObjectGridManager :
ObjectGridManager ogManager =
ObjectGridManagerFactory.ObjectGridManager();
ClientClusterContext clientClusterContext =
ogManager.connect("MyServer1.company.com:2809", null, new URL(
"file:xml/companyGridClientSide.xml"));