아래의 하단에 기술한 것 같이
FAQ에 있는 그대로 테스트를 했습니다.
(수도 없이 테스트를 했습니다.)
왜 그럴까요?
>안녕하세요?
>
>필터 관련 문제 때문에 저희가 티맥스쪽에 문의해서 얻은 아래에 적어 놓을테니 참고하세요
>
>예전 LPL(엘지 필립스엘시디)쪽에서 발생했던 문제점 해결한 내용입니다.
>
>그럼 수고하세요.
>
>[관련내용]
>
>일단 JEUS에서 변경된 class를 auto reload하는 방법에는 두가지가 있습니다.
>
>첫번째는 시간주기로 container에서 변경된 class를 체크하여 auto reload하는 방식이고
>
>첫번째는 변경된 class에 요청이 왔을 때 auto reload하는 방식입니다
>
>
>
>이러한 설정은
>
>$JEUS_HOME/config/[nodename]/[nodename]_servlet_engine1/jeus-web-dd_[contextname].xml에서 할수 있으며
>
>jeus-web-dd_[contextname].xml 파일을 열어보시면
>
>
>
>….
>
><auto-reload>
>
> <enable-reload>true</enable-reload> --- 첫번째 방식 default 시간간격 : 300초
>
> <check-on-demand>true</check-on-demand> --- 두번째 방식
>
></auto-reload>
>
>….
>
>위와 같이 auto-reload에 관한 설정을 보실 수 있습니다.
>
>테스트시에도 변경된 class를 적용하신후, 바로 호출하였기 때문에 두번째 방법이 먼저 적용되었습니다.
>
>
>
>두번째 방식(check-on-demand)은 다른 WAS에서는 사용하지 않는 방식으로, 개발자의 편의를 위해서
>
>JEUS에 도입된 기술입니다. 그런데 이 방식의 알고리즘(원문 메시지 참고)상 servlet filter를 사용할 경우,
>
>처음 호출시에는 호출한 servlet만 auto-reload되고 servlet filter는 auto reload되지 않기 때문에, 위와
>
>같은 문제가 발생한 것 같습니다. (두번째 호출시에는 servlet filter 또한 auto reload되기 때문에 정상적으로
>
>Hash code값이 바뀌어 나옵니다)
>
>
>
>다른 WAS에서는 위와 같은 문제가 발생하지 않은 이유는 다른 WAS의 경우 첫번째방식만을 지원하고 있고
>
>check하는 시간 간격이 짧기 때문에 위와 같은 문제가 발생하지 않는 것으로 추정됩니다.
>
>
>
>=== 해결 방법 ===
>
>jeus-web-dd_[contextname].xml의 <check-on-demand>를 false로 설정하시고
>
>….
>
><auto-reload>
>
> <enable-reload>true</enable-reload>
>
> <check-on-demand>false</check-on-demand>
>
></auto-reload>
>
>….
>
>
>
>$JEUS_HOME/config/[nodename]/[nodename]_servlet_engine1/WEBMain.xml에서
>
><web-container>태그 바로 하단에 <monitoring>/<check-class-reload>를 아래와 같이 설정하시면 됩니다.
>
>(설정후 재부팅하셔야 적용됩니다.)
>
>
>
><web-container>
>
><monitoring>
>
> <check-class-reload>2000</check-class-reload>
>
></monitoring>
>
>……..
>
>
>
>위와 같이 설정하였을 경우 2초(2000ms)간격으로 container에서 class reload된 것을 체크하겠다는 의미입니다.
>
>시간 간격은 편하실 되로 적용하시면 됩니다.(최소값은 1초(1000ms)입니다)
>
>
>
>위의 내용은 실제로 테스트를 한 내용으로 위와 같이 하고 동일한 테스트를 실행하면 hash code값이 class reload된후
>
>재호출시에도 변경되어 나옵니다.
>
>
>
>>게시판을 이용해 주셔서 감사합니다.
>>다음양식에 맞게 입력해주세요.
>>
>>* 고객시스템명 :
>>* GAUCE 버전 : 4.0(JAVA)
>>* WAS 종류(WebLogic 등등) : JEUS 5.0 Fix 13
>>* DB 종류 : Oracle 9i
>>* 문의 유형(질문/요청/참조) : 질문
>>* 내용 :
>>
>>=======================================================
>>질문에 답변이 없어서 다시한번 질문합니다.
>>=======================================================
>>
>>
>>JEUS에서 가우스 필터를 등록해서 사용하고 있습니다.
>>Gauce FAQ에 있는대로 설정을 해 주었는데
>>ANT를 이용하여 build한 다음 Gauce Filter가 다시 로딩이 되지 않습니다.
>>ANT로 빌드시 기존에 있던 클래스 파일들을 자동으로 모두 삭제한 다음
>>컴파일된 파일이 WEB-INF/classes아래로 옮겨집니다.
>>
>>다음은 설정된 구성입니다.
>><jeus-web-dd.xml>
>><?xml version="1.0" encoding="UTF-8"?>
>><jeus-web-dd xmlns="http://www.tmaxsoft.com/xml/ns/jeus">
>> <context-path>/</context-path>
>> <enable-jsp>true</enable-jsp>
>> <auto-reload>
>> <enable-reload>true</enable-reload>
>> <check-on-demand>false</check-on-demand>
>> </auto-reload>
>>
>> <res-ref>
>> <jndi-info>
>> <ref-name>import</ref-name>
>> <export-name>import</export-name>
>> </jndi-info>
>> </res-ref>
>>
>> <max-instance-pool-size>-1</max-instance-pool-size>
>> <url-rewriting>false</url-rewriting>
>> <enable-default-login>false</enable-default-login>
>> <webinf-first>false</webinf-first>
>></jeus-web-dd>
>>
>>
>><WEBMain.xml>
>><?xml version="1.0" encoding="UTF-8"?>
>><web-container xmlns="http://www.tmaxsoft.com/xml/ns/jeus">
>> <monitoring>
>> <check-class-reload>5000</check-class-reload>
>> </monitoring>
>> <context-group>
>> <group-name>MyGroup</group-name>
>> <webserver-connection>
>> <http-listener>
>> <listener-id>import_02</listener-id>
>> <port>6066</port>
>> <output-buffer-size>8192</output-buffer-size>
>> <thread-pool>
>> <min>10</min>
>> <max>20</max>
>> </thread-pool>
>> </http-listener>
>> </webserver-connection>
>> </context-group>
>></web-container>
>>
>>
>><web.xml>
>><?xml version="1.0" encoding="UTF-8"?>
>><web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee">
>> <!-- Session Timeout -->
>> <session-config>
>> <session-timeout>720</session-timeout>
>> </session-config>
>>
>> <!-- Define Gauce Filter -->
>> <filter>
>> <filter-name>GauceFilter</filter-name>
>> <filter-class>com.gauce.filter.GauceFilter</filter-class>
>> <init-param>
>> <param-name>conf-reload</param-name>
>> <param-value>5000</param-value>
>> </init-param>
>> </filter>
>> <filter-mapping>
>> <filter-name>GauceFilter</filter-name>
>> <url-pattern>/*</url-pattern>
>> </filter-mapping>
>>
>> <!-- Define JJActionServlet -->
>> <servlet>
>> <servlet-name>JJActionServlet</servlet-name>
>> <servlet-class>kr.co.jinjin.servlet.JJActionServlet</servlet-class>
>> <init-param>
>> <param-name>action_package</param-name>
>> <param-value>kr.co.jinjin.action</param-value>
>> </init-param>
>> <init-param>
>> <param-name>action_config</param-name>
>> <param-value>conf/action_config.xml</param-value>
>> </init-param>
>> </servlet>
>> <servlet-mapping>
>> <servlet-name>JJActionServlet</servlet-name>
>> <url-pattern>/Import.cmd</url-pattern>
>> </servlet-mapping>
>>
>> <!-- Define Error Page -->
>> <error-page>
>> <error-code>500</error-code>
>> <location>/common/error/500.jsp</location>
>> </error-page>
>>
>> <resource-ref>
>> <description>Oracle Server Datasource Configuration</description>
>> <res-ref-name>import</res-ref-name>
>> <res-type>javax.sql.DataSource</res-type>
>> <res-auth>Container</res-auth>
>> </resource-ref>
>>
>> <!-- Define Welcome File -->
>> <welcome-file-list>
>> <welcome-file>index.jsp</welcome-file>
>> <welcome-file>index.html</welcome-file>
>> <welcome-file>index.htm</welcome-file>
>> </welcome-file-list>
>></web-app>
>>
>>왜 그럴까요?
>>항상 빌드하고 난 다음에는
>>가우스 필터쪽에서 ClassCastException이 발생하여 여러번 화면을 Refersh 해도
>>동일한 에러가 발생하여 Jeus Container를 다시 죽였다 살려야합니다.
>>
>>도와주시죠 ㅡ,.ㅡ;
>>
>