interface ObjectGrid

Os seguintes métodos permitem interagir com uma instância ObjectGrid.

Criar e Inicializar

Consulte o tópico da interface ObjectGridManager para obter as etapas necessárias para criação de uma instância do ObjectGrid. Existem dois métodos distintos para criar uma instância do ObjectGrid: programaticamente ou com arquivos de configuração XML. Consulte Interface ObjectGridManager para obter informações adicionais.

Métodos Get ou Set e Factory

Quaisquer métodos configurados devem ser chamados antes de inicializar a instância do ObjectGrid. Se você chamar o método set depois de o método initialize ser chamado, o resultado será uma exceção java.lang.IllegalStateException. Cada um dos métodos getSession da interface ObjectGrid também chama implicitamente o método initialize. Portanto, é necessário chamar os métodos set antes de chamar qualquer um dos métodos getSession. A única exceção desta regra é com a configuração, a inclusão e a remoção de objetos ObjectGridEventListener. Esses objetos podem ser processados após a conclusão do processo de inicialização.

A interface ObjectGrid contém os seguintes métodos principais.
Tabela 1. interface ObjectGrid. Métodos principais de ObjectGrid.
Método Descrição

BackingMap defineMap(String name);

defineMap: é um método factory para definir um BackingMap exclusivamente denominado. Para obter informações adicionais sobre os mapas de apoio, consulte a Interface BackingMap.

BackingMap getMap(String name);

getMap: Retorna um BackingMap anteriormente definido chamando defineMap. Utilizando este método, é possível configurar o BackingMap, se ainda não estiver configurado por meio da configuração XML.

BackingMap createMap(String name);

createMap: Cria um BackingMap, mas não o armazena em cache para uso por este ObjectGrid. Use este método com o método setMaps(List) da interface ObjectGrid, que captura BackingMaps para uso com este ObjectGrid. Utilize estes métodos quando estiver configurando um ObjectGrid com Spring Framework.

void setMaps(List mapList);

setMaps: Limpa quaisquer BackingMaps que foram anteriormente definidos neste ObjectGrid e os substitui pela lista de BackingMaps que é fornecida.

public Session getSession() throws ObjectGridException, TransactionCallbackException;

getSession: Retorna um Session, que fornece a funcionalidade begin, commit e rollback para uma Unidade de Trabalho. Para obter informações adicionais sobre os objetos Session, consulte a interface Session.

Session getSession(CredentialGenerator cg);

getSession(CredentialGenerator cg): Obtém uma sessão com um objeto CredentialGenerator. Este método pode ser chamado apenas pelo cliente do ObjectGrid em um ambiente do servidor do cliente.

Session getSession(Subject subject);

getSession(Subject subject): Permite o uso de um objeto Subject específico ao invés de um configurado no ObjectGrid para obter um Session.

void initialize() throws ObjectGridException;

initialize: O ObjectGrid é inicializado e está disponível para uso geral. Este método é chamado implicitamente quando o método getSession é chamado, se o ObjectGrid não estiver em um estado inicializado.

void destroy();

destroy: A estrutura é desmontada e não pode ser utilizada após este método ser chamado.

void setTxTimeout(int timeout);

setTxTimeout: Utilize este método para configurar a quantidade de tempo, em segundos, que uma transação que é iniciada por uma sessão que esta instância do ObjectGrid criou tem permissão para ser concluída. Se uma transação não for concluída dentro de uma quantidade de tempo especificada, a Sessão que iniciou a transação será marcada como "expirada". Uma Sessão marcada com tempo limite expirado faz com que o próximo método ObjectMap que for chamado pela Sessão marcada resulte em uma exceção com.ibm.websphere.objectgrid.TransactionTimeoutException. O objeto Session é marcado apenas como rollback, o que faz com que ocorra um retrocesso na transação mesmo se o aplicativo chamar o método commit ao invés do método rollback após a exceção TransactionTimeoutException ser capturada pelo aplicativo. Um valor de tempo limite de 0 indica que a transação tem permissão para uma quantidade de tempo ilimitada para ser concluída. A transação não expira se um valor do tempo limite de 0 for utilizado. Se este método não for chamado, então, qualquer objeto Session que é retornado pelo método getSession desta interface possui um valor de tempo limite configurado com 0, por padrão. Um aplicativo pode substituir a configuração de tempo limite da transação em uma base por Sessão utilizando o método setTransactionTimeout da interface com.ibm.websphere.objectgrid.Session.

Você também pode configurar o tempo limite da transação com o arquivo objectGrid.xml no caso distribuído.

int getTxTimeout();

getTxTimeout: Retorna o valor de tempo limite da transação em segundos. Este método retorna o mesmo valor que foi transmitido como o parâmetro de tempo limite no método setTxTimeout. Se o método setTxTimeout não foi chamado, então, o método retorna 0 para indicar que a transação tem permissão para uma quantidade de tempo ilimitada para ser concluída.

public int getObjectGridType();

Retorna o tipo de ObjectGrid. O valor de retorno é equivalente a uma das constantes declaradas nesta interface: LOCAL, SERVER ou CLIENT.

public void registerEntities(Class[] entities);

Registre uma ou mais entidades com base nos metadados da classe. O registro da entidade é necessário antes da inicialização do ObjectGrid para ligar uma Entidade a um BackingMap e qualquer índice definido. Esse método pode ser chamado várias vezes.

public void registerEntities(URL entityXML);

Registra uma ou mais entidades de um arquivo XML da entidade. O registro da entidade é necessário antes da inicialização do ObjectGrid para ligar uma Entidade a um BackingMap e qualquer índice definido. Esse método pode ser chamado várias vezes.

