Para inserir, excluir, atualizar e recuperar dados de sua
grade de dados, você deverá gravar um aplicativo cliente. A introdução de amostra inclui um aplicativo cliente que pode ser usado para saber mais sobre a criação de seu próprio aplicativo cliente.
O arquivo Client.java no diretório wxs_install_root/ObjectGrid/gettingstarted/client/src/
é o programa cliente que demonstra como se conectar a um servidor de
catálogos, obter a instância do ObjectGrid e usar a API ObjectMap.
A API ObjectMap armazena dados como pares de valores de chave e é ideal para armazenar em cache os objetos que não possuírem nenhum relacionamento envolvido.
As etapas a seguir discutem o conteúdo do arquivo Client.java.
Se você precisar armazenar em cache objetos que possuem relacionamentos, use a API EntityManager .
- Conexão com o serviço de catálogo por meio da obtenção de uma instância de ClientClusterContext
Para se conectar a um servidor de catálogos, use o método connect da API ObjectGridManager.
O método connect que é usado requer apenas o terminal do servidor de
catálogos no formato de hostname:port.
É possível indicar diversos terminais do servidor de catálogos separando a lista de valores de
hostname:port com vírgulas. O fragmento de código a seguir
demonstra como se conectar a um servidor de catálogos e obter uma instância de ClientClusterContext:
ClientClusterContext ccc = ObjectGridManagerFactory.getObjectGridManager().connect("localhost:2809", null, null);
Se as conexões com os servidores de
catálogos forem bem-sucedidas, o método connect retorna uma instância de ClientClusterContext. A instância do ClientClusterContext é necessária para a obtenção do ObjectGrid a partir da API do ObjectGridManager.
- Obter uma instância do ObjectGrid.
Para obter uma instância do ObjectGrid, use o método getObjectGrid da API do ObjectGridManager. O método getObjectGrid requer a instância de ClientClusterContext e o nome da instância da grade de
dados. A instância do ClientClusterContext é obtida
durante a conexão com o servidor de catálogos. O nome da instância de ObjectGrid é
Grid que é especificado no arquivo
objectgrid.xml. O fragmento de código a seguir demonstra como obter a
grade de dados chamando o método getObjectGrid da API ObjectGridManager.
ObjectGrid grid = ObjectGridManagerFactory.getObjectGridManager().getObjectGrid(ccc, “Grid”);
- Obter uma instância de Sessão.
É possível obter uma Sessão da instância do ObjectGrid obtida. Uma instância da Sessão é necessária para obter a instância do ObjectMap e executar a demarcação da transação.
O fragmento de código a seguir demonstra como obter uma instância da Sessão chamando
o método getSession da API ObjectGrid.
Session sess = grid.getSession();
- Obter uma instância do ObjectGrid.
Após obter uma Sessão, é possível obter uma instância
do ObjectMap a partir de uma instância da Sessão chamando o método getMap da API
de Sessão. Você deve transmitir o nome do mapa como parâmetro para o método
getMap para obter a instância de ObjectMap. O fragmento de código a seguir demonstra como obter o ObjectMap chamando o método
getMap da API de Sessão.
ObjectMap map1 = sess.getMap("Map1");
- Use os métodos ObjectMap.
Depois que uma instância ObjectMap for obtida, será possível usar a API
ObjectMap.
Lembre-se de que a
interface ObjectMap é um mapa transacional e requer demarcação de transação
usando os métodos begin e commit da
API Session. Se não houver demarcação de transação
explícita no aplicativo, as operações do ObjectMap serão executadas com
transações de confirmação automática.
O fragmento de código a seguir demonstra como usar a API
ObjectMap com uma transação de confirmação automática.
map1.insert(key1, value1);
O fragmento de código
a seguir demonstra como usar a API ObjectMap com
demarcação de transação explícita.
sess.begin();
map1.insert(key1, value1);
sess.commit();
- Opcional: Feche a sessão. Após todas as operações de Sessão e ObjectMap serem concluídas,
feche a sessão com o método Session.close().
A execução desse método retorna os recursos que estavam sendo usados pela
sessão.
sess.close();
Como resultado, as chamadas de método getSession() subsequentes
são retornadas mais rapidamente e menos objetos de Sessão ficam no heap.