Compartilhar via


Configurando valores de reciclagem de aplicativos COM+

Você pode usar os seguintes métodos para configurar valores de reciclagem de aplicativo para seu aplicativo COM+.

Observação

Não é possível reciclar um aplicativo COM+ que foi configurado para ser executado como um serviço do Windows. Além disso, os aplicativos de biblioteca têm as propriedades de reciclagem e agrupamento de seu processo de host.

 

Ferramenta administrativa de serviços de componentes

Para configurar a reciclagem de aplicativos para um aplicativo COM+, use as seguintes etapas:

  1. Na árvore de console da ferramenta administrativa Serviços de Componentes, clique com o botão direito do mouse no aplicativo de servidor COM+ que deseja reciclar e clique em Propriedades.

  2. Na guia Pooling & Reciclagem, insira valores para Limite de Vida Útil (minutos), Limite de Memória (KB), Tempo Limite de Expiração (minutos), Limite de Chamada e Limite de Ativação, dependendo dos critérios que você deseja usar.

    • Lifetime Limit indica o número máximo de minutos que um processo pode executar antes de ser reciclado. O intervalo válido é de 0 a 30.240 minutos (21 dias). O número padrão de minutos é 0.
    • Limite de memória indica a quantidade máxima de uso de memória do processo (em quilobytes) antes de reciclar o processo. Se o uso de memória do processo exceder o número especificado por mais de um minuto, o processo será reciclado. O intervalo válido é de 0 a 1.048.576 KB, e a quantidade padrão de uso de memória é 0 KB.
    • O tempo limite de expiração indica o número de minutos a esperar, antes de ser desligado à força, para a liberação de todas as referências externas a objetos no processo. O intervalo válido é de 1 a 1440 minutos (24 horas) e o tempo limite de expiração padrão é de 15 minutos. Esse valor é utilizado somente quando já está determinado que um processo será reciclado com base nos demais critérios.
    • Limite de Chamadas indica o número máximo de chamadas que os objetos de aplicativo podem aceitar antes de reciclar o processo. O intervalo válido é de 0 a 1.048.576 chamadas e o número padrão de chamadas é 0.
    • Limite de Ativação indica o número máximo de ativações de objeto de aplicativo a serem aceitas antes de reciclar o processo. O intervalo válido é de 0 a 1.048.576 ativações e o número padrão de ativações é 0.

    Observação

    Quando o valor Limite de Tempo de Vida, Limite de Memória, Limite de Chamada ou Limite de Ativação é definido como 0 (o valor padrão), a reciclagem de aplicativos para esse critério é desabilitada. Quando todos esses quatro critérios são definidos como 0, a reciclagem de aplicativos é desabilitada para o aplicativo selecionado.

     

  3. Clique em OK.

Visual Basic

A função a seguir no Microsoft Visual Basic demonstra como você pode definir os valores de reciclagem de aplicativo para qualquer aplicativo de servidor COM+ que você escolher. Para usá-lo a partir do Visual Basic, adicione uma referência à biblioteca de tipos de administração 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

Para usar a função, forneça um valor de cadeia de caracteres para o nome do aplicativo e valores inteiros para as configurações de reciclagem de aplicativo desejadas. O código do Visual Basic a seguir mostra como definir o valor RecycleLifetimeLimit para 5, o valor RecycleMemoryLimit para 10, o valor RecycleCallLimit para 9, o valor RecycleActivationLimit para 100 e o valor RecycleExpirationTimeout para 15.

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

Conceitos de reciclagem de aplicativos COM+