< 前へ | 次へ >

レッスン 1.2: OSGi 構成ファイルの理解

OSGi サンプルには、WebSphere® eXtreme Scale グリッドおよびサーバーを開始したり構成したりする際に使用する構成ファイルが含まれています。

OSGi 構成ファイル

このレッスンでは、OSGI サンプルに含まれている以下の構成ファイルを検討することとします。
  • collocated.server.properties
  • protoBufObjectGrid.xml
  • protoBufDeployment.xml
  • blueprint.xml

collocated.server.properties

サーバーを開始するにはサーバー構成が 必要です。eXtreme Scale サーバー・バンドルを開始しても、 サーバーは開始されません。バンドルは、サーバー・プロパティー・ファイルが指定された 構成 PID com.ibm.websphere.xs.server が作成されるのを待ちます。このサーバー・プロパティー・ファイルが、サーバー名、 ポート番号、その他のサーバー・プロパティーを指定します。

ほとんどの場合は、サーバー・プロパティー・ファイルを 設定するための構成を作成します。まれには、すべてのプロパティーがデフォルト値に設定されたままでサーバーを 開始すれば済むことがあります。そのような場合は、値が default に設定された com.ibm.websphere.xs.server という構成を作成できます。

サーバー・プロパティー・ファイルの詳細については、サーバー・プロパティー・ファイルのトピックを参照してください。

OSGi サンプル・サーバー・プロパティー・ファイルは単一のカタログを開始します。 このサンプル・プロパティー・ファイルは、OSGi フレームワーク・プロセス内で単一のカタログ・サービスと コンテナー・サーバーを開始します。eXtreme Scale クライアントは ポート 2809 に接続し、JMX クライアントはポート 1099 に接続します。サンプルのサーバー・プロパティー・ファイルの内容は 以下のとおりです。
serverName=collocatedServer
isCatalog=true
catalogClusterEndPoints=collocatedServer:localhost:6601:6602
traceSpec=ObjectGridOSGi=all=enabled
traceFile=logs/trace.log
listenerPort=2809
JMXServicePort=1099

protoBufObjectGrid.xml

サンプル protoBufObjectGrid.xml ObjectGrid 記述子 XML ファイルは次の内容を含んでいます (コメントは削除してあります)。
<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>
この ObjectGrid 記述子 XML ファイルには次の 2 つのプラグインが 構成されています。
ObjectGridEventListener
断片レベル・プラグイン。ObjectGrid インスタンスごとに、ObjectGridEventListener の インスタンスが存在します。それは OSGi サービス myShardListener を使用するように 構成されています。これは、グリッドの作成時、ObjectGridEventListener プラグインが、 使用可能な最も高いサービス・ランキングが設定された OSGi サービス myShardListener を使用することを意味します。
MapSerializerPlugin
マップ・レベル・プラグイン。Map という名前のバックアップ・マップに対し、MapSerializerPlugin プラグインが 構成されています。 それは OSGi サービス myProtoBufSerializer を使用するように構成されています。これは、マップの 作成時、MapSerializerPlugin プラグインが、使用可能な最も高いランクの サービス・ランキングが設定されたサービス myProtoBufSerializer を使用することを意味します。

protoBufDeployment.xml

デプロイメント記述子 XML ファイルは、5 つの区画を使用する Grid という名前のグリッドの デプロイメント・ポリシーを記述したものです。XML ファイルの次のサンプル・コードを参照してください。
<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

collocated.server.properties ファイルと構成 PID com.ibm.websphere.xs.server を組み合わせて使用する代わりに、次の例で示すように、ObjectGrid XML ファイルとデプロイメント XML ファイルを Blueprint XML ファイルと一緒に OSGi バンドルに組み込むことができます。
<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>

レッスンのチェックポイント

このレッスンでは、OSGi サンプル内で使用している構成ファイルについて学習しました。これで、eXtreme Scale グリッドおよび サーバーを開始して構成するとき、OSGi フレームワーク内で、それらのプロセスに どのファイルが使用され、それらのファイルがプラグインとどのように相互作用するかがわかります。

< 前へ | 次へ >