'톰캣'에 해당되는 글 2건

  1. 2010.02.13 톰캣 6 에서 JDBC로 MYSQL 사용하기
  2. 2009.03.16 그루비 톰캣 웹 애플리케이션 PermGen 2
카테고리 없음2010. 2. 13. 02:47
debian 5 에 tomcat 6.0.20 을 설치하고 테스트용 JSP를 작성해보았다. 기본 설정으로는 JDBC 연결이 되지 않는다.


먼저 설치 확인하고 톰캣에 mysql jar 연결
[code]
apt-get install libmysql-java tomcat6 tomcat-common
cd /usr/share/tomcat6/lib
ln -s /usr/share/java/mysql.jar
[/code]

JSP Examples
/etc/tomcat6/server.xml 수정
[code]
    <GlobalNamingResources>
      ...
    <Resource name="jdbc/mydbname" auth="Container"
          type="javax.sql.DataSource"
          username="mysql_loginid" password="mysql_pass"
          driverClassName="com.mysql.jdbc.Driver"
          url="jdbc:mysql://server_ip:3306/databasename" />
      ...
    </GlobalNamingResources>[/code]
(removeAbandoned 따위 인자는 안적는게 좋네요.. ㅜㅜ)



/etc/tomcat6/context.xml 파일 수정
[code]
<ResourceLink global="jdbc/mydbname"
   name="jdbc/mydbname" type="javax.sql.DataSource" /> [/code] (만약... 호스트나 어플리케이션에 특화시키려면..
/etc/tomcat6/Catalina/[hostname]/[appname].xml 혹은 /etc/tomcat6/Catalina/[hostname]/ROOT.xml
에 적어야한다.)


자바 소스에서 사용할 때는
[code]
Context ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/mydbname");
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement();
ResultSet rst = stmt.executeQuery("select ...");
while(rst.next()) { ... }
[/code]





다 했는데.. 이런 오류가 난다면,
(Could not create connection to database server. Attempted reconnect 3 times. Giving up.)

/etc/tomcat6/policy.d/04webapps.policy 에 다음 코드를 추가한다.
[code] permission java.net.SocketPermission "데이터베이스서버_아이피:3306", "connect";[/code]


검색에 걸리게 하기 위해 설정을 제대로 안했을 때 나타나는 오류를 적어둔다.
* Name jdbc is not bound in this Context
* JSP ExamplesCannot create JDBC driver of class '' for connect URL 'null'
JSP Examples* Cannot load JDBC driver class 'com.mysql.jdbc.Driver'
Posted by jintopark
카테고리 없음2009. 3. 16. 00:04
요즘 진행중인 프로젝트에서 서블릿을 만들 때 자바 대신 그루비를 사용한다. 헌데 코드가 조금 복잡해지면서
OutOfMemoryError: PermGen space

라는 오류가 자꾸 발생했다. 일단 저 오류가 뜨고나면 톰캣이 더이상 동작하지 않는 상태가 된다.

이 문제로 5일이나 삽질한 끝에 방금 전에 해결했다.

여러가지 해결 책이 있겠지만, 일단 가장 쉬운 방법은 WEB-INF/lib 에서 mysql*.jar 를 삭제하는 것이다. 더불어 commons-logging*.jar도 삭제하자. 그러면 문제도 해결되고 애플리케이션 속도도 빨라진다.

그래도 해결이 안되고 계속 문제가 발생하면, 톰캣 실행옵션에
-XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled

을 줘보자. 또는 -XX:MaxPermSize=256m도 효과가 있다고 한다. 나는 일단 jar파일들 삭제까지만 해서 문제가 해결되었다.
Posted by jintopark

 

 
«이전  1  다음»