레이블이 Jeus인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Jeus인 게시물을 표시합니다. 모든 게시물 표시

2010년 2월 4일 목요일

jeus auto reload Q/A 모음

수정된 서블릿 파일을 반영시키기 위해서는 위에서 처럼
(1) 해당 context에 AutoReload='true'로 세팅을 해두시던가,
(2) AutoReload='false'일 경우 webadmin이라는 console 툴을 이용해서
>reload    [ContextGroup] [Context] [Servlet] :  reload elements
하시면 됩니다.

그리고 현재 Context에 대한 세팅이 제대로 되어 있는지(AutoReload='true')를
체크하시기 위해서는 webadmin 으로 login하신 후
>cfg -c:컨텍스트명 명령을 해보시면 현재 Context의 세팅 상태를 알 수 있습니다

 

 

Jeus32\classes에는 유저가 개발한 소스를 두는 위치가 아님니다.
시스템 클래스만 두는 것입니다.
그 결과는 당연합니다.

E:\Jeus32\webhome\servlet_home\webapps\ping\WEB-INF\classes
에 두고 사용하시는것이 맞습니다.

만약 해당 클래스가 package성 프로그램이고
reload대상이 아니라면

$JEUS_HOME/lib/application에 두고 사용하시면 됩니다.

수고하세요.

 

 

님께서 현재 제우스 manager를 이용해서 셋팅을 하시는지 아니면
그냥 텍스트 모드로 하시는지 모르겠지만
간단하게 텍스트 모드 방법을 가르쳐 드리겠습니다.
그리고 기본적인 제우스 셋팅이라 보고 말씀 드리겠습니다.

Java Bean 파일을 자동으로 auto reload 하기 위해서는

※노드명은 콘솔창에서 hostname으로 확인할수 있습니다.
ex] c:\hostname

(tag를 넣으면 제대로 보이지 않기 때문에 .을 삽입 했습니다.)

1. java Bean Auto-reload
제우스 설치 폴더 -> config 폴더 -> 노드명폴더 -> 노드명_servlet_engine1 ->
jeus-web-dd_examples.xml 파일을 편집기(ultra edit, edit plus등)으로
열어 봅니다.
<.jeus-web-dd>
   <.context>
       <.context-name>Examples</context-name>
       <.docbase>examples</docbase>
       <.auto-reload>
           <.enable-reload>true</enable-reload>
           <.check-on-demand>true</check-on-demand>
       <./auto-reload>
   <./context>
<./jeus-web-dd>

위에 보시면 <.auto-reload> ~ <./auto-reload>를 그대로 복사 하셔서 넣어 주시면 됩니다.

 


>  > % http.m
>  > -------------
>  > *NODE
>  > hanuhm    
>  >              WEBTOBDIR="D:/Jeus40/webserver",
>  >            SHMKEY = 54000,
>  >            DOCROOT="D:/STLS/webapps",
>  >             PORT = "8080",
>  >
>  > % WEBMain.xml
>  > --------------
>  > < context >
>  >     < context-name >default< /context-name >
>  >     < context-path >/etls< /context-path >
>  > </context>
>  >
>  > % jeus-web-dd_default.xml
>  > ------------------------
>  > < jeus-web-dd >
>  >     < context >
>  >         < context-name >default< /context-name >
>  >         < docbase > < /docbase >
>  >         < auto-reload>
>  >             < enable-reload >true< /enable-reload >
>  >             < check-on-demand >true< /check-on-demand >
>  >          < /auto-reload >
>  >     < /context >
>  > < /jeus-web-dd >

 

BEANS는 컨텍스트 아래의 WEB-INF/classes 에 패키지 형태로 두거나

모든 컨텍스트에서 참조 가능하도록 JEUS_HOME/lib/application에 두는 것이

일반적입니다. OS 환경 CLASSPATH는 제우스에서 사용하지 않습니다.

다음과 같이 컨텍스트가 올바르게 등록되어있는지 확인해 보세요..

1) OS 환경설정 SERVLET_HOME 값 확인
2) WEBMain.xml의 <group-docbase> 값 확인
3) jeus-web-dd_컨텍스트명.xml의 <docbase> 값 확인

그러면 다음과 같이 컨텍스트의 절대경로를 얻을 수 있습니다.

4) SERVLET_HOME/group-docbase/docbase

결로적으로 jsp는 4)의 경로에 두고 사용하며 서블릿 혹은 빈즈는

5) SERVLET_HOME/group-docbase/docbase/WEB-INF/classes

에 두면 JSP에서 참조할 수 있습니다.

