DB ↔ WAS(톰캣) 통신

WAS(톰캣)과 DB의 통신 과정에서 이들은 메모리를 공유하지 않고, 서로 다른 프로세스와 서버 기반이기에 TCP 소켓을 이용한 커넥션을 통해 네트워크 통신을 하게 된다.

Tomcat JVM  ──(TCP Socket)──>  DB Server

DB 커넥션 생명주기

(1) 클라이언트 요청에 따라, Tomcat 워커 스레드 하나가 요청을 잡아 작업을 진행한다.

(2) DB 드라이버를 통해 DB와 연결을 맺기 위한 TCP 커넥션을 생성(DriverManager.getConnection(..)

(3) DB와 연결된 TCP 커넥션으로 데이터를 통신한다. (이 과정에서 Statement 를 생성하고, SQL 문을 전송하고, ResultSet 을 통해 결과를 확인하는 작업이 발생한다.)

(4) DB와의 연결을 닫는다.

(5) TCP 커넥션을 닫는다.

생성된 TCP 커넥션으로 SQL 통신

Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);

하지만 위 과정은 리소스가 꽤나 많이 들어가는 작업이다.