Utilizaţi această pagină pentru a configura setările pool de conexiuni.
Evitare greutăţi: Punerea în pool a conexiunilor
nu este suportată într-un client de aplicaţie. Clientul de aplicaţii apelează baza de date direct şi nu trece printr-o sursă de date.
Dacă vreţi să utilizaţi cererea getConnection() de la clientul de aplicaţie,
configuraţi furnizorul JDBC din descriptorii de implementare a clientului de aplicaţie,
folosind Rational® Application Developer
sau o unealtă de asamblare. Conexiunea este stabilită între clientul de aplicaţii şi baza de date. Clienţii de aplicaţiei nu au un pool de
conexiune, dar pot să configureze setările furnizorului JDBC din descriptorii de implementare
ai clientului.gotchaSpecifică intervalul, în secunde, după care o cerere de conexiune intră întimeout, şi ConnectionWaitTimeoutException este aruncată.
Această valoare indică numărul de secunde pe care o cerere de conexiune îl aşteaptă când nu sunt conexiuni disponibile în pool-ul liber şi nici-o conexiune nouă nu poate fi creată. Aceasta apare de obicei deoarece valoarea maximă a conexiunilor din pool-ul de conexiuni particular a fost ajuns.
De exemplu, dacă Timeout-ul de conexiune este setat la 300 şi numărul maxim de conexiuni sunt toate în folosire, managerul pool aşteaptă 300 de secunde pentru ca o conexiune fizică să devină disponibilă. Dacă o conexiune fizică nu este disponibilă în timpul acestei perioade de timp, managerul de pool iniţiază o excepţie ConnectionWaitTimeout. În cele mai multe cazuri, nu va trebui să reîncercaţi metoda getConnection(); dacă este necesar un timp de aşteptare mai mare ar trebui să creşteţi valoarea de setare a Timeout-ului de conexiune. Dacă o excepţie ConnectionWaitTimeout este prinsă de către aplicaţie, examinaţi utilizarea pool-ului de conexiuni aşteptat al aplicaţiei şi ajustaţi pool-ul şi baza de date a conexiunii în concordanţă.
Dacă Timeout-ul de conexiune este setat la 0, managerul pool aşteaptă atât cât este necesar până când o conexiune devine disponibilă. Aceasta se întâmplă când aplicaţia finalizează o tranzacţie şi returnează o conexiune la pool sau când numărul de conexiuni scade sub valoarea Conexiunilor maxime şi este creată o nouă conexiune fizică.
Dacă Conexiunile maxime sunt setate la 0, este activat un număr infinit de conexiuni fizice şi valoarea Timeout-ului de conexiune este ignorată.
| Informaţii | Valoare |
|---|---|
| Tio de date | Număr întreg |
| Unităţi | Secunde |
| Valoarea implicită | 180 |
| Interval | 0 la max int |
Specifică numărul maxim de conexiuni fizice ce pot fi create în acest pool.
Acestea sunt conexiunile fizice către resursa back-end. Când acest număr este atins, nici-o conexiune fizică nouă nu este creată. Solicitantul aşteaptă până când o conexiune fizică care este în prezent în utilizare se întoarce la pool sau până când se afişează o eroare ConnectionWaitTimeoutException. De exemplu, dacă valoarea Conexiuni maxime este setată la 5 şi există 5 conexiuni fizice în utilizare, managerul pool aşteaptă durata specificată în Timeout-ul de conexiune pentru ca o conexiune fizică să devină liberă.
Cunoscând numărul de pool-uri de conexiuni care pot potenţial să ceară conexiuni de la back-end, cum ar fi o bază de date DB2® sau un server CICS®, vă ajută să determinaţi o valoare pentru proprietatea Conexiuni maxime.
![[AIX Solaris HP-UX Linux Windows]](../dist.gif)
Pentru servere de aplicaţii autonome multiple
care utilizează aceeaşi configuraţie a sursei de date sau o configuraţie de fabrică J2C,
există un pool de conexiuni fizice separate pentru
fiecare sever. Dacă clonaţi aceste servere de aplicaţii care sunt la fel, WebSphere Application Server (base) implementează
un pool de conexiune separată pentru fiecare clonă.
Consideraţi numărul de servanţi care accesează
aceeaşi resursă; la rulare, acest număr înmulţeşte în primul rând setarea dumneavoastră
Conexiuni maxime. Când servanţii pornesc aceeaşi sursă de date JDBC
sau configuraţie de fabrică de conexiuni J2C, WebSphere Application Server (baza) implementează
un pool de conexiuni fizice corespunzătoare pentru fiecare servant. Prin urmare acelaşi pool de conexiuni există, independent, în fiecare funcţionar. Setarea dumneavoastră Conexiuni maxime se aplică la fiecare din aceste pool-uri.
![[AIX Solaris HP-UX Linux Windows]](../dist.gif)
Toate aceste pool-uri de conexiuni
corespund aceeaşi sursă de date sau configuraţie de fabrică de conexiuni. Prin urmare toate aceste pool-uri de conexiuni pot cere potenţial conexiuni de la aceeaşi resursă back-end, în acelaşi timp. Valoarea singulară Conexiuni maxime pe care aţi setat-o pe acest panou consolă se aplică la fiecare din aceste pool-uri de conexiuni. În consecinţă, setarea unei valori mari a Conexiunilor maxime poate rezulta într-o încărcare de cereri de conexiuni care vă depăşeşte resursa de back-end.
Potenţial, fiecare aplicaţie care necesită
sursă de date sau fabrică de conexiuni în aceşti servanţi poate să încerce
să utilizeze resursa simultan. Prin urmare pool-urile de conexiuni corespunzătoare necesită conexiuni de la acelaşi back-end, în acelaşi timp.
Nu setaţi o valoare Conexiuni maxime care ar putea cauza ca încărcarea cererilor de conexiuni să vă depăşească baza de date sau alt sistem de informaţii întreprindere (EIS).
| Informaţii | Valoare |
|---|---|
| Tip de date | Număr întreg |
| Valoarea implicită | 10 |
| Interval | 0 la întreg maxim Dacă Conexiunile maxime sunt setate la 0, valoarea Timeout-ului de conexiune este ignorată. |
Puteţi să folosiţi Tivoli® Performance Viewer pentru a găsi numărul optim de conexiuni dintr-un pool. Dacă numărul de solicitanţi concurenţi este mai mare ca 0, dar încărcarea procesorului nu este aproape de 100%, luaţi în considerare creşterea dimensiunii pool-ului de conexiune. Dacă valoarea Procent utilizat este în mod consistent mai jos decât încărcarea de lucru normală, consideraţi scăderea numărului de conexiuni din pool.
Specifică numărul minim de conexiuni fizice de menţinut.
Dacă dimensiunea pool-ului de conexiuni este la sau mai mică decât dimensiunea pool-ului de conexiuni minimă, Firul de execuţie timeout nefolosit nu renunţă la conexiunile fizice. Totuşi, pool-ul nu creează conexiuni exclusiv pentru a asigura că dimensiunea pool-ului de conexiuni minimă este menţinută. De asemenea, dacă setaţi o valoare pentru Timeout-ul învechit, conexiunile cu o vechime expirată sunt ignorate, în ciuda setării dimensiunii pool-ului minime.
De exemplu, dacă valoarea Conexiunilor minime este setată la 3 şi este creată o conexiune fizică, firul de execuţie Timeout nefolosit nu renunţă la acea conexiune. La acelaşi jeton, firul de execuţie nu creează automat două conexiuni fizice suplimentare pentru a ajunge la setarea Conexiuni minime.
| Informaţii | Valoare |
|---|---|
| Tip de date | Număr întreg |
| Valoarea implicită | 0 |
| Interval | 0 la max int |
Specifică intervalul, în secunde, între rulările firelor de execuţie de întreţinere pool.
De exemplu, dacă Timpul culegere este setat la 60, firul de execuţie întreţinere pool rulează la fiecare 60 de secunde. Intervalul Timp culegere afectează acurateţea setărilor Timeout-ului nefolosit şi a Timeout-ului învechit. Cu cât e mai mic intervalul, cu atât mai mare este precizia. Dacă firul de execuţie de întreţinere a pool-ului este activat, setaţi valoarea Timpului culegere mai mică decât valoarea Timeout-ului neutilizat şi a Timeout-ului învechit. Când rulează firul de execuţie de întreţinere al pool-ului, el renunţă la orice conexiuni rămase neutilizate mai mult decât durata specificată în Timeout-ul neutilizat, până când el ajunge la numărul de conexiuni specificate în Conexiuni minime. Firul de execuţie de întreţinere al pool-ului de asemenea renunţă la orice conexiuni care rămân active mai mult decât durata specificată în Timeout-ul învechit.
Intervalul Timp culegere de asemenea afectează performanţa. Intervale mai mici înseamnă că firul de execuţie rulează mai des, lucru ce scade performanţa.
Pentru a dezactiva firul de execuţie de întreţinere al pool-ului, setaţi Timpul de culegere la 0, sau setaţi ambele Timeout-ul neutilizat şi Timeout-ul învechit la 0. Calea recomandată pentru a dezactiva firul de execuţie de întreţinere al pool-ului este de a seta Timpul de culegere la 0 şi Timeout-ul neutilizat şi Timeout-ul învechit sunt ignorate. Totuşi, dacă Unused Timeout şi Aged Timeout sunt setate la 0, va rula firul de execuţie pentru mentenanţa pool. Conexiunile fizice ce au intrat în timeout datorită valorilor diferite de zero pentru timeout sunt ignorate ca şi conexiunile care rezidă în pool folosit (sau pool partajat) deoarece au fost ţinute mai mult decât intervalul de timp setat pentru Aged Timeout.
| Informaţii | Valoare |
|---|---|
| Tio de date | Număr întreg |
| Unităţi | Secunde |
| Valoarea implicită | 180 |
| Interval | 0 la max int |
Specifică intervalul, în secunde, după care se renunţă la o conexiune nefolosită.
Setaţi valoarea Timeout-ului neutilizat mai mare decât valoarea Timeout-ului de culegere pentru performanţă optimă. Conexiunile fizice neutilizate sunt ignorate doar dacă numărul curent de conexiuni depăşeşte setarea Conexiuni minime. De exemplu, dacă valoarea timeout-ului neutilizat este setată la 120, şi firul de execuţie de întreţinere al pool-ului este activat (Timpul de culegere nu este 0), orice conexiune fizică care rămâne neutilizată 2 minute este ignorată.
Precizia şi performanţa acestui timeout sunt afectate de valoarea Timp culegere. Vedeţi Timp de culegere pentru informaţii suplimentare.
| Informaţii | Valoare |
|---|---|
| Tio de date | Număr întreg |
| Unităţi | Secunde |
| Valoarea implicită | 1800 |
| Interval | 0 la max int |
Specifică intervalul, în secunde, după care se renunţă la o conexiune fizică nefolosită.
Setarea Timeout-ului învechit la 0 ajută conexiunile fizice active să rămână în pool pe timp nelimitat. Setaţi valoarea Timeout-ului învechit mai mare decât valoarea Timeout-ului de culegere pentru performanţă optimă.
De exemplu, dacă valoarea timeout-ului învechit este setată la 1200 şi valoarea Timpului de culegere nu este 0, orice conexiune fizică care rămâne în existenţă pentru 1200 de secunde (20 de minute) este eliminată din pool. Singura excepţie este dacă conexiunea este implicată într-o tranzacţie când timeout-ul învechit este ajuns, serverul de aplicaţii nu va ignora conexiunea până când după ce tranzacţia este finalizată şi conexiunea este închisă.
Precizia şi performanţa acestui timeout sunt afectate de valoarea Timp culegere. Vedeţi Timp de culegere pentru informaţii suplimentare.
| Informaţii | Valoare |
|---|---|
| Tip de date | Număr întreg |
| Unităţi | Secunde |
| Valoarea implicită | 0 |
| Interval | 0 la max int |
Specifică modul în care conexiunile sunt epurate când este detectată o conexiune veche sau o eroare fatală a conexiunii.
Valorile valide sunt EntirePool şi FailingConnectionOnly.
| Informaţii | Valoare |
|---|---|
| Tip de date | Tip |
| Valoarea implicită | EntirePool |