Impostazioni del lotto connessioni

Utilizzare questa pagina per configurare le impostazioni del pool connessioni.

Questa pagina della console di gestione è comune a una vasta gamma di tipi di risorse, quali origini dati JDBC e produzioni connessioni code JMS. Per visualizzare questa pagina, il percorso dipende dal tipo di risorsa ma generalmente si seleziona prima l'istanza del provider di risorse, quindi un'istanza del tipo di risorsa e, successivamente, si fa clic su Pool connessioni.
Prevenzione dei problemi: Il pool di connessione non è supportato in un client di applicazione. Il client di applicazione chiama il database direttamente e non passa attraverso un'origine dati. Se si desidera utilizzare la richiesta getConnection() dal client dell'applicazione, configurare il provider JDBC nei descrittori di distribuzione del client dell'aplicazione, utilizzando RAD (Rational Application Developer) o uno strumento assembly. La connessione viene stabilita tra il client dell'applicazione e il database. I client delle applicazioni non hanno un pool di connessione, ma è possibile configurare le impostazioni del provider JDBC nei descrittori di distribuzione del client.gotcha

Ad esempio: fare clic su Risorse > JDBC > Provider JDBC > provider_JDBC > Origini dati > origine_dati > Proprietà del pool di connessione

Il percorso per le factory di connessione code JMS è:Risorse > JMS > Factory connessioni code > factory_connessioni_code_JMS > [Ulteriori proprietà] Proprietà pool di connessione.

Timeout connessione

Specifica l'intervallo, in secondi, dopo il quale scade una richiesta di connessione e viene generata un'eccezione ConnectionWaitTimeoutException.

Questo valore indica il numero di secondi atteso da una richiesta di connessione se non vi sono altre connessioni disponibili nel pool libero e non è possibile creare nuove connessioni. Ciò generalmente avviene poiché è stato raggiunto il valore massimo di connessioni nel pool di connessioni particolare.

Ad esempio, se il timeout connessione è impostato a 300 e il numero massimo di connessioni è in uso, il gestore pool attende che una connessione fisica diventi disponibile per 300 secondi. Se in questo intervallo di tempo la connessione fisica non è ancora disponibile, il gestore pool genera un'eccezione ConnectionWaitTimeout. Nella maggior parte dei casi, non è opportuno tentare nuovamente il metodo getConnection(); se è necessaria un'attesa più lunga, aumentare il valore dell'impostazione Timeout connessione. Se l'applicazione rileva un'eccezione ConnectionWaitTimeout, rivedere l'utilizzo del pool di connessioni previsto da parte dell'applicazione e regolare opportunamente il pool di connessioni e il database.

Se il timeout connessione è impostato a 0, il gestore pool rimane in attesa finché una connessione non diventa disponibile. Ciò accade quando un'applicazione completa una transazione e restituisce una connessione al pool, oppure quando il numero di connessioni scende al di sotto del valore indicato da Numero massimo di connessioni, consentendo la creazione di una nuova connessione fisica.

Se Numero massimo connessioni è impostato a 0, che consente un numero infinito di connessioni fisiche, il valore Timeout connessione viene ignorato.

Tipo dati Numero intero
Unità di misura Secondi
Valore predefinito 180
Intervallo int da 0 al valore massimo
Numero massimo di connessioni

Specifica il numero massimo di connessioni fisiche che è possibile creare in questo lotto.

Sono connessioni fisiche alla risorsa di backend. Una volta raggiunto questo numero, non vengono create nuove connessioni fisiche e l'utente resta in attesa fino a quando una connessione fisica, attualmente in uso, viene restituita al pool o viene generata un'eccezione ConnectionWaitTimeoutException. Ad esempio: se il valore Numero massimo connessioni è impostato a 5 ed esistono cinque connessioni fisiche in uso, il gestore pool attende, per il tempo specificato in Timeout connessione, che una connessione si liberi.

Conoscere il numero di pool connessione che possono potenzialmente richiedere connessioni dal backend (come database DB2 o un server CICS) aiuta a determinare un valore per la proprietà Numero massimo connessioni.

[AIX Solaris HP-UX Linux Windows] [iSeries] Per più server delle applicazioni individuali che utilizzano la stessa configurazione dell'origine dati o della produzione connessioni J2C, esiste un pool connessioni fisico separato per ogni server. Se questi stessi server vengono clonati, WebSphere Application Server implementa un pool connessioni separato per ogni clone.

[z/OS] Considerare il numero di servant che accedono alla stessa risorsa: al runtime questa cifra praticamente moltiplica l'impostazione di Numero massimo connessioni. Se i servant invocano la stessa connessione dell'origine dati JDBC o della produzione connessioni J2C, WebSphere Application Server implementa un pool connessioni fisico per ogni server. Dunque, lo stesso pool connessioni si trova, indipendentemente, in ogni servant. Le impostazioni di Numero massimo connessioni si applicano ad ognuno di questi pool.

