共用方式為


設定 COM+ 應用程式回收值

您可以使用下列方法來設定 COM+ 應用程式的應用程式回收值。

注意

您無法回收已設定為以 Windows 服務身分執行的 COM+ 應用程式。 此外,函式庫應用程式具有其宿主進程的回收和共用屬性。

 

元件服務系統管理工具

若要設定 COM+ 應用程式的應用程式回收,請使用下列步驟:

  1. 在元件服務系統管理工具的控制台樹中,以滑鼠右鍵按下您要回收的 COM+ 伺服器應用程式,然後按下 [[屬性]

  2. 在 [共用 & 回收] 索引標籤上,輸入 存留期限制記憶體限制到期逾時(分鐘)通話限制,以及 啟用限制的值,視您想要使用的準則而定。

    • 存留期限制 指出進程在回收之前可以執行的最大分鐘數。 有效範圍是 0 到 30,240 分鐘(21 天)。 默認分鐘數為 0。
    • 記憶體限制 表示回收進程之前進程記憶體使用量上限(以 KB 為單位)。 如果進程的記憶體使用量超過指定的數目超過一分鐘,就會回收進程。 有效範圍是 0 到 1,048,576 KB,而預設的記憶體使用量為 0 KB。
    • 過期時間 表示在被強制關閉之前,需等候的分鐘數,以釋放進程中的所有物件外部參考。 有效範圍是 1 到 1440 分鐘(24 小時),預設到期時間為 15 分鐘。 只有在已判斷進程會根據其他準則回收時,才會使用此值。
    • 呼叫限制 指出應用程式物件在回收程式之前可以接受的呼叫數目上限。 有效範圍是 0 到 1,048,576 個呼叫,而預設呼叫數目為 0。
    • 啟用限制 表示回收程式之前,要接受的應用程式對象啟用數目上限。 有效範圍是 0 到 1,048,576 個啟用,而預設啟用數目為 0。

    注意

    存留期限制記憶體限制呼叫限制,或 啟用限制 值設定為 0(預設值),則會停用該準則的應用程式回收。 當這四個準則都設定為 0 時,選取的應用程式會停用應用程式回收。

     

  3. 按下 確定

Visual Basic

Microsoft Visual Basic 中的下列函式示範如何為您選擇的任何 COM+ 伺服器應用程式設定應用程式回收值。 若要從 Visual Basic 使用它,請新增 COM+ 管理員類型庫的參考。

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

若要使用 函式,請為所需的應用程式回收設定提供應用程式名稱和整數值的字串值。 下列 Visual Basic 程式代碼示範如何將 RecycleLifetimeLimit 值設定為 5、RecycleMemoryLimit 值為 10、RecycleCallLimit 值設為 9、RecycleActivationLimit 值設為 100,並將 RecycleExpirationTimeout 值設為 15。

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

COM+ 應用程式回收概念