設定値をオーバーライドしなければならないなどの、ユーザーの要件に基づいて WebSphere® eXtreme Scale クライアントを構成することができます。
クライアント・サイドの ObjectGrid 設定をプログラマチックにオーバーライドすることもできます。サーバー・サイド ObjectGrid インスタンスと同様の構造を持つ ObjectGridConfiguration オブジェクトを作成します。以下のコードで、XML ファイルを使用する上記セクションのクライアント・オーバーライドと機能的に同等な、クライアント・サイド ObjectGrid インスタンスが作成されます。
client-side override programmatically
ObjectGridConfiguration companyGridConfig = ObjectGridConfigFactory
.createObjectGridConfiguration("CompanyGrid");
Plugin txCallbackPlugin = ObjectGridConfigFactory.createPlugin(
PluginType.TRANSACTION_CALLBACK, "com.company.MyClientTxCallback");
companyGridConfig.addPlugin(txCallbackPlugin);
Plugin ogEventListenerPlugin = ObjectGridConfigFactory.createPlugin(
PluginType.OBJECTGRID_EVENT_LISTENER, "");
companyGridConfig.addPlugin(ogEventListenerPlugin);
BackingMapConfiguration customerMapConfig = ObjectGridConfigFactory
.createBackingMapConfiguration("Customer");
customerMapConfig.setNumberOfBuckets(1429);
Plugin evictorPlugin = ObjectGridConfigFactory.createPlugin(PluginType.EVICTOR,
"com.ibm.websphere.objectgrid.plugins.builtins.LRUEvictor");
customerMapConfig.addPlugin(evictorPlugin);
companyGridConfig.addBackingMapConfiguration(customerMapConfig);
BackingMapConfiguration orderLineMapConfig = ObjectGridConfigFactory
.createBackingMapConfiguration("OrderLine");
orderLineMapConfig.setNumberOfBuckets(701);
orderLineMapConfig.setTimeToLive(800);
orderLineMapConfig.setTtlEvictorType(TTLType.LAST_ACCESS_TIME);
companyGridConfig.addBackingMapConfiguration(orderLineMapConfig);
List ogConfigs = new ArrayList();
ogConfigs.add(companyGridConfig);
Map overrideMap = new HashMap();
overrideMap.put(CatalogServerProperties.DEFAULT_DOMAIN, ogConfigs);
ogManager.setOverrideObjectGridConfigurations(overrideMap);
ClientClusterContext client = ogManager.connect(catalogServerEndpoints, null, null);
ObjectGrid companyGrid = ogManager.getObjectGrid(client, objectGridName);
ObjectGridManager の ogManager インスタンスは、overrideMap マップに組み込まれている ObjectGridConfiguration オブジェクトおよび BackingMapConfiguration オブジェクトのオーバーライドのみをチェックします。例えば、上記のコードは、OrderLine マップ上のバケットの数をオーバーライドします。ただし、そのマップに対する構成が組み込まれていないため、クライアント・サイドの Order マップは変更されないままです。
ニア・キャッシュは、ロックがオプティミスティックまたはロックなしで構成されている場合、デフォルトで使用可能になっています。 クライアントは、ロック設定がペシミスティックで構成されている場合はニア・キャッシュを保持しません。ニア・キャッシュを使用不可にするには、クライアント・オーバーライド ObjectGrid 記述子ファイルで numberOfBuckets 属性を 0 に設定します。詳しくは、ロック・マネージャーを参照してください。