Configuración de clientes con configuración XML

Puede utilizar un archivo de configuración XML de ObjectGrid para modificar los valores en el lado del cliente.

Acerca de esta tarea

Para modificar los valores de un cliente de WebSphere eXtreme Scale, debe crear un archivo XML de ObjectGrid que sea similar en estructura al archivo que se ha utilizado en el servidor de contenedor.

Puede sustituir los valores siguientes en el cliente:
  1. Cree una instancia de ObjectGrid específica del cliente.
  2. Copie el archivo XML de ObjectGrid que se utilizó para abrir el servidor.
  3. Edite el nuevo archivo para realizar la personalización en el lado del cliente:
    • Para establecer o actualizar uno de los atributos en el cliente, especifique un valor nuevo existente cambiar el valor existente.
    • Para eliminar un plug-in del cliente, utilice la serie vacía como el valor para el atributo className.
    • Para cambiar un plug-in existente, especifique un nuevo valor para el atributo className.
    • También puede añadir cualquier plug-in soportado para una alteración temporal de cliente: TRANSACTION_CALLBACK, OBJECTGRID_EVENT_LISTENER, EVICTOR, MAP_EVENT_LISTENER.
  4. Cree un cliente con el archivo XML de alteración temporal del cliente recién creado.

Procedimiento

  1. Cree un archivo XML de configuración de ObjectGrid para el cliente que sea similar en estructura al archivo para el servidor de contenedor.

    Supongamos que el siguiente archivo XML se ha emparejado con un archivo XML de política de despliegue, y que estos archivos se han utilizado para iniciar un servidor de contenedor.

    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>

    En un servidor de contenedor, la instancia de ObjectGrid denominada CompanyGrid se comporta tal como se ha definido mediante el archivo companyGridServerSide.xml. De forma predeterminada, el cliente de CompanyGrid tiene los mismos valores que los de la instancia CompanyGrid que se ejecuta en el servidor.

    El siguiente archivo XML de ObjectGrid se puede utilizar para especificar algunos de los atributos y plug-ins en el cliente de 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>
    A continuación se muestra un resumen de las sustituciones que se definen:
    • La TransactionCallback en el cliente es com.company.MyClientTxCallback en lugar del valor del lado del servidor de com.company.MyTxCallback.
    • El cliente no tiene un ObjectGridEventListener porque el valor de className es la serie vacía.
    • El cliente define 1429 como numberOfBuckets para la backingMap del cliente, retiene su plug-in Evictor y elimina el plug-in MapEventListener.
    • Los atributos numberOfBuckets y timeToLive de la backingMap OrderLine han cambiado
    • Aunque se especifique un atributo de lockStrategy diferente, no hay ningún efecto porque el atributo lockStrategy no se soporta para una alteración temporal de cliente.
  2. Cree el cliente utilizando el archivo XML.

    Para crear el cliente CompanyGrid mediante el archivo companyGridClientSide.xml, pase el archivo XML de ObjectGrid como URL a uno de los métodos de conexión en la interfaz ObjectGridManager:

    ObjectGridManager ogManager = 
    	ObjectGridManagerFactory.ObjectGridManager();
    ClientClusterContext clientClusterContext = 
    	ogManager.connect("MyServer1.company.com:2809", null, new URL(
                    "file:xml/companyGridClientSide.xml"));