入門チュートリアル・レッスン 1.1: 構成ファイルを使用したデータ・グリッドの定義
コンテナー・サーバーを始動するには、 objectgrid.xml ファイルと deployment.xml ファイルが必要です。
このタスクについて
このサンプルでは、 wxs_install_root/ObjectGrid/gettingstarted/server/config ディレクトリーにある objectgrid.xml ファイルと deployment.xml ファイルを使用します。 これらのファイルが開始コマンドに渡され、コンテナー・サーバーとカタログ・サーバーが 開始されます。 objectgrid.xml ファイルは ObjectGrid 記述子 XML ファイルです。 deployment.xml ファイルは ObjectGrid デプロイメント・ポリシー記述子 XML ファイルです。 これらのファイルが一緒になって、分散トポロジーを定義します。
ObjectGrid 記述子 XML ファイル
ObjectGrid 記述子 XML ファイルは、アプリケーションによって使用される ObjectGrid の構造を定義するのに使用されます。 このファイルには、バッキング・マップ構成のリストが含まれます。 これらのバッキング・マップはキャッシュ・データを保管します。 以下の 例は、objectgrid.xml ファイルのサンプルです。 ファイルの最初の数行には、各 ObjectGrid XML ファイルの必須ヘッダーが含まれています。 このサンプル・ファイルは、Map1 と Map2 という バッキング・マップがある Grid ObjectGrid を定義しています。
<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="30">
<backingMap name="Map1" copyMode="COPY_TO_BYTES" lockStrategy="PESSIMISTIC"
nullValuesSupported="false"/>
<backingMap name="Map2" copyMode="COPY_TO_BYTES" lockStrategy="PESSIMISTIC"
nullValuesSupported="false"/>
</objectGrid>
</objectGrids>
</objectGridConfig>
- 30 秒の txTimeout 値は、ほとんどのデータ・グリッドに適したタイムアウト値です。
- シリアライゼーション用のオブジェクト・クラスを提供しないときは、copyMode 値が COPY_TO_BYTES でなければなりません。
- まずデータ・グリッド・アプリケーションを開発するときは、lockStrategy 値として PESSIMISTIC が適切なロック・ストラテジーです。 このストラテジーでは、ニア・キャッシュや Loader プラグインを使用しません。 アプリケーションはロッキングの問題を処理しません。
- nullValuesSupported 値を false に設定することで、キーからヌル値である値を取得したときに発生する可能性のある問題を回避することができます。 この状況では、キーが存在していたかどうかは分かりません。 バッキング・マップ内でのヌル値を許可しないようにすれば、この問題を回避することができます。
デプロイメント・ポリシー記述子 XML ファイル
デプロイメント・ポリシー記述子 XML ファイルは、対応する ObjectGrid XML である objectgrid.xml ファイルと対で使用されることを想定しています。 以下の例では、deployment.xml ファイルの最初の数行には、各デプロイメント・ポリシー XML ファイルの必須ヘッダーが含まれています。 このファイルは、 objectgrid.xml ファイルに定義されている Grid ObjectGrid の objectgridDeployment エレメントを定義します。 Grid ObjectGrid 内で定義される Map1 および Map2 BackingMap は、mapSet mapSet に含まれます。
<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="13" minSyncReplicas="0"
maxSyncReplicas="1" >
<map ref="Map1"/>
<map ref="Map2"/>
</mapSet>
</objectgridDeployment>
</deploymentPolicy>
mapSet エレメントの numberOfPartitions 属性は、mapSet の区画の数を指定します。 この属性はオプションです。デフォルト値は 1です。 属性値は、データ・グリッドの予想される容量に対して適切である必要があります。
mapSet エレメントの minSyncReplicas 属性は、マップ・セット内の各区画の同期レプリカの最小数を指定します。 この属性はオプションであり、デフォルトは「0」です。 プライマリー断片とレプリカ断片は、カタログ・サービス・ドメインが同期レプリカの最小数をサポートできるようになるまで配置されません。 minSyncReplicas 値をサポートするためには、minSyncReplicas 属性の値よりも 1 つ多くコンテナー・サーバーが必要です。 同期レプリカの数が minSyncReplicas の値よりも小さくなると、その区画に対しては書き込みトランザクションを行えなくなります。
mapSet エレメントの maxSyncReplicas 属性は、マップ・セット内の各区画の同期レプリカの最大数を指定します。 この属性はオプションであり、デフォルトは「0」です。 カタログ・サービス・ドメインがある区画のこの同期レプリカ数に達すると、その特定の区画に対しては他の同期レプリカは配置されません。 まだ maxSyncReplicas 値を満たしていない場合には、この ObjectGrid をサポートできるコンテナー・サーバーを追加すると、同期レプリカの数を増やすことができます。 サンプルでは maxSyncReplicas が 1 に設定されています。つまり、カタログ・サービス・ドメインは最大で 1 つの同期レプリカを配置します。 複数のコンテナー・サーバーを始動した場合は、それらのコンテナー・サーバー・インスタンスの 1 つに同期レプリカが 1 つだけ配置されます。
レッスンのチェックポイント
- ObjectGrid 記述子 XML ファイルを使用して、キャッシュ・データを保管するマップを定義する方法
- デプロイメント記述子 XML ファイルを使用して、データ・グリッドの区画の数とレプリカの数を定義する方法