In zilele noastre este dificil să ne imaginăm o aplicație web care nu ar folosi baza de date pentru nevoile lor. Atunci când se lucrează cu baza de date este foarte importantă pentru a monitoriza conexiunile la baza de date și să le elibereze în timp. În acest scop, un dezvoltatorii de aplicații web a scrie așa-numitele bazine de conectare (sau de a folosi / repara cele existente).
Unul dintre cele mai bune containere servlet au Apache Tomcat. Tomcat bine prin faptul că el folosește propria lui DBCP (Database Connection Pool).
Pentru a configura Tomcat la baza, este necesară în configurația Fale conf \ server.xml în secțiunea de context (în cazul în care nu este nevoie să-l creeze în cadrul secțiunii gazdă chiar înainte de sfârșitul anului), se adaugă următoarele linii:
Cu această configurație, creați o sursă de date numit newDB. Luați în considerare parametrii acestui obiect.
Fabrica parametru spune despre ce fabrica ar trebui sa fie folosite pentru a crea obiecte care implementeaza interfata DataSource. Următorul parametru este URL-ul pentru a accesa baza de date. Numele de utilizator și parola, respectiv, conține scheme de nume de utilizator / parolă și. Numele driverului bazei de date specificat în parametrul driverClassName.
Următorii parametri sunt direct responsabili pentru Pool Connection. Luați în considerare-le un pic mai mult.
maxActive - numărul maxim de conexiuni, care vor fi incluse în piscină. Dacă acest parametru este setat la 0, restricțiile privind numărul de conexiuni la baza de date nu va fi. În cele mai multe baze de date de configurare a serverului Dunn această opțiune, de asemenea, există. Cred că nu este necesar să se explice de ce trebuie să fie mai mare decât maxActive.
maxIdle - numărul maxim de conexiuni inactiv, care vor rămâne în piscină. Când acest parametru este zero, nu se va limita la.
maxWait - în cazul în care timpul de conectare de așteptare depășește parametrul maxWait (în milisecunde), utilizatorul va primi o excepție. Dacă valoarea este egală cu -1 maxWait, timpul de așteptare nu este limitat.
Întreb atrage atenția asupra următorul lucru foarte important. Tomcat se execută o mașină virtuală (JVM). Pentru a elibera memoria JVM folosește un colector de gunoi (colector de gunoi). GC are o prioritate foarte mare, și în eliberarea memoriei Tomcat va intra în starea de așteptare (în fracțiuni de secundă, cel puțin - pentru câteva secunde). Pentru valori mici ale maxWait, conexiunea nu poate fi stabilită din cauza unui timeout. Valoarea 10.000 în cele mai multe cazuri va fi optimă.
removeAbandoned - atunci când instalați acest Parameres la true, compusul abandonat va fi eliberat, atunci când numărul de conexiuni gratuite la piscină este mic.
removeAbandonedTimeout - Acest parametru specifică timpul în secunde, după care orice conexiune de mers în gol este considerat abandonat.
După aceea, trebuie să configurați aplicația noastră web pentru a lucra cu DataSource. Acest lucru se face astfel încât un fișier de scriere-descriptor web.xml:
În cele din urmă, trebuie să folosească toate vyshenapisannogo în practică. Pentru a avea acces la sursa de date noastre JNDI prin intermediul și a crea o conexiune de baze de date, puteți scrie un fel de (manipulare pachet de import și de eroare omise) Clasa:
compuși abandonate - este un termen condiționată. Tomcat desemnează conexiunea ca parametru semnificativ removeAbandonedTimeout abandonat. Aceasta se face din aceste considerații că, în unele situații, conexiunile inactive pot rezulta din funcționarea incorectă a programului (eșec). Prin urmare, este necesar să aibă cel puțin o anumită capacitate de a urmări și de a elibera acest tip de conexiuni.
Eticheta vă permite să specificați modul de autentificare atunci când încearcă să stabilească o conexiune la baza de date.
Valoarea «Container» spune că va efectua autentificarea bazată pe ID-ul și parola containerului dat-l (sau certificat) utilizatorul (de exemplu, detaliile de utilizator au fost specificate în descriptorul pentru conexiunea piscina SGBD selectată). Un alt posibil sens - «Cerere» - spune că setările utilizatorului trebuie să fie clar indicate la nivel de Java cod atunci când accesează fabrica de conexiuni cu SGBD.
Am unele probleme:
1. Tomcat creează numai resurse folosind plante, în acest caz, conexiunile la piscină. Dar, în opinia mea, el nu reușește ciclul lor zhizennye, adică, nu este interesat de eliminarea lor corectă. Este necesar să se înregistreze ascultătorul în ciclul de viață al serverului server.xml, care va închide piscina.
2. Piscina este înregistrată în server.xml, mai degrabă decât contesta cererea, dacă intenționați să împartă pentru câteva aplicații, ar trebui să se ferească de:
2.1 Conexiuni Scurgeri de o singură cerere, se retrage din sistem, alte aplicații folosesc o piscină.
2.2 Poate că ar fi dificil să se determine exact ce aplicație apar scurgeri de informații, sau cât de multe nu doar o anumită aplicație necesită conexiuni de.