[AIX Solaris HP-UX Linux Windows] [iSeries] Tutti questi pool corrispondono alla stessa configurazione dell'origine dati o della produzione connessioni. Perciò tutti questi pool connessione possono potenzialmente richiedere connessioni per la stessa risorsa backend, nello stesso momento. Il singolo valore Numero massimo connessioni impostato sul pannello della console viene applicato ad ognuno di questi pool. Di conseguenza, impostare un alto valore di Numero massimo connessioni può dare come risultato una serie di richieste di carico di connessioni che eccede la risorsa di backend.

[z/OS] In potenza, tutte le applicazioni che richiedono origine dati o produzione connessioni in questi servant possono tentare di utilizzare la risorsa simultaneamente. Dunque i pool connessione corrispondenti richiedono connessioni dallo stesso backend, nello stesso momento. Non impostare un valore di Numero massimo connessioni che possa provocare un sovraccarico da parte delle richieste di carico delle connessioni al database o ad altri EIS (Enterprise Information System).

Tipo dati Numero intero
Valore predefinito 10
Intervallo Da 0 al numero intero massimo

Se Numero massimo connessioni è impostato a 0, il valore del timeout connessione viene ignorato.

Suggerimento: Per ottenere migliori prestazioni, impostare il valore del pool connessioni su un valore più basso rispetto all'opzione Numero massimo connessioni nel contenitore Web. Le impostazioni su un valore basso, ad esempio 10-30 connessioni, hanno un funzionamento migliore delle impostazioni su un valore alto, ad esempio 100.

È possibile utilizzare Tivoli Performance Viewer per individuare il numero ottimale di connessioni in un pool. Se il numero di elementi in attesa simultanei è maggiore di 0, ma il carico della CPU non si avvicina al 100%, aumentare la dimensione del pool connessioni. Se il valore Percentuale utilizzata è coerentemente basso con carico di lavoro normale, ridurre il numero di connessioni nel pool.

Numero minimo di connessioni

Specifica il numero minimo di connessioni fisiche da mantenere.

Se la dimensione del pool di connessioni è impostata sulla dimensione minima del pool di connessioni o su un valore inferiore, il thread Timeout di non utilizzo non elimina le connessioni fisiche. Tuttavia, il pool non crea le connessioni solo per garantire il mantenimento della dimensione minima del pool connessioni. Inoltre, se si imposta un valore per Timeout scaduto, le connessioni scadute vengono eliminate, indipendentemente dall'impostazione minima della dimensione di un pool.

Ad esempio, se il valore Numero minimo di connessioni è impostato a 3 e viene creata una connessione fisica, il thread Timeout di non utilizzo non elimina tale connessione. Dallo stesso token il thread non crea automaticamente due connessioni fisiche aggiuntive per raggiungere l'impostazione Numero minimo connessioni.

Tipo dati Numero intero
Valore predefinito 1
Intervallo int da 0 al valore massimo
Tempo di raccolta

Specifica l'intervallo, in secondi, tra le esecuzioni del thread di gestione lotti.

Ad esempio, se Tempo di raccolta è impostato su 60, il thread di gestione lotti viene eseguito ogni 60 secondi. L'intervallo Tempo di raccolta influisce sulla precisione delle impostazioni Timeout di non utilizzo e Timeout scaduto. Ad un intervallo minore corrisponde una maggiore precisione. Se il thread di gestione pool è abilitato, impostare il valore Tempo di raccolta su un valore inferiore a Timeout di non utilizzo e Timeout scaduto. Se viene eseguito il thread di gestione pool, questo annulla le connessioni rimaste inutilizzate più a lungo del valore temporale specificato in Timeout di non utilizzo, fino a quando non viene raggiunto il numero di connessioni specificato in Numero minimo connessioni. Il thread di gestione pool elimina inoltre le connessioni che sono state attive più a lungo del valore specificato in Timeout scaduto.

L'intervallo Tempo di raccolta influisce inoltre sulle prestazioni. Un intervallo minore indica che il thread di gestione lotti verrà eseguito più spesso, degradando le prestazioni.

Per disabilitare il thread di gestione lotti, impostare Tempo di raccolta su 0 o impostare Timeout di non utilizzo e Timeout scaduto su 0. La modalità che si consiglia di seguire per disabilitare il thread di gestione lotti è impostare Tempo di raccolta su 0 in modo da ignorare Timeout di non utilizzo e Timeout scaduto. Tuttavia, se Timeout di non utilizzo e Timeout non scaduto sono impostati su 0, il thread di gestione lotti viene eseguito ma verranno ignorate solo le connessioni fisiche il cui timeout scade su valori non zero.

Tipo dati Numero intero
Unità di misura Secondi
Valore predefinito 180
Intervallo int da 0 al valore massimo
Timeout di non utilizzo