만약, 제우스가 4.2 버전 이상이라면 1) 설정은

JEUS_HOME/bin/jeus.properties에 등록되어 있습니다.

참고로, WEBMain.xml의 <servlet-home> 값이 설정되었다면

SERVLET_HOME 환경변수 값은 무시됩니다.. 즉, <servlet-home> 값이

우선 적용됩니다.


서블릿은 5) 경로에 두고 web.xml에 SerlvetRoot를 설정하면

"http://주소:포트/컨텍스트패스/servlets/서블릿명"

로 호출할 수 있습니다.

자세한 샘플과 설정은 매뉴얼을 참고하세요..

 

 


클래스페스가 설정된 곳에 실제로 그 클래스가 없는 것입니다.
참고로 jeus는 외부의 classpath를 쓰지 않습니다.
따라서 공통클래스의 경우 jeus_home/lib/application에 놓고 쓰고
추가 적인 classpath는 JEUSMain.xml에 user-classpath를 사용해서 추가 해서 사용 합니다.

 

 


> <EngineContainer>
>     <Name>container1</Name>
>     <CommandOption/>
>     <SequentialStart>false</SequentialStart>
>     
>      <UserClassPath>C:\home1\nafis\lib</UserClassPath>

 

 


JeusMain.xml에서 [UserClassPath] 태그를 사용하여 클래스패스를 명시해 준 경우에 이런 현상이 발생합니다.
현재 프로젝트에서 [UserClassPath] 태그를 반드시 사용해야 하는 상황이며,  사용하는 CONTEXT 에만 영향을 줘야하는 상황이어서  C:\Jeus33\lib\application 에 놓고 쓸수 있는 상황이 아닙니다.
CONTEXT 밑에 WEB-INF/LIB에 jar를 놓고 사용할 경우 servlet에서 안되는데. jsp에서는 인식을 하니... jsp로 바꾸어 해결했습니다.
문제는 프레임웍에서 제공하는 트랜젝션을 하나도 사용 못한다는거죠...

 

만약 그렇다면 UserClassPath를

추가하고자 하는 디렉토리에 마지막 부분에 \를 추가 해보시겠습니까..?

예를 들자면

c:\temp => c:\temp\

 

 

container.xml에서 해당 Context 엘리먼트의 속성으로 AutoReload="true"로 설정되어있습니다.

 

WebtoB / JEUS 간단 운영법

WebtoB / JEUS 간단 운영법
===================================================
WebtoB 설치 디렉토리 : /user2/handyr5/webtob
        환경설정파일 : /user2/handyr5/webtob/config/http.m
JEUS 설치 디렉토리   : /user2/handyr5/jeus
   JEUS 환경설정파일 : /user2/handyr5/jeus/config/incheon/JEUSMain.xml (엔진구성 설정)
                       /user2/handyr5/jeus/config/incheon/incheon_servlet_engineX/WEBMain.xml (서블릿 엔진 설정)
 

WebtoB 기동 : $ wsboot
WebtoB 종료 : $ wsdown  (wsdown -i)
* WebtoB는 80포트로 기동되므로 반드시 root로 기동/종료 하여야 한다(현재 8090포트).
 
JEUS 기동   : $ jboot
JEUS 종료   : $ jdown
* JEUS는 반드시 handyr5로 기동/종료 하여야 한다.
 
 
 
**** 모니터링 ****
 
WebtoB(Web Server)
-------------------------------------------
$ wsadmin
> ci -s         동시 접속자 수(browser)
Total Connected Clients = 357
 
> st -s         서비스 상태(수행속도, 요청횟수, 큐잉 등..)
 
 
 
JEUS(WAS)
-------------------------------------------
* jeusadmin
$ jeusadmin `hostname` -Uadministrator -Pjeusadmin
형식 : jeusadmin 호스트명 -U<계정> -P<암호>
 
handy1>pidlist              pid 조회
handy1_container1 : 13722
 
 
* webadmin
$ webadmin `hostname`_servlet_engine1 -U administrator -P jeusadmin
> st            엔진 상태
< memory information >
VM Total Memory    = 535691264 Bytes
VM Free Memory     = 460284912 Bytes
 

> ti            thread info
-- Thread State [MyGroup-hth1(112.100.10.2:19901)] --
[MyGroup-hth1(112.100.10.2:19901)-w0][waiting, wt=2482 ms]
[MyGroup-hth1(112.100.10.2:19901)-w1][active , rt=28322 ms, uri=/servlet/HIServlet]
[MyGroup-hth1(112.100.10.2:19901)-w2][waiting, wt=2128 ms]
....
    wt : waiting time(ms)
    rt : running time(ms)
    uri : 요청 url
 

