본문 바로가기
mysql

mysql_connection pool 설정

by 신방동불주먹 2022. 12. 12.

tomcat 서버 경로 : /opt/homebrew/etc/tomcat@9

 

 

1) server.xml

driverClassName : DB작업을 위해 로딩할 JDBC 드라이버 파일에 드라이버 인터페이를 상속하는 파일명을 전체 이름으로 지정. Class.forName() 메소드의 인자값.
url : 접속할 DB 서버의 URL을 지정
username : DB 서버에 로그인할 계정을 지정
password : DB 서버에 로그인할 게정의 비밀번호를 지정
name : 현재 리소스를 등록할 이름을 지정
type : 리소스의 타입을 지정합니다. Connection Pool을 사용할 수있도록 해주는 객체의 javax.sqlDataSource.
maxActive : 생성할 Conneciton 수를 지정
maxIdle : 일반적으로 활용할 Connection 수를 지정
maxWait : Connection의 사용 요청이 있을 때 대기 시간을 지정. 5000은 5초를 의미하며, 5초가 지난 후에도 Connection을 얻지 못하면 Exception이 발생.

 

  <GlobalNamingResources>
    ...생략...


    <Resource driverClassName="com.mysql.jdbc.Driver"
              url="jdbc:mysql://localhost/jsp"
              username="musthave"
              password="1234"
              name="dbcp_mysql"
              type="javax.sql.DataSource"
              maxActive="4"
              maxIdle="2"
              maxWait="5000" />  


  </GlobalNamingResources>

 

 

2) content.xml

 

<Context>

...생략...


    <ResourceLink
    global="dbcp_mysql"
    name="dbcp_mysql"
    type="javax.sql.DataSource"     />



</Context>

 

  • <description> : 리소스에 대한 설명을 지정
  • <res-ref-name> : 사용하고자 하는 리소스의 이름을 지정
  • <res-type> : 사용하고자 하는 리소스의 타입을 지정
  • <res-auth> : 리소스에 대한 권한이 누구인지 지정

 

 

3) web.xml

 

    <resource-ref>
    <res-ref-name>dbcp_mysql</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
  </resource-ref>

 

4)DBConnPool.java

 

	public DBConnPool() {
	
		try {
			Context initCtx= new InitialContext(); //context =JNDI에서 이름과 실제 객체를 연결해주는 개념
			Context ctx = (Context)initCtx.lookup("java:comp/env");
			DataSource source = (DataSource)ctx.lookup("dbcp_mysql"); //네임속성 준 부분
			
			con=source.getConnection(); //db연결
			System.out.print("성공");
		}catch(Exception e) {
			e.printStackTrace();
			System.out.print("실");
		}
	}

 lookup( ) 메소드의 인자값으로는 찾으려는 리소스의 등록된 이름을 지정. 우리가 찾으려는 리소스의 이름은 "jdbc/myoracle" 이고 WAS인 톰캣에서 리소스를 관리하는 가상의 디렉터리는 "java:comp/env"

 

'mysql' 카테고리의 다른 글

mysql_default 오늘 날짜로 설정  (0) 2022.12.12
mysql_sysdate  (0) 2022.12.03
MySQL Workbench 사용자권한  (0) 2022.12.03
mysql_자동증분(auto increment)  (0) 2022.10.24
1024_mysql  (0) 2022.10.24