만족
[JSP] 커넥션 풀(Connection Pool) 본문
[JSP] 커넥션 풀(Connection Pool)
Backend/JSP Satisfaction 2018. 1. 5. 20:46외부에서 웹사이트의 접속 등에 의하여 서버에 접속하게 되면, 서버는 1명당 1개의 커넥션 객체를 만들게 되는데
필요할 때마다 1개씩 새로 만들게 되면 한번에 많은 인원이 접속할 때 서버에 큰 부하가 걸리게 된다.
미리 커넥션 객체를 여러 개 만들어서 부하를 줄일 수 있는 방법이 있는데, 그것을 커넥션 풀 이라고 한다.
Servers의 context.xml의 Context태그 내부에 다음 태그를 추가한다.
<Resource
auth= "Container"
driverClassName= "oracle.jdbc.driver.OracleDriver"
url= "jdbc:oracle:thin:@localhost:1521:xe"
username= "USERNAME"
password= "PASSWORD"
name= "jdbc/Oracle11g"
type= "javax.sql.DataSource"
maxActive= "50"
maxWait= "1000"/>
여기에서 maxActive는 미리 만들어 둘 커넥션 객체의 갯수이다.
maxWait는 미리 만들어 둔 커넥션 객체를 초과하여 커넥션 객체가 필요할 경우, 새로운 객체를 만들기까지 대기하는 시간이다.
또한 이렇게 지정해 두면, Java에서 데이터베이스를 사용할 때 상당히 편리하다.
기존의 Database 연결방식은
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection connect= DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "USERNAME", "PASSWORD");
처럼 드라이버를 직접 load했다면, Resource태그에서 필요한 정보를 미리 입력했기 때문에
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
private DataSource dSource= null;
Context context= new InitialContext();
dSource= (DataSource)context.lookup("java.comp/env/jdbc/Oracle11g");
Connection connect= dSource.getConnection();
처럼 사용할 수 있다.
'Backend > JSP' 카테고리의 다른 글
[JSP] 세션(Session) (0) | 2018.01.05 |
---|---|
[JSP] DAO, DTO 패턴 (0) | 2018.01.05 |
[JSP] 서블릿 파라미터(Servlet Parameter) (0) | 2018.01.05 |
[JSP] 빈(Bean) (0) | 2018.01.05 |
[JSP] PreparedStatement (0) | 2018.01.03 |