Utilizando Pools de Objetos

Um conjunto de objetos ajuda um aplicativo a evitar a criação de novos objetos Java repetidamente. A maioria dos objetos pode ser criada uma vez, utilizada e, em seguida, reutilizada. Um conjunto de objetos suporta o conjunto de objetos que estão aguardando para serem reutilizados.

Sobre Esta Tarefa

Os conjuntos de objetos não devem ser utilizados para agrupar as conexões JDBC ou conexões e sessões JMS (Java Message Service) em conjuntos. O WebSphere Application Server fornece mecanismos especializados para lidar com esses tipos de objetos. Esses conjuntos de objetos devem ser utilizados para o agrupamento em conjunto de objetos definidos pelo aplicativo ou de tipos básicos do Developer Kit.

Para utilizar um conjunto de objetos, o administrador do produto deve definir um gerenciador de conjuntos de objetos utilizando o console administrativo. Vários gerenciadores de conjuntos de objetos podem ser criados em uma célula do Servidor de Aplicativos.
Nota: O serviço Gerenciador de Conjuntos de Objetos é suportado somente a partir do Contêiner EJB ou do Contêiner da Web. Não é suportado procurar e utilizar um gerenciador de conjunto de objetos configurado a partir de um contêiner de cliente aplicativo J2EE (Java 2 Platform Enterprise Edition).

Procedimento

  1. Inicie o administrative console.
  2. Clique em Recursos > Gerenciadores do Conjuntos de Objetos.
  3. Especifique um valor de Escopo e clique em Novo.
  4. Especifique as propriedades requeridas para definições do gerenciador de trabalho.
    Escopo
    O escopo do recurso configurado. Esse valor indica o local do arquivo de configuração.
    Nome
    O nome do gerenciador do conjunto de objetos. Esse nome pode ter até 30 caracteres ASCII de comprimento.
    Nome JNDI
    O nome JNDI (Java Naming and Directory Interface) para o gerenciador de conjuntos.
  5. [Opcional] Especifique uma Descrição e uma Categoria para o gerenciador do conjunto de objetos.

Resultados

Depois de concluir estas etapas, os aplicativos podem localizar o gerenciador do pool de objetos fazendo uma consulta JNDI utilizando o nome JNDI especificado.

Exemplo

O código a seguir ilustra como um aplicativo pode localizar um objeto do gerenciador do pool de objetos:
InitialContext ic = new InitialContext();
ObjectPoolManager opm = (ObjectPoolManager)ic.lookup("java:comp/env/pool");
Quando o aplicativo tiver um ObjectPoolManager, ele pode armazenar em cache um conjunto de objetos para classes dos tipos que deseja utilizar. Segue um exemplo:
ObjectPool arrayListPool = null;
ObjectPool vectorPool = null;
try
{
	arrayListPool = opm.getPool(ArrayList.class);
	vectorPool = opm.getPool(Vector.class);
}
catch(InstantiationException e)
{
	// problem creating pool
}
catch(IllegalAccessException e)
{
	// problem creating pool
}
Quando o aplicativo tiver os conjuntos, o aplicativo pode utilizá-los como no exemplo a seguir:
ArrayList list = null;
try
{
	list = (ArrayList)arrayListPool.getObject();
	list.clear();	// just in case
	for(int i = 0; i < 10; ++i)
	{
		list.add("" + i);
	}
	// do what ever we need with the ArrayList
}
finally
{
	if(list != null) arrayListPool.returnObject(list);
}

Esse exemplo apresenta o padrão básico para a utilização de conjuntos de objetos. Se o aplicativo não retornar o objeto, o único efeito adverso será que o objeto não poderá ser reutilizado.


Ícone que indica o tipo de tópico Tópico de Tarefa



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tasb_objectpool
Nome do arquivo: tasb_objectpool.html