sql >> Database teknologi >  >> RDS >> Oracle

JDBC grundlæggende begreber, Pooling og Threading

Forbindelsespuljer dekorerer Connection- og Statement-forekomster med deres egne indpakningsimplementeringer. Når du ringer tæt på en forbindelse, slipper du den faktisk bare tilbage til poolen. Når du kalder tæt på en forberedt erklæring, frigiver du den faktisk bare tilbage til forbindelsens erklæringscache. Når du forbereder en sætning, henter du muligvis bare en cachelagret sætningsforekomst fra forbindelsen. Alt dette er skjult, så du ikke behøver at bekymre dig om det.

Når en forbindelse er givet til en klient, er den ikke længere tilgængelig for nogen anden klient at bruge, indtil forbindelsen er frigivet tilbage til puljen. Du henter normalt bare forbindelser, når du har brug for dem, og returnerer dem så snart, du er færdig med dem. Fordi forbindelserne holdes åbne i poolen, er der lidt overhead i at hente og frigive forbindelser.

Du bør bruge en forbindelse fra poolen ligesom du ville bruge en enkelt JBDC-forbindelse og følge bedste praksis vedrørende lukning af ressourcer, så du ikke lækker nogen forbindelser eller erklæringer. Se prøv/fang/endelig eksemplerne i nogle af de andre svar.

Pools kan administrere forbindelsesressourcerne og teste dem, før de udleveres til klienter for at sikre, at de ikke er forældede. En pool vil også skabe og ødelægge forbindelser efter behov.



  1. Hvordan kan jeg bruge 'Check'-sætning til at validere feltværdi i mysql?

  2. ADODB-kommando mislykkedes Udfør med parameteriseret SQL-forespørgsel

  3. Beregn en løbende total i MySQL

  4. SQL Server Internals:Plan Caching Pt. II – Genkompilering af planer