만족

[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


Comments