A-JAX

Jieun·2023년 3월 24일
0

📝 Server 중 A-JAX, DBCP
#230324

DBCP (DataBase Connection Pool)

미리 DB와 연결되어 있는 Connection을 일정 개수 만들어 두고
클라이언트 요청시 만들어둔 Connection을 빌려주고
요청 처리 완료 시 다시 반환 받는 기법

😊장점😊
1) 미리 Connection을 만들어두기 때문에 요청 시 속도가 빠름
2) Connection 개수에 제한을 두어 DB에 과도하게 요청되는 경우를 방지

<Resource 
      name="jdbc/oracle" 
      auth="Container"
      type="javax.sql.DataSource" 
      driverClassName="oracle.jdbc.OracleDriver"
      url="jdbc:oracle:thin:@localhost:1521:xe"
      username="community" 
      password="1234" 
      maxTotal="50"      
      maxIdle="10"
      maxWaitMillis="-1" />

name
JNDI 이름 Context의 lookup()을 사용하여 자원을 찾을때 사용한다.
java:comp/env 디렉터리에서 찾을 수 있다.
auth : 자원 관리 주체 지정(Application 또는 Container)
type : Resource의 타입 지정
driverClassName : JDBC 드라이버 클래스 이름.
maxTotal : DataSource 에서 유지할 수 있는 최대 커넥션 수
maxIdle : 사용되지 않고 풀에 저장될 수 있는 최대 커넥션의 개수. 음수일 경우 제한이 없음
maxWaitMillis : 커넥션 반납을 기다리는 시간(-1은 반환될 때 까지 기다림)


JNDI (Java Naming and Directory Interface API)

  • 디렉토리에 접근하는데 사용하는 JAVA API
  • 애플리케이션(프로그램, 웹앱)은 JNDI를 이용해서 파일 또는 서버 Resource를 찾을 수 있음

JNDI 작성방법

// 1. Context 객체설정 
Context 변수명 = new InitialContext();
Context initContext = new InitialContext();
// InitialContext() 웹 어플리케이션이 처음 배치될 때 설정되는 메소드

// 2. xml파일 찾기
Context 변수명 = (Context) 변수명.lookup("java:comp/env")
Context envContext = (Context) initContext.lookup("java:comp/env");
// java:comp/env는 JNDI의 디렉토리
// initContext 미스매치로 강제형변환 해주기

// 3. DBCP 세팅하는 <Resource> 태그를 찾아 DataSource 형식의 객체로 얻어오기
DataSource 변수명 = (DataSource) 변수명.lookup("서버명")
DataSource ds = (DataSource)envContext.lookup("jdbc/oracle");  
//jdbc/oracle 부분은 context.xml 의 dbcp의 name 이름 이다!
// DataSource 미스매치로 강제형변환 해주기!

JSP: include 태그

다른 jsp 파일의 내용을 해당 위치에 포함 시킴

외부 요청 주소 X (인터넷주소, 최상위 : /community),
내부 접근 경로 O ( 파일경로, 최상위 : /webapp)

<!-- 내부 접근 절대 경로 -->
<jsp:include page="/WEB-INF/views/common/header.jsp"/>
profile
👩‍💼👩‍💼➡️➡️➡️👩‍💻👩‍💻 생산자의 삶을 살기 위해 개발공부중

0개의 댓글