로그
$WEBTOBDIR/log/ access log가 날짜별로 생성됨
$JEUS_HOME/logs/JeusServer/ JEUS system log가 날짜별로 생성됨. 날짜별 로그.log
               /엔진별로그/... / accesslog / JEUS servlet engine 의 accesslog(수행시간)
 

###### alias #####
alias jcfg 'cd $JEUS_HOME/config/`hostname`'                            JEUSMain.xml이 있는 위치로 이동
alias scfg 'cd $JEUS_HOME/config/`hostname`/`hostname`_servlet_engine1' WEBMain.xml이 있는 위치로 이동
alias scfg1 'cd $JEUS_HOME/config/`hostname`/`hostname`_servlet_engine1'
alias scfg2 'cd $JEUS_HOME/config/`hostname`/`hostname`_servlet_engine2'
alias wcfg 'cd $WEBTOBDIR/config'                                       http.m이 있는 위치로 이동
alias jlog 'cd $JEUS_HOME/logs/JeusServer'                              JEUS system log가 있는 위치로 이동
alias logs 'cd $JEUS_HOME/logs'                                         JEUS 의 로그 디렉토리로 이동
alias vlog 'tail -f $JEUS_HOME/logs/JeusServer/JeusServer_`date +%m%d%Y`.log'   tail -f JEUS_system_log
 
 
 
###### thread dump 뜨는 법 #####
ti 정보를 조회할 때 수행시간이 너무 오래 걸리는 것이 있거나
모든 thread가 full 되어서 서비스가 너무 느려지는 경우
현재 thread의 상태를 조회해서 thread가 어떤 상태인지 조회해 볼수 있다.
java process에 kill -3을 수행하면 해당 jvm 내의 모든 thread의 정보가
JEUS system log에 남겨진다.
위의 pid 조회 방법을 참고로 하여 java process의 pid를 조회한 후
 
$ kill -3 [java_pid]
 
를 수행하면 된다.
즉시 조회하고 싶으면 다른 telnet 창에서 vlog를 수행한 후
kill -3을 수행하면 된다.
 
운영중 문제가 발생하는 경우 thread dump와 로그는 아주 유용한 정보가 되므로
장애발생시 반드시 3~5초 간격으로 3번 정도 thread dump를 남겨서 
엔지니어에게 전달하도록 한다. 

 

JEUS초기설정시 변경 파일

 

JEUS 초기 설정시 설정파일 수정목록

 

1. JEUSMain.xml 수정

          - 경로 : {JEUS_HOME}/config/{HOSTNAME}/JEUSMamin.xml

 

2. WEBMain.xml 수정

          - 경로 : {JEUS_HOME}/config/{HOSTNAME}/{HOSTNAME}_servlet_engine1

                                                                                                           /JEUSMamin.xml

 

3. jeus-web-dd.xml 생성/수정

          - 경로 : {CONTEXT PATH}/WEB-INF/jeus-web-dd.xml

 

4. sample.m 수정

          - 경로 : {WEBTOBDIR}/config/sample.m 수정

          - 파일수정후 Compile필요 : wscfl -i sample.m

 

Jeus JNDI 설정방법

JEUS DataSource & iBatis 를  사용하기 위해서는 총 3개의 설정파일 수정이 필요 합니다.
 
 1. web.xml 수정 
    
     web.xml 파일에 아래와 같은 부분을  추가 하셔야 합니다.
 
    <resource-ref>
        <res-ref-name>jdbc/DefaultDS</res-ref-name> 
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
    </resource-ref>
 
 2. WEB-INF/jeus-web-dd.xml 파일  수정
   
    jeus-web-dd.xml 파일에 아래의 빨간색 부분을 추가해 주십시요.
    .......
        <res-ref>
            <jndi-info>
                <ref-name>jdbc/DefaultDS</ref-name>
                <export-name>jdbc/DefaultDS</export-name> ---> 제우스에 설정된 export-name
            </jndi-info>
         </res-ref>   
    </jeus-web-dd> 
 
3. sqlmap-config.xml 파일 수정
 
 iBatis 설정파일에 아래 내용을 정의해 주시면 됩니다.
    ......

    <transactionManager type="JDBC" >
        <dataSource type ="JNDI">
            <property name="DataSource" value="java:comp/env/jdbc/DefaultDS"/>---> 제우스에 설정된 export-name
        </dataSource>
    </transactionManager>