2011년 10월 11일 화요일

TOMCAT Multi-Instance & Service Regist (Windows)

* 이 글은 윈도우즈 시스템 및 JDK1.6, TOMCAT6를 기반으로 작성 되었습니다.

TOMCAT의 인스턴스가 이미 디폴트 상태로 존재하고 있음을 가정으로 진행한다.
신규 인스턴스는 C:\TestServer 폴더에 생성하는 것으로 가정한다.
배치 스크립트명은 다음과 같이 정한다. 인스턴스 시작 : startup.bat, 인스턴스 종료 : shutdown.bat, 서비스 등록 : TomcatServiceRegist.bat
신규 인스턴스의 TOMCAT 서비스명은 TomcatService로 등록한다. 

  • C:\TestServer 폴더를 생성한다.
  • 생성한 C:\TestServer 폴더 내부에 최초 설치된 톰켓과 동일하게 비어있는 폴더(bin, conf, logs, temp, webapps)를 생성한다.
  • 기존에 등록된 인스턴스의 conf 폴더에서 server.xml, web.xml 파일을 신규 생성할 인스턴스의 C:\TestServer 내부의 conf 폴더로 복사한다.
    • server.xml 파일의 port 정보를 기존에 등록 된 인스턴스의 포트와 중복되지 않게 설정한다.
  • C:\TestServer 폴더 내부의 bin 폴더에 다음의 스크립트를 생성한다.

startup.bat (인스턴스 시작 스크립트)
set JAVA_HOME=D:\Java\JDK1.6      (JAVA_HOME을 설정한다.)
set CATALINA_HOME=D:\Tomcat 6    (TOMCAT이 설치된 경로를 설정한다.)
set CATALINA_BASE=C:\TestServer   (신규 생성할 인스턴스 경로를 설정한다.)

%CATALINA_HOME%/bin/startup.bat   (기존 TOMCAT 인스턴스의 startup.bat 파일을 호출한다.)

shutdown.bat (인스턴스 종료 스크립트)
set JAVA_HOME=D:\Java\JDK1.6     (JAVA_HOME을 설정한다.)
set CATALINA_HOME=D:\Tomcat 6   (TOMCAT이 설치된 경로를 설정한다.)
set CATALINA_BASE=C:\TestServer  (신규 생성할 인스턴스 경로를 설정한다.)

%CATALINA_HOME%/bin/shutdown.bat  (기존의 TOMCAT 인스턴스의 shutdown.bat 파일을 호출한다.)

* 웹어플리케이션의 디플로이 경로는 C:\TestServer\webapps\SampleWebApp\에 하는 것으로 가정한다.

TomcatServiceRegist.bat (서비스 등록 스크립트, 환경에 따라 수정 필요)
D:\Tomcat 6\bin\tomcat.exe -install TomcatService D:\Java\JDK1.6\jre\bin\server\jvm.dll -Djava.library.path=C:\TestServer\webapps\SampleWebApp\WEB-INF\lib -Djava.class.path=C:\TestServer\webapps\SampleWebApp\WEB-INF\lib\sample-lib.jar;C:\TestServer\webapps\SampleWebApp\WEB-INF\classes;C:\TestServer\webapps\SampleWebApp\WEB-INF\classes\sample;D:\Tomcat 6\bin\bootstrap.jar; -Dcatalina.base=C:\TestServer -Dcatalina.home=D:\Tomcat 6 -server -Xmx256M -Xms256M -Xrs -Xnoclassgc -start org.apache.catalina.startup.Bootstrap -params start
@echo Please start the TomcatService now.
@pause

스크립트 작성 완료 후 웹어플리케이션을 디플로이 한다.
신규 인스턴스를 시작하여 웹어플리케이션이 정상적으로 동작하는지 확인한다.
신규 인스턴스를 종료하고 서비스등록 스크립트를 실행하여 Windows Service로 등록하고 정상적으로 등록이 되었는지 확인한다.