Objektpools verwenden

Durch Verwendung eines Objektpools kann eine Anwendung vermeiden, wiederholt neue Java-Objekte erstellen zu müssen. Die meisten Objekte können einmal erstellt und dann erneut verwendet werden. Ein Objektpool unterstützt das Pooling von Objekten für die Wiederverwendung.

Informationen zu diesem Vorgang

Objektpools sind nicht für das Pooling von JDBC-Verbindungen und JMS-Verbindungen oder -Sitzungen vorgesehen. Für diesen Typ von Objekten stellt WebSphere Application Server spezielle Verfahren bereit. Diese Objektpools dienen als Pool für anwendungsdefinierte Objekte oder Developer-Kit-Typen.

Damit ein Objektpool verwendet werden kann, muss der Produktadministrator über die Administrationskonsole einen Objektpoolmanager definieren. In einer Application-Server-Zelle können mehrere Objektpoolmanager erstellt werden.
Anmerkung: Der Objektpoolmanager wird nur innerhalb des EJB-Containers oder Web-Containers unterstützt. Das Suchen und Verwenden eines konfigurierten Objektpoolmanagers aus einem J2EE-Anwendungs-Client-Container heraus wird nicht unterstützt.

Vorgehensweise

  1. Starten Sie die Administrationskonsole.
  2. Klicken Sie auf Ressourcen > Objektpoolmanager.
  3. Geben Sie im Feld Geltungsbereich einen Wert ein, und klicken Sie auf Neu.
  4. Geben Sie die erforderlichen Eigenschaften für die Work-Manager-Einstellungen an.
    Geltungsbereich
    Der Geltungsbereich der konfigurierten Ressource. Dieser Wert gibt das Verzeichnis für die Konfigurationsdatei an.
    Name
    Der Name des Objektpoolmanagers. Dieser Name kann bis zu 30 ASCII-Zeichen lang sein.
    JNDI-Name
    Der JNDI-Name (Java Naming and Directory Interface) für den Poolmanager.
  5. [Optional] Geben Sie für den Objektpoolmanager eine Beschreibung und eine Kategorie an.

Ergebnisse

Nach Ausführung dieser Schritte können Anwendungen den Objektpoolmanager finden, indem Sie unter Angabe des JNDI-Namens ein JNDI-Lookup ausführen.

Beispiel

Der folgende Code veranschaulicht, wie eine Anwendung ein ObjectPoolManager-Objekt findet:
InitialContext ic = new InitialContext();
ObjectPoolManager opm = (ObjectPoolManager)ic.lookup("java:comp/env/pool");
Wenn die Anwendung ein ObjectPoolManager-Objekt besitzt, kann sie einen Objektpool für die gewünschten Klassentypen zwischenspeichern. Beispiel:
ObjectPool arrayListPool = null;
ObjectPool vectorPool = null;
try
{
		arrayListPool = opm.getPool(ArrayList.class);
		vectorPool = opm.getPool(Vector.class);
}
catch(InstantiationException e)
{
		// Problem beim Erstellen des Pools
}
catch(IllegalAccessException e)
{
		// Problem beim Erstellen des Pools
}
Wenn die Pools für die Anwendung festgelegt sind, kann die Anwendung sie wie im folgenden Beispiel verwenden:
ArrayList list = null;
try
{
		list = (ArrayList)arrayListPool.getObject();
		list.clear();	// zur Sicherheit
		for(int i = 0; i < 10; ++i)
	{
				list.add("" + i);
	}
		// Die ArrayList wie erforderlich behandeln.
}
finally
{
		if(list != null) arrayListPool.returnObject(list);
}

Dies Beispiel zeigt das grundlegende Muster für die Verwendung von Objektpools. Falls die Anwendung das Objekt nicht zurückgibt, ist die einzige negative Auswirkung, dass das Objekt nicht wiederverwendet werden kann.


Symbol, das den Typ des Artikels anzeigt. Taskartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tasb_objectpool
Dateiname:tasb_objectpool.html