Utilisation de pools d'objets

Un pool d'objets permet à une application de ne pas avoir à créer les mêmes objets Java à plusieurs reprises. La plupart des objets peuvent être créés une seule fois, puis être utilisés et réutilisés ultérieurement. Un pool d'objets prend en charge le regroupement des objets qui attendent d'être réutilisés.

Pourquoi et quand exécuter cette tâche

Les pools d'objets ne sont pas destinés à être utilisés pour le regroupement de connexions JDBC (Java Database Connectivity) ou de connnexions et sessions JMS (Java Message Service). Pour ce type d'objets, WebSphere Application Server fournit des mécanismes spécialisés. Ces pools d'objets sont destinés à des objets définis dans des applications et à des types Developer Kit de base.

Pour utiliser un pool d'objets, l'administrateur du produit doit définir un gestionnaire de pools d'objets à l'aide de la console d'administration. Plusieurs gestionnaires de pools d'objets peuvent être créés dans une cellule Application Server.
Remarque : Le service Object pool manager n'est pris en charge qu'à l'intérieur du conteneur EJB ou du conteneur Web. L'interrogation et l'utilisation d'un gestionnaire de pools d'objets n'est pas possible à partir d'un conteneur client d'application J2EE (Java 2 Platform Enterprise Edition).

Procédure

  1. Démarrez la console d'administration.
  2. Cliquez sur Ressources > Gestionnaires de pools d'objets.
  3. Spécifiez une valeur de Portée et cliquez sur Nouveau.
  4. Spécifiez les propriétés requises pour les paramètres du gestionnaire de travaux :
    Portée
    Portée de la ressource configurée. Cette valeur spécifie l'emplacement du fichier de configuration.
    Chaîne
    Nom du gestionnaire de pools d'objets. Il peut comporter 30 caractères ASCII au maximum.
    Nom JNDI
    Nom JNDI (Java Naming and Directory Interface) du gestionnaire de travaux.
  5. [Facultatif] Spécifiez une Description et une Catégorie pour le gestionnaire de compteurs.

Résultats

Les applications peuvent alors trouver un gestionnaire de pools d'objets donné en effectuant une recherche JNDI à l'aide du nom JNDI spécifique.

Exemple

Le code suivant indique comment une application recherche un objet du gestionnaire de pools :
InitialContext ic =  new InitialContext();
ObjectPoolManager opm = (ObjectPoolManager)ic.lookup("java:comp/env/pool");
Quand elle possède un ObjectPoolManager, l'application peut placer en mémoire cache un pools d'objets pour les classes des types souhaités. Voici un exemple :
ObjectPool arrayListPool = null;
ObjectPool vectorPool = null;
try
{
	arrayListPool = opm.getPool(ArrayList.class);
	vectorPool = opm.getPool(Vector.class);
}
catch(InstantiationException e)
{
	// incident lors de la création du pool
}
catch(IllegalAccessException e)
{
	// incident lors de la création du pool
}
Lorsque l'application dispose des pools, elle peut les utiliser, comme dans l'exemple suivant :
ArrayList list = null;
try
{
	list = (ArrayList)arrayListPool.getObject();
	list.clear();	// à exécuter par précaution
	for(int i = 0; i < 10; ++i)
	{
		list.add("" + i);
	}
	// effectuer ce qui est nécessaire avec la liste de tableaux (ArrayList)
}
finally
{
	if(list != null) arrayListPool.returnObject(list);
}

Cet exemple présente la structure de base pour utiliser un pool d'objets. Si l'application ne renvoie pas l'objet, le seul inconvénient réside dans le fait que l'objet ne peut plus être utilisé.


Icône indiquant le type de rubrique Rubrique de tâche



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tasb_objectpool
Nom du fichier : tasb_objectpool.html