Configuration des clients avec la configuration XML

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 :
  1. Créez une instance ObjectGrid propre au client.
  2. Copiez le fichier XML ObjectGrid utilisé pour ouvrir le serveur.
  3. 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.
  4. Créez un client à l'aide du nouveau fichier XML de remplacement par les clients.

Procédure

  1. 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.
  2. 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"));