Condividi tramite


Concetti relativi al riciclo delle applicazioni COM+

Il riciclo delle applicazioni può aumentare significativamente la stabilità complessiva delle applicazioni COM+ offrendo una soluzione rapida per i problemi noti e contribuendo a proteggersi da quelli imprevisti. Ad esempio, le prestazioni dell'applicazione possono peggiorare nel tempo a causa di problemi quali perdite di memoria, utilizzo delle risorse non modificabili e errore di processo. COM+ fornisce il riciclo delle applicazioni come soluzione a questi problemi. È possibile usare il riciclo delle applicazioni per arrestare automaticamente un processo e riavviarlo, reinizializzando così un processo in errore e riallocazione della memoria usata.

Il riciclo delle applicazioni funziona creando un duplicato del processo Dllhost associato a un'applicazione. Questo processo Dllhost duplicato consente di gestire tutte le richieste future di oggetti, che lasciano il vecchio Dllhost per completare la manutenzione delle richieste di oggetto rimanenti. Il processo Dllhost precedente viene arrestato quando rileva il rilascio di tutti i riferimenti esterni agli oggetti nel processo o quando viene raggiunto il valore di timeout di scadenza. Tramite questo comportamento, il riciclo delle applicazioni garantisce che un'applicazione client non subisca un'interruzione del servizio.

Nota

Non è possibile riciclare un'applicazione COM+ configurata per l'esecuzione come servizio Windows. Inoltre, le applicazioni di libreria hanno le proprietà di riciclo e pooling del processo host.

 

È possibile configurare il riciclo dell'applicazione in modo amministrativo usando lo strumento di amministrazione di Servizi componenti o a livello di codice tramite COM+ Amministrazione istrative SDK. È possibile riciclare i processi in base a diversi criteri, determinati dalle proprietà seguenti di un oggetto COM Amministrazione CatalogObject nell'insieme Applications:

  • RecycleLifetimeLimit. Numero massimo di minuti che un processo può essere eseguito prima che venga riciclato. L'intervallo valido è compreso tra 0 e 30.240 minuti (21 giorni). Il numero predefinito di minuti è 0, che indica che il processo non verrà riciclato dal raggiungimento di un limite di durata.
  • RecycleMemoryLimit. Quantità massima di utilizzo della memoria del processo (in kilobyte) prima del riciclo del processo. Se l'utilizzo della memoria del processo supera il numero specificato per più di un minuto, il processo viene riciclato. L'intervallo valido è compreso tra 0 e 1.048.576 KB. La quantità predefinita di utilizzo della memoria è 0 KB, che indica che il processo non verrà riciclato dal raggiungimento di un limite di memoria.
  • RecycleCallLimit. Numero massimo di chiamate che gli oggetti applicazione possono accettare prima di riciclare il processo. L'intervallo valido è compreso tra 0 e 1.048.576 chiamate. Il numero predefinito di chiamate è 0, che indica che il processo non verrà riciclato dal raggiungimento di un limite di chiamate.
  • RecycleActivationLimit. Numero massimo di attivazioni di oggetti applicazione da accettare prima di riciclare il processo. L'intervallo valido è compreso tra 0 e 1.048.576 attivazioni. Il numero predefinito di attivazioni è 0, che indica che il processo non verrà riciclato dal raggiungimento di un limite di attivazione.

Inoltre, la proprietà RecycleExpirationTimeout dell'oggetto COM Amministrazione CatalogObject viene utilizzata per forzare l'arresto di un processo riciclato. Indica il numero di minuti di attesa per il rilascio di tutti i riferimenti esterni agli oggetti nel processo riciclato prima di arrestare forzatamente il processo. L'intervallo valido è compreso tra 1 e 1440 minuti (24 ore) e il timeout di scadenza predefinito è di 15 minuti. Questo valore viene usato solo quando è già determinato che un processo verrà riciclato in base agli altri criteri.

È possibile selezionare più criteri per riciclare un'applicazione. COM+ ricicla l'applicazione dopo che il primo del set di criteri è soddisfatto. È possibile impostare il valore di timeout di scadenza per determinare per quanto tempo un processo Dllhost precedente può impiegare il completamento delle richieste di servizio rimanenti prima di essere arrestato forzatamente.

L'insieme ApplicationInstances fornisce la proprietà HasRecycled, che consente di determinare se l'applicazione è stata riciclata.

Attività di riciclo delle applicazioni COM+

RecycleSurrogate