Utilizzo di un pool di connessione JDBC per gestire le risorse del database utilizzate da un server di integrazione

Utilizzare le risorse del provider JDBC del nodo di integrazione per configurare l'utilizzo dei pool di thread indipendentemente dai pool di thread del nodo di input e del flusso di messaggi.

Informazioni su questa attività

IBM® App Connect Enterprise gestisce le connessioni JDBC nei seguenti modi:
  • Connessioni non in pool:
    • IBM App Connect Enterprise crea una connessione JDBC su richiesta per ogni istanza di flusso di messaggi che ne richiede una.
    • Ogni connessione JDBC è associata all'istanza del flusso di messaggi per cui è stata creata. Questa associazione viene mantenuta fino a quando non viene chiusa la connessione.
    • Ogni connessione JDBC inattiva per 60 secondi viene chiusa e non è più associata a un'istanza del flusso di messaggi.
    • Dopo la chiusura di una connessione di tipo « JDBC » associata a un’istanza di flusso di messaggi, se la stessa istanza richiede una connessione di tipo « JDBC », « IBM App Connect Enterprise » crea una nuova connessione di tipo « JDBC » su richiesta.
  • Connessioni in pool:
    • Quando un'istanza del flusso di messaggi richiede una connessione JDBC, IBM App Connect Enterprise assegna una connessione non utilizzata dal pool.
    • Se tutte le connessioni JDBC del pool sono occupate e la dimensione massima del pool non è stata raggiunta, IBM App Connect Enterprise crea una nuova connessione JDBC del pool. La dimensione massima del pool è specificata nella proprietà " Dimensione massima del pool di connessioni" della politica " JDBC Providers" (JDBCProviders).
    • Ogni connessione JDBC in pool rimane associata a un'istanza del flusso di messaggi solo per l'elaborazione di un messaggio di input.
    • Quando un'istanza del flusso di messaggi completa l'elaborazione di un messaggio di immissione, l'associazione con una connessione JDBC viene rimossa e la connessione JDBC viene restituita al lotto.
    • Ciascuna connessione JDBC in pool che è inattiva per 15 minuti viene chiusa e rimossa dal lotto.
    • Le connessioni JDBC raggruppate non sono applicabili ai nodi DatabaseRetrieve e DatabaseRoute .

L'uso di un pool di connessioni JDBC consente di scalare l'accesso al database indipendentemente dal numero di thread del flusso di messaggi.

Lo scopo della funzione di pooling delle connessioni dell' JDBC, disponibile all'indirizzo IBM App Connect Enterprise, è quello di:
  • Ridurre il tempo e la risorsa necessari per creare nuove connessioni, rendendo le connessioni in pool disponibili per il riutilizzo da parte di altri thread del flusso di messaggi al completamento delle transazioni.
  • Abilitare un maggiore controllo sul numero di connessioni database simultanee che possono essere in uso in qualsiasi momento per una specifica origine dati JDBC .
Sebbene questi obiettivi si sovrappongano a quelli del pool di connessioni J2EE Java™ , la priorità non è massimizzare le prestazioni delle singole chiamate JDBC al database. Da questo punto di vista, le connessioni JDBC non in pool potrebbero essere più efficienti in alcuni scenari.

È possibile creare un pool di connessioni JDBC impostando la proprietà Maximum size of connection pool della politica dei provider JDBC su un valore intero diverso da zero. Questa proprietà agisce a livello del server di integrazione per specificare il numero massimo di thread di connessione JDBC che è possibile utilizzare. Per impostazione predefinita, il valore zero è il comportamento standard di WebSphere® Message Broker Versione 8.0 , in cui viene creata una connessione JDBC per ciascun thread del flusso di messaggi.

Tutti i flussi di messaggi all'interno di un server di integrazione che utilizzano la stessa politica dei provider JDBC condividono anche un pool di connessione. È possibile monitorare il comportamento di un pool di connessioni JDBC utilizzando le statistiche delle risorse del nodo di integrazione

La proprietà Maximum size of connection pool è applicabile alle connessioni JDBC ottenute utilizzando l'API getJDBCType4Connection() del nodo JavaComputee alle operazioni del database nelle mappe di dati grafici richiamate dal nodo Mapping.

Nota: la proprietà Maximum size of connection pool non si applica alle connessioni JDBC utilizzate dai nodi DatabaseRetrieve o DatabaseRoute .