Condividi tramite


Concetti relativi al pool di oggetti COM+

Il pool di oggetti è un servizio automatico fornito da COM+ che consente di configurare un componente in modo che le istanze di se stesse siano attive in un pool, pronte per essere usate da qualsiasi client che richiede il componente. È possibile configurare e monitorare in modo amministrativo il pool gestito per un determinato componente, specificando caratteristiche quali le dimensioni del pool e i valori di timeout della richiesta di creazione. Quando l'applicazione è in esecuzione, COM+ gestisce automaticamente il pool, gestendo i dettagli dell'attivazione degli oggetti e riutilizzando in base ai criteri specificati.

È possibile ottenere vantaggi molto significativi in termini di prestazioni e ridimensionamento riutilizzando gli oggetti in questo modo, in particolare quando vengono scritti per sfruttare appieno il riutilizzo. Con il pool di oggetti, si ottengono i vantaggi seguenti:

  • È possibile velocizzare il tempo di utilizzo degli oggetti per ogni client, con il factoring dell'inizializzazione e l'acquisizione di risorse che richiedono molto tempo dal lavoro effettivo eseguito dall'oggetto per i client.
  • È possibile condividere il costo dell'acquisizione di risorse costose in tutti i client.
  • È possibile pre-allocare oggetti all'avvio dell'applicazione, prima che vengano eseguite richieste client.
  • È possibile gestire l'uso delle risorse con la gestione del pool amministrativo, ad esempio impostando un livello massimo di pool appropriato, è possibile mantenere aperto solo il numero di connessioni di database per cui si dispone di una licenza.
  • È possibile configurare in modo amministrativo il pooling per sfruttare al meglio le risorse hardware disponibili, è possibile modificare facilmente la configurazione del pool in base alla modifica delle risorse hardware disponibili.
  • È possibile velocizzare il tempo di riattivazione per gli oggetti che usano l'attivazione JIT (Just-In-Time), controllando deliberatamente il modo in cui le risorse sono dedicate ai client.

Scrittura di oggetti poolable

Gli oggetti poolable devono soddisfare determinati requisiti per consentire l'uso di una singola istanza di oggetto da parte di più client. Ad esempio, non possono contenere lo stato del client o avere affinità di thread. Gli oggetti transazionali hanno anche requisiti specifici, in quanto le risorse gestite contenute in un oggetto in pool devono essere inserite manualmente in una transazione.

Gli oggetti in pool possono implementare IObjectControl per controllare come vengono riutilizzati. In questo modo è possibile eseguire l'inizializzazione quando viene attivata in un determinato contesto, per pulire qualsiasi stato del client in caso di disattivazione e per indicare quando si trovano in uno stato non riutilizzabile.

Spesso, è utile scrivere oggetti in pool in modo un po' generico in modo che possano essere personalizzati in modo amministrativo con una stringa del costruttore. Ad esempio, un oggetto potrebbe essere scritto per contenere una connessione ODBC generica, con un determinato DSN specificato in modo amministrativo in una stringa del costruttore.

Gli argomenti di questa sezione, descritti nella tabella seguente, forniscono informazioni sul funzionamento del pool di oggetti in COM+, nonché informazioni su come scrivere, configurare e implementare oggetti in pool.

Argomento Descrizione
Funzionamento del pool di oggetti
Presenta i concetti di base.
Miglioramento delle prestazioni con il pool di oggetti
Fornisce dettagli specifici su come usare il pool di oggetti in modo più efficace.
Requisiti per gli oggetti poolable
Fornisce informazioni dettagliate su come scrivere un oggetto da raggruppare.
Pooling di oggetti transazionali
Fornisce informazioni dettagliate sui requisiti speciali che si applicano agli oggetti transazionali in pool.
Controllo della durata e dello stato degli oggetti
Viene descritto come implementare gli oggetti in pool per controllare il modo in cui vengono riutilizzati.

Attività di pool di oggetti COM+