์ ๋ง์ ์ฌ์ฉ์๊ฐ ์๋ฒ์ ์์ฒญ์ ๋ณด๋์ ๋ ๊ทธ๋งํผ Connection์ ์์ฑํ๊ฒ ๋๋ฉด ์๋ฒ์ ๊ณผ๋ถํ๊ฐ ๊ฑธ๋ฆฌ๊ฒ ๋๋ค.
DBCP๋ ์ด๋ฌํ ์ํฉ์ ์๋ฐฉํ๊ธฐ ์ํด ์ ํ๋ฆฌ์ผ์ด์
์ด ์คํ ๋ ๋ ๋ฏธ๋ฆฌ ์ ์๋ ์๋งํผ DB Connection์ ์์ฑํ๊ณ , DB์์
์ด ํ์ํ ๋ ์์ฑํด๋ Connection์ โ๋์ฌโ๋ฐ์ ์ฌ์ฌ์ฉํ๋ค.
์์
์ ๋ง์น Connection์ Connection Pool๋ก ๋ฐํ๋๊ณ , ์์
์ ์ํํ์ง ์๋ Connection์ ์ ํด ์ํ๋ก ์ ํ๋์ด Connection Pool ํฌ๊ธฐ๋ฅผ ์ ์งํ์ฌ DB ์ฑ๋ฅ์ ์ต์ ํ ํ๋ค.
์์ฝ
1.
์ ํ๋ฆฌ์ผ์ด์
์คํ ์ ์ ์๋ ์๋งํผ DB Connection ์์ฑ
2.
DB ์์
์ด ํ์ํ ๋ ์์ฑํด๋ Connection์ ๋์ฌ๋ฐ์ ์ฌ์ฌ์ฉ
3.
์์
์ ๋ง์น Connection์ Connection Pool๋ก ๋ฐํ
4.
์์
์ ์ํํ์ง ์๋ Connection์ ์ ํด์ํ๋ก ์ ํ
DBCP์ DB Access์ ์๊ด ๊ด๊ณ
DB Access (๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ๊ทผ or ์ฐ๊ฒฐ)
DB์ ์ ์ํ๊ณ , ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฑฐ๋ ์ฐ๋ ํ๋ก์ธ์ค
โ DB์ ์ ๊ทผํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์กฐํ, ์์ , ์ญ์ ํ๋ ํ์๋ฅผ ์๋ฏธ
์ผ๋ก๋ก ๋ฐ๋ณต๋ฌธ์ ํตํด์ 10๋ฒ์ DB Access๋ฅผ ์ํํ๋ค๋ฉด?
์กฐ๊ฑด
1.
๋จ์ผ ์ค๋ ๋ ํ๊ฒฝ
2.
๋ณ๋ ฌ์ฒ๋ฆฌ ์ฌ์ฉํ์ง ์์
10๋ฒ ๋ฐ๋ณต ์ํ
ํ์Id๋ก ํ์ ์ ๋ณด ์กฐํ
Java
๋ณต์ฌ
์ ์์ฌ์ฝ๋๋ฅผ ์ํํ์ ๋,
1๊ฐ์ ์ค๋ ๋๊ฐ 10๋ฒ์ DB Access๋ฅผ ํ๊ฒ๋จ
โ Connection Pool ์์ Connection ๋์ฌ - ๋ฐํ์ 10ํ ์ํํ๊ฒ ๋จ
โ ๋ฐ๋ณต์ ์ํํ๋๋ผ๋ Connection Pool์์ Connection ์ฌ์ฉ๋์ ๋ณํ์ง ์์
โข
1๊ฐ Thead, 1๊ฐ Connection๋ง ์ฌ์ฉํ๋ค๊ณ Thread ์์ Connection pool ํฌ๊ธฐ๋ฅผ ๊ฐ๊ฒ ์ค์ ํ๋ฉด ์๋จ
โข
Connection์ ๋ฐํํ๊ณ , ์๋ก์ด Connection์ ๋์ฌ๋ฐ๋ ๋์ ๊ธฐ์กด Connection์ด ๋ฐํ๋์ง ์๋ ์ํฉ์ด ๋ฐ์ํ ์ ์๊ณ ๋๊ธฐ ์ํ๋ฅผ ์ ๋ฐํ ์ ์์.
โข
๊ทธ๋ฌ๋ ๋ชจ๋ ์์ฒญ์ด DB Access๋ฅผ ์๊ตฌํ์ง ์์ ์ ์๊ธฐ ๋๋ฌธ์ ์ฑ๋ฅ ํ
์คํธ๋ฅผ ๊ฑฐ์น ํ ์กฐ์ ์ด ํ์ํจ
๋๋ฌด ํฐ ํฌ๊ธฐ์ DBCP๋ ์ง์์ ์ธ DB ์๋ฒ ๋ฆฌ์์ค๋ฅผ ์๋ชจํ๊ณ ,
๋๋ฌด ์ ์ ํฌ๊ธฐ์ DBCP๋ ๋๊ธฐ ์ํ๋ฅผ ์ ๋ฐํ๋ค.
๋ณ๋ ฌ์ฒ๋ฆฌ๋ก DB Access๋ฅผ ํ๊ฒ ๋๋ค๋ฉด?
โ ์์
์ ์ํํ๋ Thread๋งํผ Connection์ ๋์ฌํ๊ฒ๋๋ค.
โ Connection Pool์ Connection ์ด์์ผ๋ก DB Access ์์ฒญ์ด ๋ฐ์ํ๋ค๋ฉด, Connction Pool์ ๋๊ธฐ ์ํ๋ก ์ด์ด์ง๊ณ ์ ํ๋ฆฌ์ผ์ด์
์ฑ๋ฅ์ ์ํฅ์ ๋ผ์น๋ค.
๋์ ์ ์์๊ฐ ๋ง์ผ๋ฉด?
โ ๋จ์์๋ Connection์ด ์์ ๋
๋๊ธฐ ์ํ (Waiting State)
Connection Pool์ ๋น Connection์ด ์๋ ๊ฒฝ์ฐ, ์๋ก์ด ์ ์์๋ ๋๊ธฐ ์ํ์ ๋ค์ด๋จ
์ด๋ฌํ ์ํ์์ ์ ์์๋ ๋ค๋ฅธ ์ ์์๊ฐ Connection์ ๋ฐํํ๊ธธ ๊ธฐ๋ค๋ฆฌ๊ณ ,
๋๊ธฐ ์ํ๊ฐ ๊ธธ์ด์ง ๊ฒฝ์ฐ, ์ ํ๋ฆฌ์ผ์ด์
์ ์๋ต ์๊ฐ์ด ์ง์ฐ๋๊ฑฐ๋ ์ฌ์ฉ์ ๊ฒฝํ์ด ์ ํ๋ ์ ์์
pool size = Tn * (Cm - 1) + 1
โข
Tn = ์ ์ฒด Thread ๊ฐ์
โข
Cm = ํ๋์ Task์ ๋์์ ํ์ํ Connection ์