Configurando Clientes Programaticamente

É possível configurar um cliente do WebSphere eXtreme Scale com base em seus requisitos, como a necessidade de substituir configurações.

Substituir plug-ins

É possível substituir os seguintes plug-ins em um cliente:
  • Plug-ins do ObjectGrid
    • Plug-in TransactionCallback
    • Plug-in ObjectGridEventListener
  • Plug-ins do BackingMap
    • Plug-in Evictor
    • Plug-in MapEventListener
    • Atributo numberOfBuckets
    • Atributo ttlEvictorType
    • Atributo timeToLive

Configurar o Cliente Programaticamente

Também é possível substituir as configurações do ObjectGrid do lado do cliente programaticamente. Crie um objeto ObjectGridConfiguration que seja semelhante em estrutura à instância ObjectGrid do lado do servidor. O código a seguir cria uma instância ObjectGrid do lado do cliente funcionalmente equivalente à substituição do cliente na seção anterior que utiliza um arquivo XML.

Substituição do lado do cliente programaticamente
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);

A instância ogManager da interface do ObjectGridManager verifica se há substituições apenas nos objetos ObjectGridConfiguration e BackingMapConfiguration que você inclui no Mapa overrideMap. Por exemplo, o código anterior substitui o número de depósitos no mapa OrderLine. Entretanto, o mapa Order permanece inalterado no lado do cliente porque nenhuma configuração para esse mapa é incluída.

Desativar o Cache Local do Cliente

O cache local é ativado por padrão quando um bloqueio é configurado como otimista ou nenhum. Os clientes não mantêm um cache local quando a configuração do bloqueio é configurada como pessimista. Para desativar o cache local, configure o atributo numberOfBuckets para 0 no arquivo descritor do ObjectGrid de substituição do cliente. Consulte o Gerenciador de Bloqueio para obter mais informações.