Freigeben über


Konfigurieren von COM+-Anwendungswiederverwendungswerten

Sie können die folgenden Methoden verwenden, um Anwendungswiederverwendungswerte für Ihre COM+-Anwendung zu konfigurieren.

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.

 

Verwaltungstool für Komponentendienste

Führen Sie die folgenden Schritte aus, um das Anwendungsrecycling für eine COM+-Anwendung zu konfigurieren:

  1. Klicken Sie in der Konsolenstruktur des Verwaltungstools Komponentendienste mit der rechten Maustaste auf die COM+-Serveranwendung, die wiederverwendet werden soll, und klicken Sie dann auf Eigenschaften.

  2. Geben Sie auf der Registerkarte Pooling & Recycling werte für Lebensdauerlimit (Minuten),Arbeitsspeicherlimit (KB),Ablauftimeout (Minuten),Aufruflimit und Aktivierungslimit ein, je nach den kriterien, die Sie verwenden möchten.

    • Lebensdauerlimit gibt die maximale Anzahl von Minuten an, 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.
    • Arbeitsspeicherlimit gibt die maximale Speicherauslastung des Prozesses (in Kilobyte) an, 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, und die Standardmenge der Speicherauslastung beträgt 0 KB.
    • Ablauftimeout gibt die Anzahl von Minuten an, die vor dem erzwungenen Herunterfahren auf die Freigabe aller externen Verweise auf Objekte im Prozess gewartet werden soll. 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.
    • Aufruflimit gibt die maximale Anzahl von Aufrufen an, die Anwendungsobjekte vor dem Recycling des Prozesses annehmen können. Der gültige Bereich ist 0 bis 1.048.576 Anrufe, und die Standardanzahl der Anrufe ist 0.
    • Aktivierungslimit gibt die maximale Anzahl von Anwendungsobjektaktivierungen an, die vor dem Recycling des Prozesses akzeptiert werden sollen. Der gültige Bereich beträgt 0 bis 1.048.576 Aktivierungen, und die Standardanzahl der Aktivierungen ist 0.

    Hinweis

    Wenn der Wert für Lebensdauer, Arbeitsspeicherlimit, Aufruflimit oder Aktivierungslimit auf 0 (Standardwert) festgelegt ist, ist die Anwendungswiederverwendung für dieses Kriterium deaktiviert. Wenn alle vier Kriterien auf 0 festgelegt sind, wird das Anwendungsrecycling für die ausgewählte Anwendung deaktiviert.

     

  3. Klicken Sie auf OK.

Visual Basic

Die folgende Funktion in Microsoft Visual Basic veranschaulicht, wie Sie die Werte für das Anwendungsrecycling für jede ausgewählte COM+-Serveranwendung festlegen können. Um sie in Visual Basic zu verwenden, fügen Sie einen Verweis auf die COM+-Admin-Typbibliothek hinzu.

Function SetMyApplicationRecycling( _
  strApplicationName As String, _
  lngLifetimeLimit As Long, _
  lngMemoryLimit As Long, _
  lngCallLimit As Long, _
  lngActivationLimit As Long, _
  lngExpirationTimeout As Long _
) As Boolean  ' Return False if any errors occur.

    SetMyApplicationRecycling = False  ' Initialize the function.
    On Error GoTo My_Error_Handler  ' Initialize error handling.

    Dim objCatalog As COMAdmin.COMAdminCatalog
    Dim objAppCollection As COMAdmin.COMAdminCatalogCollection
    Dim objApplication As COMAdmin.COMAdminCatalogObject
    Set objCatalog = CreateObject("COMAdmin.COMAdminCatalog")
    Set objAppCollection = objCatalog.GetCollection("Applications")
    objAppCollection.Populate
    For Each objApplication In objAppCollection
        With objApplication
            If .Name = strApplicationName Then
                .Value("RecycleLifetimeLimit") = lngLifetimeLimit
                .Value("RecycleMemoryLimit") = lngMemoryLimit
                .Value("RecycleCallLimit") = lngCallLimit
                .Value("RecycleActivationLimit") = lngActivationLimit
                .Value("RecycleExpirationTimeout") = lngExpirationTimeout
                MsgBox strApplicationName & _
                  " recycling values are now set to the following: " & _
                  vbNewLine & vbNewLine & _
                  "Lifetime Limit = " & lngLifetimeLimit & vbNewLine & _
                  "Memory Limit = " & lngMemoryLimit & vbNewLine & _
                  "Call Limit = " & lngCallLimit & vbNewLine & _
                  "Activation Limit = " & lngActivationLimit & vbNewLine _
                  & "Expiration Timeout = " & lngExpirationTimeout
                Exit For
            End If
        End With
    Next
    objAppCollection.SaveChanges
    Set objApplication = Nothing
    Set objAppCollection = Nothing
    Set objCatalog = Nothing
    SetMyApplicationRecycling = True  ' Successful end to procedure
    Exit Function
    
My_Error_Handler:  ' Replace with specific error handling.
    MsgBox "Error # " & Err.Number & " (Hex: " & Hex(Err.Number) _
      & ")" & vbNewLine & Err.Description
    Set objApplication = Nothing
    Set objAppCollection = Nothing
    Set objCatalog = Nothing
End Function

Um die Funktion zu verwenden, geben Sie einen Zeichenfolgenwert für den Anwendungsnamen und ganzzahlige Werte für die gewünschten Anwendungswiederverwendungseinstellungen an. Der folgende Visual Basic-Code zeigt, wie der Wert RecycleLifetimeLimit auf 5, der Wert recycleMemoryLimit auf 10, der RecycleCallLimit-Wert auf 9, der RecycleActivationLimit-Wert auf 100 und der RecycleExpirationTimeout-Wert auf 15 festgelegt werden.

Sub Main()
    If Not SetMyApplicationRecycling("MyApp", 5, 10, 9, 100, 15) Then
        MsgBox "SetMyApplicationRecycling failed."
    End If
End Sub

COM+-Anwendungsrecyclingkonzepte