Connection & Connection pool

- DriverManager.getConnection()은 실제 JAVA 프로그램과 DB를 네트워크상에서 연결해주는 메소드

◆ Connection: 네트워크상의 연결 자체를 의미한다.

Connection Pool: DB Connection 정보를 캐시(메모리 영역)에 저장/관리하여 WAS 단에서 DB Connection 정보가 필요할 때마다 Connection pool에서 연결 정보를 불러온다.

 

Connection Pool 장점

- Database 접속 설정 객체를 미리 만들어 연결을 하여 메모리 상에 등록해 놓아 클라이언트가 빠르게 Database 접속을 할 수 있다.

- Database Connection 수를 제한할 수 있어 과다한 접속으로 인한 서버의 자원 고갈을 막을 수 있다.

- Database 접속 모듈을 공통화해 Database 서버의 환경이 바뀔 경우 유지 보수를 쉽게 할 수 있다.

- 연결이 끝난 Connection 을 재사용함으로써 새로 객체를 만드는 비용을 줄일 수 있다.

Connection Pool 구조

JDBC

JDBC는 Java에서 Database에 접속할 수 있도록 하는 Java API다.
JDBC는 DB에서 데이터를 가져올 때마다 DB 연결을 열고 닫기 때문에 비효율 적이다.

JNDI

Java Naming and Directory Interface

DBCP와 다르게 소스단에서 설정하는 방식이 아닌 WAS 단에 Database Connection 객체를 미리 네이밍 해두는 방식

JNDI 구조


JNDI 장점

DB 설정정보를 파악하기 쉽고, DB의 설정 정보를 파악하기 쉽다.

Connection Pool을 효율적으로 사용할 수 있다.

 

JDBC와 JNDI 차이

- 하드코딩하지않아도 된다. (JNDI)

- JNDI는 재활용을 하기 위한 코드로 부하가 발생하지 않게 하기 위해 JNDI를 써야함

DBCP

어플리케이션을 시작할 떄 원하는 만큼 커넥션 객체를 생성한다.

DB Pool에 넣어놓았다가 필요할 때마다 갖다쓰고 Pool에 반납하는 형식이다.

DB Connection Pool을 소스단에 설정한다. (개발자)

DBCP 구조

DBCP 장점

Container에 1개의 Application만 올라간다면 서버 설정을 건드릴 필요 없이 소스단에서 DB Pool을 생성하면 관리가 쉬워질 수 있다.

'MiddleWare > JEUS' 카테고리의 다른 글

[JEUS] JEUS 6.0.0.X -> 6.0.0.9 Upgrade  (0) 2022.08.10
[JEUS] 특정 Method 제한 설정  (0) 2022.08.08
[JEUS] Session Clustering 3 - specific scope cluster  (0) 2022.08.01
JVM, Java Process  (0) 2022.07.21
[JEUS] Cookie 설정  (0) 2022.07.18

+ Recent posts