[Tomcat] 톰켓에서 Context Reload를 빨리해보장.

2010. 5. 28. 11:13Was/Tomcat

<Service name="Tomcat-Standalone">
    <Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
               port="8009" minProcessors="5" maxProcessors="75"
               enableLookups="true" redirectPort="8443"
               acceptCount="10" debug="0" connectionTimeout="0"
               useURIValidationHack="false"
               protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler"/>
    <Engine 사용자설정>
      <Logger 사용자설정/>
      <Realm 사용자설정/>
      <DefaultContext reloadable="true" swallowOutput="true">
        <Loader checkInterval="8"/>
      </DefaultContext>

(내부 보안문제로 설정의 세부사항은 "사용자설정"으로 표기합니다.)

위 처럼 Engine 태그내에 reloadable에 true 말고도 Loader 태그로 checkInterval의 지정함으로서 톰캣의 컨텍스트 리로드 시기를 극적으로 앞당길수 있습니다. 물론 개발시에만 사용해야 겠죵? (성능문제가...)

 

또는

 

<Context 사용자설정 reloadable="true" >
  <Loader checkInterval="3"/>
  <Logger 사용자설정>
</Context>
<Context 사용자설정 reloadable="true" >
  <Loader checkInterval="3"/>
  <Logger 사용자설정>
</Context>

등의 형식으로 컨텍스트내에서 사용할수도 있습니다. context에서는 relodable을 true로 설정해 주셔야 합니다.

 

apache.org에서는

 

checkInterval

The number of seconds between checks for modified classes and resources, if reloadable has been set to true. The default is 15 seconds.

 

간단히 번역하자면 이렇게 나와 있습니다.

"클래스나 리소스의 변경을 체크하는 것으로 checkinterval에서의 단위는 초이며, reloadable을 true로 설정할 경우, 기본 값은 15 초 이다."

 

옹??. 15초였군요...

근데 왜케 리로드 안하지... 저는 무진장 답답했었는데,

저희 개발서버는 클래스 하나만 바꿔도 바로 바로 리로드 하는게 신기해서,

server.xml을 보니 못보던 위의 문장이 주석문으로 잘 들어 있더군요.

(실제로는 변경해서 사용하는듯...)

 

톰캣의 logs디렉토리에서 tail -f 로그화일이름

 

으로 보시면 context 리로드가 되면 context reload라는 메세지가 나오면서

세션정보가 다 날아간다고 에러 몇개랑 같이 나올겁니다.

세션에 저장된 정보가 시리얼라이즈,

옹??.. 제가 이 글에서 설명할 내용이 아니므로 패스~

 

많은 서블릿기반 웹 애플리케이션이나 웹 디벨로퍼에게 도움이 되었으면 하고 올립니다. 저처럼 relodable만 true 시키고 업뎃시켜줄때가졍 커피마시고 오는 농땡이는 이제 그만.. 으하아아아앙~

 

이값을 0 으로 하면 동작안합니다.

이값을 1로 하면 웹 애플리케이션에 따라 다르지만, 저희 서버에는 성능에 영향을 줄 정도입니다.

저희는 6, 7, 8의 값을 사용합니다.

 

아 다들 아시는 정보 같은데,

무식한 제가 올려 봤습니다. 이쁘게 봐주세용.. *^^*

아 글고 톰캣 사용버젼은 4.1x대입니다. 나머지 버젼을 찾아보셔야 될듯...


출처 : http://wwww.okjsp.pe.kr/seq/58014