OSGi-fähige Plug-ins mit der ObjectGrid-XML-Deskriptordatei konfigurieren

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:

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

  1. 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.
  2. 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.