• 고객센터
  • 교육
  • 매뉴얼
  • 데모
  • 제품소개
조회 수 : 1097
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를 다시 죽였다 살려야합니다.
>
>도와주시죠 ㅡ,.ㅡ;  
>
번호 제목 닉네임 조회 등록일
7449 호환성 보기 설정 이후에도 메뉴 깨짐 현상
kiarakim
8816 2017-02-15
7448 Shift DEMO 사이트 에서 IE11 다운됨
정성호
9042 2017-02-10
7447 엑셀 업로드 속도 문의
jokerrain
9071 2016-12-15
7446 차트 질문 파일
신현철
8997 2016-10-04
7445 java.io.IOException/java.lang.NullPointerException 발생
윤재국
9813 2016-07-13
7444 호환성 보기
kiarakim
8603 2016-07-11
7443 가우스 그리드에 문자입력시 한글/영문 우선순위 변경
hthink
8572 2016-04-21
7442 레포트 DFooter영역 이미지 태그
FKSS
9140 2016-04-20
7441 좌/우측으로 데이터 이동
헐랭이
7725 2016-04-15
7440 가우스 리포트를 PDF로 저장 가능한가요?
안순주
9969 2016-04-12
7439 중간소계 필드 제외 문의
김은영2
7623 2016-04-08
7438 가우스 그리드 범위지정 선택 가능여부 문의 [1]
hthink
9849 2016-03-29
7437 그리드에 이미지표현 파일 [1]
홍혜련
8937 2016-03-23
7436 Internet Explorer의 작동이 중지되었습니다. 파일 [1]
김태성2
8620 2016-03-18
7435 특정 index (row) 삭제 [1]
c1138
8884 2016-03-17
7434 was교체시 업그레이드 재설치 문의 [1]
박서영
7768 2016-03-15
7433 파일 업로드 문의(핸들이 잘못 되었습니다)
임종훈
8692 2016-03-15
7432 개발서버 라이센스 갱신 문의 [1]
정민75
9810 2016-03-07
7431 문의합니다 파일 [1]
c1138
9121 2016-03-07
7430 EnterpriseMode 적용이 되지 않습니다. 파일 [1]
동긔나긔
10293 2016-03-03
Tag List
XE Login