• 고객센터
  • 교육
  • 매뉴얼
  • 데모
  • 제품소개
조회 수 : 1092
2007.03.31 (01:27:37)
안녕하세요?

필터 관련 문제 때문에 저희가 티맥스쪽에 문의해서 얻은 아래에 적어 놓을테니 참고하세요

예전 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를 다시 죽였다 살려야합니다.
>
>도와주시죠 ㅡ,.ㅡ;  
>
번호 제목 닉네임 조회 등록일
2869 메일주소를 적어주세요~
기술지원12
891 2007-04-06
2868 라이센스 에러[긴급]
박은창
886 2007-04-05
2867 라이센스 에러[긴급]
기술지원
856 2007-04-06
2866 가우스 서비스 빌더 부탁드립니다.
하창훈
917 2007-04-04
2865 보내드렸습니다
기술지원12
862 2007-04-05
2864 클라이언트에서 웹페이지 접근시 그리드 부분이 보이지 않아요!
이재성
914 2007-04-04
2863 클라이언트에서 웹페이지 접근시 그리드 부분이 보이지 않아요!
기술지원12
963 2007-04-10
2862 메일주소 알려드립니다.
이재성
841 2007-04-11
2861 index.html treeview 안보이는 문제(select.jsp?X-UIClient=G40)확인 정상!
안현오
948 2007-04-03
2860 index.html treeview 안보이는 문제(select.jsp?X-UIClient=G40)확인 정상!
기술지원
1081 2007-04-06
2859 새로운 라이센스키를 변경후 오류가 났습니다.
정수분
1123 2007-04-01
2858 달력예제 부탁드립니다.
김선운
839 2007-03-31
2857 달력예제 부탁드립니다.
관리자
1030 2007-04-02
2856 [재질문] 컴파일 후 GauceFilter가 살아나지 않습니다.
유창원
1045 2007-03-31
Selected [재질문] 컴파일 후 GauceFilter가 살아나지 않습니다.
관리자
1092 2007-03-31
2854 그대로 했는데 안되서 질문드렸습니다.
유창원
896 2007-04-02
2853 gauce40/treeview.html treeview가 안보이는 문제
안현오
1251 2007-03-30
2852 gauce40/treeview.html treeview가 안보이는 문제
관리자
1067 2007-03-30
2851 답변이 없으셔서..
이재휴
832 2007-03-30
2850 답변이 없으셔서..
관리자
1008 2007-03-30
Tag List
XE Login