'설정'에 해당되는 글 2건

  1. 2007/08/20 Tomcat DBCP 설정(Oracle 10g) (1)
  2. 2007/06/26 Tomcat 기반 JSP 개발 환경설정
2007/08/20 14:18

Tomcat DBCP 설정(Oracle 10g)

대부분의 어플리캐이션에서 가장 부하가 많이 걸리는 부분은 DB 에 접속 하는 부분이라고 합니다. 그에따라 대부분의 상용 사이트 혹은 동시접속자가 생기는 솔루션의 경우에는 DataBase Pool 이라는 기법을 이용하여 Connection 되어있는 객체를 생성하고, 요구사항이 있을때 임대해 주는 방식을 많이 사용합니다. 이 부분을 직접 작성해 보는것 또한 많은 것을 학습할 수 있는 기회가 되지만, 실제 서비스되는 곳에 실험적으로 만들어진 코드를 사용하기는 현실적으로 많이 어려운것 같습니다.

따라서 apache 재단의 Java 서브 프로젝트인 jakarta 에서 DBCP 라는 프레임워크(?) 많이들 이용하고 있습니다. 물론, 학습시에 말이죠. :-)


자바를 배워 나아간다는것은, 영업직들의 화려한 활약으로 인해서 EJB 가 필수적인 스킬이 되어 가고 있는 상황이고 EJB 라는 녀석 자체가 초기 투자비용이 워낙 큰 녀석이다보니 WAS 에서 학습시에 세팅에 열을 올리는 대부분의 것들을 자체적으로 지원해 주기 마련입니다. 그래서 DBCP(DB Connection Pool) 에 대한 전반적인 지식이 없이 EJB 로 넘어가는 사례를 많이 보곤 합니다. 하지만 제가 항상 강조하듯이 지식을 끌어안지 못하고 과정을 학습하는것은, 차후에 그것을 기반으로 한 상위의 무언가를 배울때 걸림돌이 될 것이 확실하다고 생각합니다.

그래서 결론은, 'DBCP 에 대한 전반적인 지식을 끌어안고 상위로 나아가자' 가 되겠죠. :-)


항상 포스팅을 할 때마다 느끼는것이지만, 사설이 너무 길어지는거 같습니다.

1> 라이브러리 복사.
2> server.xml ==> <Resource /> 추가
3> context.xml 혹은 server.xml ==> <ResourceLink /> 추가
4> web.xml ==> <resource-ref> ... </resource-ref> 추가
5> TEST!!


1-1> DBCP 라이브러리 복사.
common-collections-3.2.jar
common-dbcp-1.2.1.jar
common-pool-1.3

위의 3개 파일을 <context>/WEB-INF/lib 디렉토리에 복사.


1-2> oracle JDBC 드라이버 파일 복사.
ojdbc14.jar
위 파일을 <context>/WEB-INF/lib 디렉토리에 복사.
[<TOMCAT_HOME>/common/lib 디렉토리에 복사]


2> server.xml 파일의 <GlobalNamingResources> 의 내부태그로 <Resource /> 추가

<Resource auth="Container" driverClassName="oracle.jdbc.driver.OracleDriver" maxActive="20" maxIdle="10" maxWait="-1" name="jdbc/project" password="tiger" type="javax.sql.DataSource" url="jdbc:oracle:thin:@127.0.0.1:1521:xe" username="scott" />


3> context.xml 혹은 server.xml 파일의 <Context> 의 내부태그로 <ResourceLink /> 추가

<ResourceLink global="jdbc/project" name="jdbc/project" type="javax.sql.DataSource" />


4> web.xml 파일에 <resource-ref> 추가.

 <resource-ref>
  <description>DB Connection</description>
  <res-ref-name>jdbc/project</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>Container</res-auth>
 </resource-ref>


5> TEST!!

<%@ page contentType="text/html" pageEncoding="UTF-8"
         import="java.sql.*"
         import="javax.sql.*"
         import="javax.naming.*"
%>
<html>
<head>
 <title></title>
</head>


<body>
<%
  try {
   Context initCtx = new InitialContext();
   Context envCtx = (Context)initCtx.lookup("java:/comp/env");
   DataSource ds = (DataSource)envCtx.lookup("jdbc/project");

   Connection conn = ds.getConnection();
   out.write("DB Connection..");
 
   conn.close();
  }
  catch(Exception e) {
   e.printStackTrace();
  }
%>
</body>

</html>



5번 과정을 마친 후 톰캣을 가동하고 웹브라우저에서 실행시 "DB Connection.." 이라는 메시지가 브라우저에 출력이 된다면 연결이 성공한 것입니다. :-)
크리에이티브 커먼즈 라이선스
Creative Commons License
Trackback 0 Comment 1
2007/06/26 10:30

Tomcat 기반 JSP 개발 환경설정

특별한 프레임 워크 사용 없이 Java 2 SDK 와 Tomcat 설치, 그리고 MySQL Database 와의 연동을 위한 최소한의 설치과정을 정리.


자바 설치 후 PATH, JAVA_HOME, CLASSPATH 설정.

JAVA_HOME = C:\java\j2sdk
PATH = %PATH%; %JAVA_HOME%\bin;
CLASSPATH = .;

Tomcat 설치 후 CATALINA_HOME 설정.
CATALINA_HOME = C:\tomcat


Java 컴파일러에서 서블릿의 클래스 파일을 인식시키기 위해서 대부분의 서적에서 CLASSPATH 를 설정해 주는 방식을 사용하는것 같습니다. 하지만 매번 새로운 모듈이 필요할 경우마다 설정을 바꾸어 주어야 하는 수고스러움(?)이 발생하는 문제점이 있습니다. 따라서 저는 JAVA_HOME\jre\lib\ext 디렉토리에 해당 모듈을 넣어주는 방식을 선호합니다. :-)
(이 방식은 개발시에 용이하지만, 실제 서비스를 해야 하는 경우라면 CLASSPATH 를 설정해 주는것이 올바른것 같습니다.)

servlet-api.jar, jsp-api.jar 파일을 JAVA_HOME\jre\lib\ext 디렉토리에 복사.
mysql-connector-java-5.0.5-bin.jar 파일을 JAVA_HOME\jre\lib\ext 디렉토리에 복사.
(mysql 버전에 따라 차이가 있습니다.)


여기까지의 설정만을 이용하면 Servlet 및 JSP 에서 MySQL Database 에 접근할 수 있었습니다. 굳이 MySQL 이 아닌 Oracle 이나 MS-SQL 역시 JDBC 드라이버만 JAVA_HOME\jre\lib\ext 디렉토리에 복사해 주면 정해진 API 를 통해 접근이 가능해 지는것을 확인하였습니다.

아직까지 마음에 들진 않지만.. 역시나 배우는 입장이니 시키는 대로 따라가 보아야 겠습니다. :-)
크리에이티브 커먼즈 라이선스
Creative Commons License
Trackback 0 Comment 0