COM+-Objektpoolingkonzepte
Objektpooling ist ein von COM+ bereitgestellter automatischer Dienst, mit dem Sie eine Komponente so konfigurieren können, dass Instanzen von sich selbst in einem Pool aktiv bleiben und von jedem Client verwendet werden können, der die Komponente anfordert. Sie können den Pool, der für eine bestimmte Komponente verwaltet wird, administrativ konfigurieren und überwachen, indem Sie Merkmale wie Poolgröße und Timeoutwerte für Erstellungsanforderungen angeben. Wenn die Anwendung ausgeführt wird, verwaltet COM+ den Pool für Sie und verarbeitet die Details der Objektaktivierung und Wiederverwendung gemäß den von Ihnen angegebenen Kriterien.
Sie können sehr erhebliche Leistungs- und Skalierungsvorteile erzielen, indem Sie Objekte auf diese Weise wiederverwenden, insbesondere wenn sie geschrieben werden, um die Wiederverwendung in vollem Umfang zu nutzen. Mit Objektpooling profitieren Sie von den folgenden Vorteilen:
- Sie können die Objektnutzungszeit für jeden Client beschleunigen und zeitaufwendige Initialisierung und Ressourcenerfassung aus der tatsächlichen Arbeit des Objekts für Clients berücksichtigen.
- Sie können die Kosten für den Erwerb teurer Ressourcen auf alle Clients verteilen.
- Sie können Objekte beim Starten der Anwendung vorab zuordnen, bevor Clientanforderungen eintreffen.
- Sie können die Ressourcennutzung mit der Verwaltung von Administratorpools steuern, indem Sie z. B. eine geeignete maximale Poolebene festlegen, können Sie nur so viele Datenbankverbindungen offen lassen, für die Sie eine Lizenz haben.
- Sie können das Pooling administrativ konfigurieren, um die verfügbaren Hardwareressourcen optimal zu nutzen, und Sie können die Poolkonfiguration bei Änderungen der verfügbaren Hardwareressourcen problemlos anpassen.
- Sie können die Reaktivierungszeit für Objekte beschleunigen, die die Just-in-Time-Aktivierung (JIT) verwenden, während Sie bewusst steuern, wie Ressourcen für Clients reserviert werden.
Schreiben poolfähiger Objekte
Poolfähige Objekte müssen bestimmte Anforderungen erfüllen, damit ein einzelnes Objekt instance von mehreren Clients verwendet werden kann. Beispielsweise können sie keinen Clientstatus enthalten oder eine Threadaffinität aufweisen. Transaktionsobjekte haben auch besondere Anforderungen, da verwaltete Ressourcen, die von einem Poolobjekt gehalten werden, manuell in eine Transaktion aufgenommen werden müssen.
Poolobjekte können IObjectControl implementieren, um zu steuern, wie sie wiederverwendet werden. Dadurch können sie initialisieren, wenn sie in einem bestimmten Kontext aktiviert werden, um den Clientstatus bei der Deaktivierung zu sauber und anzugeben, wann sie sich in einem nicht wiederverwendbaren Zustand befinden.
Häufig ist es nützlich, poolfähige Objekte in einer etwas generischen Weise zu schreiben, damit sie mit einer Konstruktorzeichenfolge administrativ angepasst werden können. Beispielsweise kann ein Objekt geschrieben werden, um eine generische ODBC-Verbindung zu enthalten, wobei ein bestimmter DSN in einer Konstruktorzeichenfolge administrativ angegeben wird.
Die Themen in diesem Abschnitt, die in der folgenden Tabelle beschrieben werden, enthalten Informationen zur Funktionsweise des Objektpoolings in COM+ sowie Informationen zum Schreiben, Konfigurieren und Implementieren poolfähiger Objekte.
Thema | BESCHREIBUNG |
---|---|
Funktionsweise des Objektpoolings |
Stellt grundlegende Konzepte dar. |
Verbessern der Leistung mit Objektpooling |
Enthält spezifische Details dazu, wie Sie Objektpooling am effektivsten verwenden können. |
Anforderungen für Poolfähige Objekte |
Enthält Details zum Schreiben eines Objekts, das im Pool zusammengefasst werden soll. |
Pooling Transactional Objects |
Enthält Details zu den besonderen Anforderungen, die für poolfähige Transaktionsobjekte gelten. |
Steuern von Objektlebensdauer und -zustand |
Beschreibt, wie Poolobjekte implementiert werden können, um zu steuern, wie sie wiederverwendet werden. |