Clients mit XML-Konfiguration konfigurieren

Sie können eine ObjectGrid-XML-Konfigurationsdatei verwenden, um Einstellungen auf Clientseite zu ändern.

Informationen zu diesem Vorgang

Zum Ändern der Einstellungen in einem Client von WebSphere eXtreme Scale müssen Sie eine ObjectGrid-XML-Datei erstellen, die in ihrer Struktur der Datei gleicht, die für den Container-Server verwendet wurde.

Sie können die folgenden Einstellungen im Client überschreiben:
  1. Erstellen Sie eine clientspezifische ObjectGrid-Instanz.
  2. Kopieren Sie die ObjectGrid-XML-Datei, die zum Öffnen des Servers verwendet wurde.
  3. Bearbeiten Sie die neue Datei, um Einstellungen auf der Clientseite anzupassen.
    • Zum Festlegen oder Aktualisieren von Attributen im Client geben Sie einen neuen Wert an oder ändern den vorhandenen Wert.
    • Zum Entfernen eines Plug-ins aus dem Client verwenden Sie eine leere Zeichenfolge als Wert für das Attribut "className".
    • Wenn Sie ein vorhandenes Plug-in ändern möchten, geben Sie einen neuen Wert für das Attribut "className" an.
    • Sie können auch Plug-ins hinzufügen, die für das Überschreiben eines Clients unterstützt werden: TRANSACTION_CALLBACK, OBJECTGRID_EVENT_LISTENER, EVICTOR, MAP_EVENT_LISTENER.
  4. Erstellen Sie einen Client mit der neu erstellen XML-Datei für das Überschreiben des Clients:

Vorgehensweise

  1. Erstellen Sie eine ObjectGrid-XML-Konfigurationsdatei für den Client, die in ihrer Struktur der Datei für den Container-Server gleicht.

    Angenommen, die folgende XML-Datei wurde mit einer XML-Deskriptordatei für Implementierungsrichtlinien kombiniert und zum Starten eines Container-Servers verwendet.

    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>

    In einem Container-Server verhält sich die ObjectGrid-Instanz mit dem Namen "CompanyGrid" gemäß Definition in der Datei companyGridServerSide.xml. Standardmäßig hat der CompanyGrid-Client dieselben Einstellungen wie das im Server ausgeführte CompanyGrid.

    Die folgende ObjectGrid-XML-Datei kann verwendet werden, um einige Attribute und Plug-ins im CompanyGrid-Client anzugeben:

    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>
    Im Folgenden sehen Sie eine Zusammenfassung der definierten Korrekturwerte:
    • Der TransactionCallback im Client ist "com.company.MyClientTxCallback" und nicht wie auf der Serverseite "com.company.MyTxCallback".
    • Der Client hat kein ObjectGridEventListener-Plug-in, weil der className-Wert die leere Zeichenfolge ist.
    • Der Client setzt "numberOfBuckets" für die BackingMap "Customer" auf 1429, behält sein Evictor-Plug-in und entfernt das MapEventListener-Plug-in.
    • Die Attribute "numberOfBuckets" und "timeToLive" der BackingMap "OrderLine" haben sich geändert.
    • Obwohl ein anderes lockStrategy-Attribut angegeben ist, hat dieses keine Wirkung, weil das Attribut "lockStrategy" für das Überschreiben eines Clients nicht unterstützt wird.
  2. Erstellen Sie den Client mit der XML-Datei.

    Zum Erstellen eines CompanyGrid-Clients über die Datei companyGridClientSide.xml übergeben Sie die ObjectGrid-XML-Datei als URL an eine der connect-Methoden in der Schnittstelle "ObjectGridManager".

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