1. VSCode에 tomcat 설치

 

VSCode 좌측메뉴의 Extensions에서 "community server connectors"를 검색합니다.검색 후 Community Server Connectors를  [install] 버튼을 클릭하여 설치합니다.

이 VSCode 확장은 Apache Felix, Karaf 및 Tomcat과 같은 커뮤니티 런타임 및 서버를 시작, 중지, 게시 및 제어할 수 있는 런타임 서버 프로토콜 기반 서버 커넥터를 제공합니다.

 

설치가 완료되면 VSCode 의 좌측화면 하단에 "SERVER" 메뉴가 생기고 하위에 "Community Server Connector(Started)"가 생긴 것을 확인할 수 있습니다.

"Community Server Connector(Started)" 마우스 오른쪽 버튼을 클릭한 후 "Create New Serve"를 클릭합니다.

 

VSCode 상단의 검색창으로 커서가 옮겨가면서 아래와 같은 화면이 뜹니다. "Yes"를 선택합니다.

로컬 PC에 tomcat이 설치되어 있고 이를 사용하기 원하는 경우에는 "No, user server on disk"를 선택해서 설치한 tomcat을 지정하면 됩니다. 

community server connectors" Extension이 제공하는 여러 서버(Apache Karaf, Apache Tomcat 등) 가 보이는데 이중 Apache Tomcat 중 설치를 원하는 버전을 선택합니다. 본 문서에서는 Apache Tomcat 10.1.4를 선택했습니다.

라이센트 파일과 함께 "Continue.."라는 메뉴가 보이는데 "Continue.."를 클릭합니다.

"Yes(True)" 를 클릭합니다.

설치가 완료되면 좌측 하단의 Community Server Connector(Started)"가 생긴 것을 확인할 수 있습니다.

브라우저에 http://127.0.0.1:8080 을 입력해보면 tomcat 화면을 볼 수 있습니다.

tomcat 이 설치된 경로는 C:\Users\[window user]\.rsp\redhat-community-server-connector\runtimes\installations\tomcat-10.1.4 입니다.

[window user]는 각자의 Windows 로그인 계정이름입니다.

 

2. comcat 과 mysql connection pool 연결 

tomcat 과 mysql 을 connnection pool 로 연결하는 방법입니다.

tomcat lib 디렉토리에 mysql jdbc 드라이버가 있어야 합니다.

tomcat lib 디렉토리는 C:\Users\ypjeong\.rsp\redhat-community-server-connector\runtimes\installations\tomcat-10.1.4\apache-tomcat-10.1.4\lib 입니다.

 

jdbc 드라이버가 없을 경우 다운로드 후 jdbc 드라이버를 lib 디렉토리 하위에 이동 또는 복사합니다.

mysql DB 접속 설정을 위해 context.xml 파일에 정의해 줍니다. context.xml 파일 위치는

"C:\Users\[user]\.rsp\redhat-community-server-connector\runtimes\installations\tomcat-10.1.4\apache-tomcat-10.1.4\conf" 입니다.

주의할 것은 이 파일에 dbcp를 설정할 경우 webapps/ 디렉토리 하위에 있는 application 개수만큼 수행되어 connection pool 개수가 initialsize * application 개수 만큼 생성됩니다. application 별로 설정하려면 생성한 application 디렉토리 하위에 META-INF 디렉토리에 context.xml 파일을 생성하고 설정하면 됩니다.

 

참고) AWS RDS Aurora DB 접속 방법도 동일합니다.

jdbc 드라이버를 다운로드한 후 tomcat lib 디렉토리에 저장한 후 context.xml 파일의 driver ClassName 그리고 url 만 Aurora DB에 맞도록 수정하면 됩니다.

 

context.xml 파일에 아래 내용을 입력합니다.

<Context>
   ...
 <Resource name="jdbc/mysql"
        auth="Container"
        type="javax.sql.DataSource"
        driverClassName="com.mysql.jdbc.Driver"
        url="jdbc:mysql://<mysql_ip>:<3306>/<db_name>"
        username="<username>"
        password="<password>"
        initialSize="5"
        maxTotal="10"
        maxIdle="5"
        minIdle="5"
        validationQuery="SELECT 1"
		testWhileIdle="true"
		timeBetweenEvictionRunsMillis="30000"/>
</Context>
  • name : 각자가 사용할 dbcp 이름
  • driverClassName : jdbc 드라이버의 classname
  • url: "jdbc:mysql://<mysql_ip>:<3306>/<db_name>" 에서 <my_ip>, <3306>, <db_name> 은 각자의 환경에 맞도록 수정한다.
  • username: MySQL 계정 이름
  • password: MySQL 계정 비밀번호
  • initialSize : 초기 connection 개수
  • maxActive : 최대 Connection 객체 수
  • maxIdle = Connection 객체 사용 후 반환할 때, 최대 유지되는 객체 수
  • minIdle = 최소한 유지되야하는 Connection 객체 수
  • validationQuery : Connection 유효성 검사 Query
  • testWhileIdle="true" : 컨넥션이 놀고 있을때, validationQuery 를 이용해서 유효성 검사를 할지 여부
  • timeBetweenEvictionRunsMillis="30000" : 해당 밀리초마다 validationQuery 를 이용하여 유효성 검사

 

참고) AWS RDS Aurora dbcp 설정방법

jdbc 드라이버와 driver ClassName 그리고 url 만 Aurora DB에 맞도록 수정하면 됩니다. 아래 붉은색 글자 부분만 수정하면 aurora DB에 맞는 dbcp 설정입니다.

단, aurora DB용 jdbc 드라이버는 mysql jdbc driver는 호환되지만 aurora DB용 jdbc 드라이버를 사용하는 것이 성능이나 failover 등에 이점이 있습니다.

  • driverClassName="software.aws.rds.jdbc.mysql.Driver"
  • url: "jdbc:mysql:aws//<mysql_ip>:<3306>/<db_name>" 에서 <my_ip>, <3306>, <db_name> 은 각자의 환경에 맞도록 수정한다.

 

JSP에서 테스트 코드 작성

/opt/tomcat/webapps/ROOT 디렉토리에 아래 내용으로 mysql_dbcp.jsp 파일을 생성한다.

아래 내용 중 comp/env/jdbc/mysql 에서 jdbc/mysql 부분은 위의 context.xml 파일에서 정의한 resource name 이다.

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ page import = "java.sql.*"%>
<%@ page import = "javax.sql.*"%>
<%@ page import = "javax.naming.*"%>
<%
    Connection conn=null;

    Context init = new InitialContext();
    DataSource ds = (DataSource) init.lookup("java:comp/env/jdbc/mysql");
    conn = ds.getConnection();
    out.println(conn);
    conn.close();
%>

 

화면에 아래처럼 출력되면 db connection pool 설정이 정상적으로 작동한 것이다.

1907371254, URL=jdbc:mysql://10.0.0.5:3306/mysql, MySQL Connector/J

 

참고) AWS Aurora dbcp 사용 시 결과

AWS Aurora DB driver 사용 시 화면에 아래처럼 출력됩니다.

1055203550, URL=jdbc:mysql:aws://cluster-xxxxx.ap-northeast-2.rds.amazonaws.com:3306/awsdb, Amazon Web Services (AWS) JDBC Driver for MySQL

 

+ Recent posts