COM+-Anwendungsrecyclingkonzepte
Das Anwendungsrecycling kann die Allgemeine Stabilität Ihrer COM+-Anwendungen erheblich erhöhen, indem es eine schnelle Lösung für bekannte Probleme bietet und zum Schutz vor unerwarteten Problemen beiträgt. Beispielsweise kann sich die Anwendungsleistung im Laufe der Zeit aufgrund von Problemen wie Speicherverlusten, nicht skalierbarer Ressourcennutzung und Prozessfehlern verschlechtern. COM+ bietet anwendungsrecycling als Lösung für diese Probleme. Sie können das Anwendungsrecycling verwenden, um einen Prozess automatisch herunterzufahren und neu zu starten, wodurch ein fehlerhafter Prozess neu initialisiert und der verwendete Arbeitsspeicher neu zugeordnet wird.
Das Anwendungsrecycling funktioniert, indem ein Duplikat des Dllhost-Prozesses erstellt wird, der einer Anwendung zugeordnet ist. Dieser duplizierte Dllhost-Prozess verarbeitet alle zukünftigen Objektanforderungen, wodurch der alte Dllhost die Wartung der verbleibenden Objektanforderungen beendet. Der alte Dllhost-Prozess wird heruntergefahren, wenn er die Freigabe aller externen Verweise auf Objekte im Prozess erkennt oder wenn der Wert für das Ablauftimeout erreicht ist. Durch dieses Verhalten stellt das Anwendungsrecycling sicher, dass eine Clientanwendung keine Dienstunterbrechung erlebt.
Hinweis
Sie können keine COM+-Anwendung wiederverwenden, die für die Ausführung als Windows-Dienst konfiguriert wurde. Außerdem verfügen Bibliotheksanwendungen über die Recycling- und Poolingeigenschaften ihres Hostprozesses.
Sie können das Anwendungsrecycling administrativ konfigurieren, indem Sie das Component Services-Verwaltungstool oder programmgesteuert über das COM+-Verwaltungs-SDK konfigurieren. Sie können Prozesse basierend auf mehreren Kriterien wiederverwenden, die durch die folgenden Eigenschaften eines COMAdminCatalogObject-Objekts in der Applications-Auflistung bestimmt werden:
- RecycleLifetimeLimit. Die maximale Anzahl von Minuten, die ein Prozess ausgeführt werden kann, bevor er wiederverwendet wird. Der gültige Bereich beträgt 0 bis 30.240 Minuten (21 Tage). Die Standardanzahl von Minuten ist 0, was angibt, dass der Prozess nicht wiederverwendet wird, wenn ein Lebensdauerlimit erreicht wird.
- RecycleMemoryLimit. Die maximale Speicherauslastung des Prozesses (in Kilobyte), bevor der Prozess wiederverwendet wird. Wenn die Arbeitsspeicherauslastung des Prozesses länger als eine Minute die angegebene Anzahl überschreitet, wird der Prozess wiederverwendet. Der gültige Bereich beträgt 0 bis 1.048.576 KB. Die Standardmenge der Arbeitsspeicherauslastung beträgt 0 KB. Dies bedeutet, dass der Prozess nicht wiederverwendet wird, wenn ein Arbeitsspeicherlimit erreicht wird.
- RecycleCallLimit. Die maximale Anzahl von Aufrufen, die Anwendungsobjekte akzeptieren können, bevor der Prozess wiederverwendet wird. Der gültige Bereich beträgt 0 bis 1.048.576 Aufrufe. Die Standardanzahl von Anrufen ist 0, was angibt, dass der Prozess nicht wiederverwendet wird, wenn ein Anruflimit erreicht wird.
- RecycleActivationLimit. Die maximale Anzahl von Anwendungsobjektaktivierungen, die vor dem Recycling des Prozesses akzeptiert werden sollen. Der gültige Bereich beträgt 0 bis 1.048.576 Aktivierungen. Die Standardanzahl von Aktivierungen ist 0, was angibt, dass der Prozess nicht wiederverwendet wird, wenn ein Aktivierungslimit erreicht wird.
Darüber hinaus wird die RecycleExpirationTimeout-Eigenschaft des COMAdminCatalogObject-Objekts verwendet, um das Herunterfahren eines wiederverwendeten Prozesses zu erzwingen. Es gibt die Anzahl von Minuten an, die auf die Freigabe aller externen Verweise auf Objekte im wiederverwendeten Prozess gewartet werden soll, bevor der Prozess erzwungen wird. Der gültige Bereich beträgt 1 bis 1440 Minuten (24 Stunden), und das Standardmäßige Ablaufzeitlimit beträgt 15 Minuten. Dieser Wert wird nur verwendet, wenn bereits festgelegt ist, dass ein Prozess basierend auf den anderen Kriterien wiederverwendet wird.
Sie können mehrere Kriterien für das Recycling einer Anwendung auswählen. COM+ verwendet die Anwendung, nachdem das erste der Kriterien erfüllt wurde. Sie können den Wert für das Ablauftimeout festlegen, um zu bestimmen, wie lange ein alter Dllhost-Prozess das Abschließen der verbleibenden Dienstanforderungen verbringen kann, bevor er erzwungen heruntergefahren wird.
Die ApplicationInstances-Auflistung stellt die HasRecycled-Eigenschaft bereit, die eine Möglichkeit bietet, zu bestimmen, ob die Anwendung jemals wiederverwendet wurde.
Zugehörige Themen