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.
Procédure
Résultats
Exemple
InitialContext ic = new InitialContext();
ObjectPoolManager opm = (ObjectPoolManager)ic.lookup("java:comp/env/pool");
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
}
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é.