'tomcat'에 해당되는 글 3건

  1. 2010.02.13 톰캣, 글래스피쉬 1
  2. 2010.02.13 톰캣 6 에서 JDBC로 MYSQL 사용하기
  3. 2009.03.16 그루비 톰캣 웹 애플리케이션 PermGen 2
카테고리 없음2010. 2. 13. 17:59
서버를 설치하면 항상 톰캣을 기본으로 깔았었다. 톰캣이야 맨날 보는 거니까 다루기는 편했지만... 상용서버에서도 이 녀석이 잘 견뎌주는지는 항상 의문이었다. 그렇다고, 웹로직을 살수도 없고

연휴를 맞이하여, 전부터 관심있던 글래스피쉬(GlassFish)를 설치해봤다. 혹시 이녀석이라면 비싼거 안사고도 웬만큼 견디는 환경을 구축할수 있지 않을까.

여차저차해서 설치에 성공, db 컨넥션 만들고, 서블릿과 jsp 에서 데이터를 집어와봤다.

스트레스를 해본다. ab 가 만능은 아니지만, 스트레스 테스트는 언제나 ab로..

[code]ab -kc4 -t30 http://test_server_ip:8080/TestS[/code]

해봤다. 약간 실망스러운 것이, 톰캣이나 글래스피쉬나 속도/실패비율이 크게 다르지 않았다. EJB3라던가.. 모니터링이라던가.. 따위따위가 별로 필요없고 서블릿만 쓰는 거라면 글래스피쉬의 도입효과는 크지 않을 것 같다. 역시 용도가 다른 것일뿐, 톰캣이 만들어온 안정적인 서블릿 컨테이너라는 영역은 다른 녀석들 (그리즐리나..) 에 비해 떨어지지 않았다.

사실 속도보다는 다른 측면에서 호감이 가게 되었다. 넷빈즈에서 개발하고 디플로이 하는 과정같은 것들을 한번 겪고나니 이거 없이 어떻게 개발하나 싶은 생각이 들었다. (톰캣도 그런 식으로 개발할 수 있다. 다들 이런 식으로 개발하고 있었는데, 나는 이제서야 .. 촌스럽게 ㅜㅜ )

그리고, EJB3 나 모니터링 따위도 다시한번 고민하게 된다. (공부해야하나.. 라고)


열시간 정도 걸린 타이핑과 구글링끝에 찾아낸 간단 자료.

http://www.youtube.com/watch?v=CKuoDm6bqRM
http://nigibox.wordpress.com/2009/10/03/glassfish-apache-on-debian/
http://netbeans.org/kb/docs/javaee/javaee-gettingstarted-screencast.html

[code]
su - glassfish
wget http://download.java.net/glassfish/v3/release/glassfish-v3.zip
glassfish@s:/opt/glassfish$ unzip glassfish-v3.zip
glassfish@s:/opt/glassfish$ mv glassfishv3/* /opt/glassfish/
cd /opt/glassfish/
bin/asadmin start-domain domain1
[/code]


관련자료:
* 글래스 피쉬의 앞단인 그리즐리(Grizzly)가 NIO에 기반하기 때문에 톰캣보다 엄청 많은 접속을 처리할 수 있다는 주장 : http://blogs.sun.com/thea...., 하지만 뒷단에는 어차피 서블릿 컨테이너일뿐, 앞단은.. nginx가 있잖아?
* 넷빈즈에서 그루비 스크립트 돌리는 동영상 강의 : http://www.screenca...51
* 넷빈즈에서 스칼라 돌리기 : http://wiki.netbeans.org/... (다음버전에서는 더 쉽게 지원될 듯)
* 글래스피쉬는 서블릿 스펙 3.0을 지원한다. 파일 업로드가 스펙에 들어있는 듯. http://www.ibm.com/...
Posted by jintopark
카테고리 없음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  다음»