< Zurück | Weiter >

Lerneinheit 1.2: OSGi-Konfigurationsdateien verstehen

Das OSGi-Beispiel enthält Konfigurationsdateien, die Sie zum Starten und Konfigurieren des Grids und des Servers von WebSphere eXtreme Scale verwenden.

OSGi-Konfigurationsdateien

In dieser Lerneinheit untersuchen Sie die folgenden Konfigurationsdateien, die mit dem OSGi-Beispiel bereitgestellt werden:
  • collocated.server.properties
  • protoBufObjectGrid.xml
  • protoBufDeployment.xml
  • blueprint.xml

collocated.server.properties

Eine Serverkonfiguration ist zum Starten eines Servers erforderlich. Wenn das Server-Bundle von eXtreme Scale gestartet wird, wird kein Server gestartet. Das Bundle wartet, bis die Konfigurations-PID, com.ibm.websphere.xs.server, mit einer Servereigenschaftendatei erstellt wird. Diese Servereigenschaftendatei gibt den Servernamen, die Portnummer und weitere Servereigenschaften an.

In den meisten Fällen erstellen Sie eine Konfiguration, um die Servereigenschaftendatei zu definieren. In seltenen Fällen wird ein Server mit den Standardwerten der Eigenschaften gestartet. Wenn Sie einen Server mit den Standardwerten starten möchten, können Sie eine Konfiguration mit dem Namen com.ibm.websphere.xs.server erstellen, die den Wert default hat.

Weitere Einzelheiten zur Servereigenschaftendatei finden Sie unter Servereigenschaftendatei.

Die Eigenschaftendatei für den OSGi-Beispielserver startet einen einzelnen Katalog. Diese Beispieleigenschaftendatei startet einen einzigen Katalogservice und einen Container-Server im OSGi-Frameworkprozess. eXtreme-Scale-Clients stellen eine Verbindung zu Port 2809 und JMX-Clients eine Verbindung zu Port 1099 her. Im Folgenden sehen Sie den Inhalt der Beispielservereigenschaftendatei:
serverName=collocatedServer
isCatalog=true
catalogClusterEndPoints=collocatedServer:localhost:6601:6602
traceSpec=ObjectGridOSGi=all=enabled
traceFile=logs/trace.log
listenerPort=2809
JMXServicePort=1099

protoBufObjectGrid.xml

Im Folgenden sehen Sie den Inhalt der Beispiel-ObjectGrid-XML-Deskriptordatei protoBufObjectGrid.xml, in dem die Kommentare entfernt wurden:
<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="Grid" txTimeout="15">

            <bean id="ObjectGridEventListener"
                osgiService="myShardListener"/>

            <backingMap name="Map" readOnly="false"
                lockStrategy="PESSIMISTIC" lockTimeout="5" 
                copyMode="COPY_TO_BYTES"
                pluginCollectionRef="serializer"/>
                
        </objectGrid>
    </objectGrids>

    <backingMapPluginCollections>
        <backingMapPluginCollection id="serializer">
            <bean id="MapSerializerPlugin"
                osgiService="myProtoBufSerializer"/>"/>
        </backingMapPluginCollection>
    </backingMapPluginCollections>
	</objectGridConfig>
Es sind zwei Plug-ins in dieser ObjectGrid-XML-Deskriptordatei konfiguriert:
ObjectGridEventListener
Das Plug-in auf Shard-Ebene. Für jede ObjectGrid-Instanz gibt es eine Instanz von ObjectGridEventListener. Die Instanz ist für die Verwendung des OSGi-Service myShardListener konfiguriert, d. h., wenn das Grid erstellt wird, verwendet das Plug-in ObjectGridEventListener den OSGi-Service myShardListener mit dem höchsten verfügbaren Service-Ranking.
MapSerializerPlugin
Das Plug-in auf Map-Ebene. Für die BackingMap Map ist ein Plug-in MapSerializerPlugin konfiguriert. Dieses Plug-in ist für die Verwendung des OSGI-Service myProtoBufSerializer konfiguriert, d. h., wenn die Map erstellt wird, verwendet das Plug-in "MapSerializerPlugin" den Service myProtoBufSerializer mit dem höchsten verfügbaren Service-Ranking.

protoBufDeployment.xml

Die XML-Implementierungsdeskriptordatei beschreibt die Implementierungsrichtlinie für das Grid Grid, das fünf Partitionen verwendet. Sehen Sie sich das folgende Codebeispiel der XML-Datei an:
<deploymentPolicy 
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://ibm.com/ws/objectgrid/deploymentPolicy ../deploymentPolicy.xsd"
	xmlns="http://ibm.com/ws/objectgrid/deploymentPolicy">

  <objectgridDeployment objectgridName="Grid">
    <mapSet name="MapSet" numberOfPartitions="5">
      <map ref="Map"/>
    </mapSet>
  </objectgridDeployment>
</deploymentPolicy>

blueprint.xml

Anstelle der Datei collocated.server.properties in Verbindung mit der Konfigurations-PID com.ibm.websphere.xs.server können Sie alternativ die ObjectGrid-XML- und XML-Implementierungsdateien zusammen mit einer Blueprint-XML-Datei in ein OSGi-Bundle packen, wie im folgenden Beispiel gezeigt wird:
<blueprint 
	  xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
       xmlns:objectgrid="http://www.ibm.com/schema/objectgrid"
       default-activation="lazy">
    
    <objectgrid:server id="server" isCatalog="true"
                name="server"
                		 tracespec="ObjectGridOSGi=all=enabled" 
                tracefile="C:/Temp/logs/trace.log"
                workingDirectory="C:/Temp/working"
                jmxport="1099">
        <objectgrid:catalog host="localhost" port="2809"/>
    </objectgrid:server>
  
    <objectgrid:container id="container" 
	 objectgridxml="/META-INF/objectgrid.xml" 
       deploymentxml="/META-INF/deployment.xml" 
			server="server"/>
</blueprint>

Prüfpunkt der Lerneinheit

In dieser Lerneinheit haben Sie sich mit den Konfigurationsdateien vertraut gemacht, die im OSGi-Beispiel verwendet werden. Wenn Sie das eXtreme-Scale-Grid und den eXtreme-Scale-Server jetzt starten und konfigurieren, verstehen Sie, welche Dateien in diesen Prozessen verwendet werden und wie diese Dateien mit Ihren Plug-ins im OSGi-Framework interagieren.

< Zurück | Weiter >