Tomcat과 Database를 연동하는 방법
OS : CentOS 7.9
Infrta : Azure
연동될 DB : MYSQL
우선 연동을 하고 싶은 DB의 드라이버 다운로드 받아 lib 경로에 넣어야합니다.
파일 이름 : mysql-connector-java-5.1.29-bin.jar, mariadb-java-client-3.0.4.jar
경로 : $tomcat/lib (엔진의 Lib 디렉토리)
vi server.xml
<DataSource 설정>
<GlobalNamingResources>
<Resource auth="Container" name="jdbc/mgw"
type="javax.sql.DataSource"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
maxActive="128"
maxIdle="100"
minIdle="100"
validationQuery="select 1"
testWhileIdle="true"
timeBetweenEvictionRunsMillis="10000"
maxWaitMillis=""
testOnBorrow="true"
username="접속유저명"
password="비밀번호"
driverClassName="com.mysql.cj.jdbc.Driver"
url="jdbc:mysql://ip OR doain:port?useUnicode=true&characterEndoding=utf8&autoReconnect=true"/>
</GlobalNamingResources>
vi context.xml
<Resource auth="Container" name="jdbc/mgw"
type="javax.sql.DataSource"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
maxActive="128"
maxIdle="100"
minIdle="100"
validationQuery="select 1"
testWhileIdle="true"
timeBetweenEvictionRunsMillis="10000"
maxWaitMillis=""
testOnBorrow="true"
username="접속유저명"
password="비밀번호"
driverClassName="com.mysql.cj.jdbc.Driver"
url="jdbc:mysql://ip OR doain:port?useUnicode=true&characterEndoding=utf8&autoReconnect=true"/>
server.xml, context.xml 두개의 설정파일에 연동 설저을 넣을 수 있는데
저는 server.xml에 넣는 것을 추천드립니다.
server.xml : Tomcat 서버 전체에 걸쳐 공유
context.xml : 해당 웹 애플리케이션에서만 접근이 가능
설정
auth : 컨테이너에서 데이터 소스를 어떻게 인증할지 지정. 일반적으로 "Container" 또는 "Application"
name : 데이터 소스에 대한 JNDI 이름
type : Java의 데이터 소스 인터페이스
factory : 데이터 소스의 팩토리 클래스 이름
maxActive : 풀에서 활성 상태로 유지할 수 있는 최대 연결 수
maxIdle : 풀에서 유휴 상태로 유지할 수 있는 최대 연결 수
minIdle : 풀에서 최소한으로 유지해야 하는 유휴 연결 수
validationQuery : 연결이 유효한지 확인하기 위해 DB에 보낼 SQL 쿼리
testWhileIdle : 유휴 연결 검증을 할지 여부
timeBetweenEvictionRunsMillis : 유휴 연결 검사 간의 시간(밀리초)
maxWaitMillis : 커넥션 풀이 고갈되었을 때 연결을 기다리는 최대 시간을 밀리초 단위로 설정
testOnBorrow : 연결을 풀에서 가져올 때마다 유효성 검사를 할지 여부를 설정. 만약 true로 설정하면 validationQuery를 통해 연결 유효성을 검사
username : 데이터베이스 연결에 사용할 유저명
password : 데이터베이스 연결에 사용할 비밀번호
driverClassName : JDBC 드라이버 클래스 이름
url : JDBC URL. 이 URL을 사용하여 데이터베이스에 연결