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:
- Erstellen Sie eine clientspezifische ObjectGrid-Instanz.
- Kopieren Sie die ObjectGrid-XML-Datei, die zum Öffnen des Servers verwendet wurde.
- 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.
- Erstellen Sie einen Client mit der neu erstellen XML-Datei für das Überschreiben des Clients:
- 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.
- 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"));