[WAS-DB] Tomcat-mariaDB 연동

DongbinLim·2024년 11월 14일

Middleware

목록 보기
5/6

[설정 내용]

1. DB connection Pool 설정

- testOnBorrow

DB Connection Pool 사용 전 Validation 확인 진행하는 옵션

<Resource 
          name="jdbc/TestJNDI"
          type="javax.sql.DataSource"
          username="postgres" 
          password="new1234!"
          minIdle="3" 
          maxTotal="5"
          
          testOnBorrow="true"
          validationQuery="select 1;"
          validationQueryTimeout="10" #세컨
          
          driverClassName="org.postgresql.Driver"
          url="jdbc:postgresql://{PG IP}/postgres"/>

- testOnReturn

DB Connection Pool 사용 후 Validation 확인 진행하는 옵션

<Resource name="jdbc/TestJNDI" type="javax.sql.DataSource"

username="postgres" password="new1234!"

minIdle="3" maxTotal="5"

testOnReturn="true" validationQuery="select 1;"

validationQueryTimeout="10" #세컨

driverClassName="org.postgresql.Driver" url="jdbc:postgresql://{PG-IP}:5432/postgres"/>

- testWhileIdle

DB idle Connection Pool에 대하여 일정한 주기로 Validation 확인 진행하는 옵션으로 timeBetweenEvictionRunsMillis 값 지정 후 사용 가능

<Resource name="jdbc/TestJNDI" type="javax.sql.DataSource"

username="postgres" password="new1234!"

minIdle="3" maxTotal="5"

testWhileIdle="true" validationQuery="select 1;" timeBetweenEvictionRunsMillis="10000"   #밀리세컨

driverClassName="org.postgresql.Driver" url="jdbc:postgresql://10.217.69.58:5432/postgres"/>

2. DB-Connection-Test.jsp

JSP 파일은, 웹 컨텐츠 루트 폴더에 저장
- /tomcat/domains/portal11/webapps/ROOT

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>MariaDB Connection Test</title>
</head>
<body>
    <h2>MariaDB Connection Test</h2>
    <%
    Connection conn = null;
    Statement stmt = null;
    ResultSet rs = null;
    
    try {
        // 1. JDBC 드라이버 로드
        Class.forName("com.mysql.jdbc.Driver");
        
        // 2. 데이터베이스 연결
        String url = "{여기에 URL 입력}";
        String user = "mysql";
        String password = ""; // 패스워드 입력 필요
        
        conn = DriverManager.getConnection(url, user, password);
        out.println("데이터베이스 연결 성공!<br>");
        
        // 3. Statement 생성
        stmt = conn.createStatement();
        
        // 4. 쿼리 실행
        rs = stmt.executeQuery("SELECT 1");
        
        // 5. 결과 확인
        if(rs.next()) {
            out.println("쿼리 실행 성공! 결과값: " + rs.getInt(1));
        }
        
    } catch(Exception e) {
        out.println("데이터베이스 연결/쿼리 실행 실패!<br>");
        out.println("예외 메시지: " + e.getMessage());
        e.printStackTrace();
    } finally {
        // 6. 자원 해제
        try {
            if(rs != null) rs.close();
            if(stmt != null) stmt.close();
            if(conn != null) conn.close();
            out.println("<br>데이터베이스 연결 종료");
        } catch(Exception e) {
            e.printStackTrace();
        }
    }
    %>
</body>
</html>

0개의 댓글