void setQueryConfig(QueryConfig queryConfig);

Configure o objeto QueryConfig para este ObjectGrid. Um objeto QueryConfig fornece configurações de consulta para executar consultas de objeto nos mapas nesse ObjectGrid.

 

   

//Segurança

void setSecurityEnabled()

setSecurityEnabled: Ativa a segurança. A segurança é desativada por padrão.

void setPermissionCheckPeriod(long period);

setPermissionCheckPeriod: Este método obtém um parâmetro único que indica com que frequência verificar a permissão que é utilizada para permitir o acesso de um cliente. Se o parâmetro for 0, todos os métodos solicitam ao mecanismo de autorização, autorização JAAS ou autorização customizada, para verificar se o objeto atual tem permissão. Esta estratégia pode causar problemas de desempenho, dependendo da implementação de autorização. No entanto, este tipo de autorização está disponível se for requerido. Alternativamente, se o parâmetro for menor do que 0, ele indica o número de milissegundos a armazenar um conjunto de permissões em cache antes de retornar para o mecanismo de autorização para atualizá-las. Este parâmetro fornece um desempenho muito melhor mas, se as permissões de backend forem alteradas durante este período, o ObjectGrid poderá permitir ou impedir o acesso mesmo que o provedor de segurança de backend tenha sido modificado.

void setAuthorizationMechanism(int authMechanism);

setAuthorizationMechanism: Configurar o mecanismo de autorização. O padrão é SecurityConstants.JAAS_AUTHORIZATION.

   

setSubjectSource(SubjectSource ss);

setSubjectSource: Configura o plug-in SubjectSource. Este plug-in pode ser utilizado para obter um objeto Subject que representa o cliente do ObjectGrid. Este subject é utilizado para autorização do ObjectGrid. O método SubjectSource.getSubject é chamado pelo tempo de execução do ObjectGrid quando o método ObjectGrid.getSession é utilizado para obter uma sessão e a segurança está ativada. Este plug-in é útil para um cliente já autenticado: ele pode recuperar o objeto Subject autenticado e, em seguida, transmitir para a instância do ObjectGrid. Outra autenticação não é necessária.

setSubjectValidation(SubjectValidation sv);

setSubjectValidation: Configura o plug-in SubjectValidation para esta instância do ObjectGrid. Este plug-in pode ser utilizado para validar se um subject javax.security.auth.Subject transmitido para o ObjectGrid é um subject válido que não foi violado. Uma implementação deste plug-in precisa de suporte do criador do objeto Subject, porque apenas o criador sabe se o objeto Subject foi violado. No entanto, um criador do subject pode não saber se o Subject foi violado. Neste caso, este plug-in não deve ser utilizado.

void setObjectGridAuthorization(ObjectGridAuthorization ogAuthorization);

Configura o ObjectGridAuthorization para esta instância do ObjectGrid. Transmitir nulo para este método remove um objeto ObjectGridAuthorization configurado anteriormente de uma chamada anterior deste método e indica que <code>ObjectGrid</code> não está associado a um objeto ObjectGridAuthorization. Esse método deve ser utilizado somente quando a segurança do ObjectGrid estiver ativada. Se a segurança do ObjectGrid estiver desativada, o objeto ObjectGridAuthorization não será utilizado. Um plug-in ObjectGridAuthorization pode ser usado para autorizar o acesso ao ObjectGrid e aos mapas.

interface ObjectGrid: Plug-ins

A interface ObjectGrid possui diversos pontos de plug-in opcionais para interações mais extensíveis.

void addEventListener(ObjectGridEventListener cb);
void setEventListeners(List cbList);
void removeEventListener(ObjectGridEventListener cb);
void setTransactionCallback(TransactionCallback callback);
int reserveSlot(String);
// Plug-ins relacionados à segurança
void setSubjectValidation(SubjectValidation subjectValidation);
void setSubjectSource(SubjectSource source);
  • ObjectGridEventListener: Uma interface ObjectGridEventListener é utilizada para receber notificações quando ocorrem eventos significativos no ObjectGrid. Estes eventos incluem inicialização do ObjectGrid, início de uma transação, encerramento de uma transação e destruição de um ObjectGrid. Para atender estes eventos, crie uma classe que implementa a interface ObjectGridEventListener e inclua-a no ObjectGrid. Estes listeners estão associados a cada Sessão. Consulte Interface Listeners e Session para obter informações adicionais.
  • TransactionCallback: Uma interface listener TransactionCallback permite que eventos transacionais, tais como sinais begin, commit e rollback, para envia para esta interface. Geralmente, uma interface listener TransactionCallback é utilizada com um Utilitário de Carga. Para obter informações adicionais, consulte o plug-in deTransactionCallback e os Utilitários de Carga. Estes eventos podem então ser utilizados para coordenar transações com um recurso externo ou em vários utilitários de carga.
  • reserveSlot: Permite que plug-ins neste ObjectGrid reservem slots para uso em instâncias do objeto que possuem slots como TxID.
  • SubjectValidation. Se a segurança estiver ativada, este plug-in pode ser utilizado para validar uma classe javax.security.auth.Subject que é passada para o ObjectGrid.
  • SubjectSource: Se a segurança estiver ativada, este plug-in pode ser utilizado para obter um objeto Subject que representa o cliente do ObjectGrid. Este subject é então utilizado para autorização do ObjectGrid.

Para obter mais informações sobre plug-ins, consulte o Visão Geral de Plug-ins.