Specifica l'intervallo in secondi dopo il quale una connessione non utilizzata o inattiva viene eliminata.

Per ottimizzare le prestazioni, impostare Timeout di non utilizzo su un valore superiore a Tempo di raccolta. Le connessioni fisiche non utilizzate vengono eliminate solo se il numero corrente di connessioni non supera l'impostazione Numero minimo connessioni. Ad esempio, se il timeout di non utilizzo viene impostato a 120 e il thread di gestione pool è abilitato (il tempo di raccolta non è 0), l'eventuale connessione fisica che non viene utilizzata per due minuti viene eliminata.

L'accuratezza e le prestazioni di questo timeout sono influenzate dal valore Tempo di raccolta. Per ulteriori informazioni, consultare Tempo di raccolta.

Tipo dati Numero intero
Unità di misura Secondi
Valore predefinito 1800
Intervallo int da 0 al valore massimo
Timeout scaduto

Specifica l'intervallo in secondi prima che una connessione fisica venga eliminata.

L'impostazione Timeout scaduto su 0 consente alle connessioni fisiche attive di rimanere nel pool per un tempo indefinito. Per ottimizzare le prestazioni, impostare Timeout scaduto su un valore superiore a Tempo di raccolta.

Ad esempio, se Timeout scaduto è impostato a 1200 e Tempo di raccolta su 0, le eventuali connessioni fisiche che sono state attive per 1200 secondi (20 minuti) vengono eliminate dal pool. L'unica eccezione si verifica se la connessione è implicata in una transazione quando viene raggiunto il valore di timeout scaduto, caso in cui il server delle applicazioni non annullerà la connessione fino a quando la transazione non viene completata e la connessione viene chiusa.

L'accuratezza e le prestazioni di questo timeout sono influenzate dal valore Tempo di raccolta. Per ulteriori informazioni, consultare Tempo di raccolta.

Tipo dati Numero intero
Unità di misura Secondi
Valore predefinito 0
Intervallo int da 0 al valore massimo
Politica di eliminazione

Specifica come eliminare le connessioni quando viene rilevata una connessione obsoleta o un errore di connessione irreversibile.

I valori validi sono EntirePool e FailingConnectionOnly.

Tipo dati String
Valori predefiniti
  • Produzioni connessione di EntirePool per J2C e relative a JMS
  • Origini dati di EntirePool per WebSphere Versione 4.0
  • EntirePool per le attuali origini dati create attraverso la console di gestione
  • EntirePool per le origini dati della versione corrente scritta mediante i comandi AdminConfig, invocando i modelli JDBC creati all'interno di WebSphere Application Server (Per informazioni sul comando createUsingTemplate, consultare l'articolo del Centro informazioni "Comandi per l'oggetto AdminConfig.")
  • FailingConnectionOnly per le origini dati scritte in wsadmin senza richiamare i modelli JDBC
:
Intervallo
EntirePool
Tutte le connessioni presenti nel pool vengono contrassegnate come obsolete. Qualsiasi connessione non in uso viene chiusa immediatamente. Una connessione in uso viene chiusa e, alla successiva operazione su quella connessione, si verifica un'eccezione causata da una connessione obsoleta. Richieste getConnection() successive da parte dell'applicazione determinano nuove connessioni all'apertura del database. Se si sta utilizzando questa politica di eliminazione, esistono poche possibilità che alcune connessioni presenti nel pool vengano chiuse inutilmente quando non sono obsolete. Tuttavia, ciò si verifica raramente. Nella maggior parte dei casi, la scelta migliore è una politica di eliminazione EntirePool.
FailingConnectionOnly
Viene chiusa solo la connessione che ha causato l'eccezione per connessione obsoleta. Sebbene questa impostazione elimini la possibilità che connessioni valide vengano chiuse inutilmente, da una prospettiva dell'applicazione, rende più complicato il ripristino. Poiché viene chiusa solo la connessione che attualmente presenta errori, esiste un'ampia possibilità che la richiesta getConnection() successiva da parte dell'applicazione restituisca anch'essa una connessione obsoleta dal pool, generando ulteriori eccezioni per connessioni obsolete.

La funzione di verifica preliminare delle connessioni consente di separare un'applicazione dalle connessioni, raggruppate in pool, non valide. Quando una risorsa backend, ad esempio un database, si arresta, è possibile che le connessioni raggruppate in pool non valide siano presenti nel pool libero. Ciò si verifica in special modo quando la politica di eliminazione è failingConnectionOnly; in questo caso, la connessione in errore viene eliminata dal pool. A seconda dell'errore verificatosi, le connessioni rimanenti potrebbero non risultare valide.




I collegamenti contrassegnati (online) richiedono un accesso a Internet.

Concetti correlati
Attività correlate
Riferimenti correlati
Funzioni della pagina della console di gestione


Nome file: udat_conpoolset.html