In dieser Aufgabe fügen Sie einer XML-Deskriptordatei
OSGi-Services hinzu, so dass Container von WebSphere eXtreme Scale
die OSGi-fähigen Plug-ins erkennen und ordnungsgemäß laden können.
Vorbereitende Schritte
Zum Konfigurieren Ihrer Plug-ins müssen Sie folgende Aktionen ausführen:
- Sie müssen Ihr Paket erstellen und dynamische Plug-ins für die OSGi-Implementierung aktivieren.
- Sie müssen die Namen der OSGi-Services kennen, die Ihre verfügbaren Plug-ins darstellen.
Informationen zu diesem Vorgang
Sie haben einen OSGi-Service für den Einschluss Ihres Plug-ins erstellt. Jetzt müssen diese
Services in der Datei
objectgrid.xml definiert werden, damit die Container von
eXtreme Scale die Plug-ins erfolgreich laden und konfigurieren können.
Vorgehensweise
- Alle gridspezifischen Plug-ins wie TransactionCallback müssen im Element
objectGrid angegeben werden. Sehen Sie sich das folgende Beispiel aus der Datei objectgrid.xml an:
<?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="MyGrid" txTimeout="60">
<bean id="myTranCallback" osgiService="myTranCallbackFactory"/>
...
</objectGrid>
...
</objectGrids>
...
/objectGridConfig>
Wichtig: Der Wert des Attributs osgiService
muss mit dem Wert des Attributs ref übereinstimmen, der in der
BlueprintXML-Datei bei der Definition des Service für
myTranCallback PluginServiceFactory angegeben wurde.
- Alle Map-spezifischen Plug-ins wie beispielsweise Loader und Serializer
müssen im Element backingMapPluginCollections angegeben und über das Element
backingMap referenziert werden. Sehen Sie sich das folgende Beispiel aus der Datei objectgrid.xml an:
<?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="MyGrid" txTimeout="60">
<backingMap name="MyMap1" lockStrategy="PESSIMISTIC"
copyMode="COPY_TO_BYTES" nullValuesSupported="false"
pluginCollectionRef="myPluginCollectionRef1"/>
<backingMap name="MyMap2" lockStrategy="PESSIMISTIC"
copyMode="COPY_TO_BYTES" nullValuesSupported="false"
pluginCollectionRef="myPluginCollectionRef2"/>
...
</objectGrid>
...
</objectGrids>
...
<backingMapPluginCollections>
<backingMapPluginCollection id="myPluginCollectionRef1">
<bean id="MapSerializerPlugin" osgiService="mySerializerFactory"/>
</backingMapPluginCollection>
<backingMapPluginCollection id="myPluginCollectionRef2">
<bean id="MapSerializerPlugin" osgiService="myOtherSerializerFactory"/>
<bean id="Loader" osgiService="myLoader"/>
</backingMapPluginCollection>
...
</backingMapPluginCollections>
...
</objectGridConfig>
Ergebnisse
Die Datei
objectgrid.xml in diesem Beispiel
weist
eXtreme Scale an, ein Grid mit dem Namen
MyGrid mit zwei Maps,
MyMap1 und
MyMap2, zu erstellen.
Die Map
MyMap1 verwendet den Serializer, der in den
OSGi-Service eingeschlossen ist,
mySerializerFactory. Die Map
MyMap2 verwendet
einen Serializer aus dem OSGi-Service,
myOtherSerializerFactory, und einen Loader aus dem OSGi-Service,
myLoader.