JEUS
|
|
- 광수 개
- 5 years ago
- Views:
Transcription
1 JEUS Applications & Deployment 안내서 JEUS v7.0 Fix#1 Copyright 2013 TmaxSoft Co., Ltd. All Rights Reserved.
2 Copyright Notice Copyright 2013 TmaxSoft Co., Ltd. All Rights Reserved. 대한민국경기도성남시분당구서현동 우 ) Restricted Rights Legend All TmaxSoft Software (JEUS ) and documents are protected by copyright laws and international convention. TmaxSoft software and documents are made available under the terms of the TmaxSoft License Agreement and may only be used or copied in accordance with the terms of this agreement. No part of this document may be transmitted, copied, deployed, or reproduced in any form or by any means, electronic, mechanical, or optical, without the prior written consent of TmaxSoft Co., Ltd. 이소프트웨어 (JEUS ) 사용설명서의내용과프로그램은저작권법과국제조약에의해서보호받고있습니다. 사용설명서의내용과여기에설명된프로그램은 TmaxSoft Co., Ltd. 와의사용권계약하에서만사용이가능하며, 사용권계약을준수하는경우에만사용또는복제할수있습니다. 이사용설명서의전부또는일부분을 TmaxSoft의사전서면동의없이전자, 기계, 녹음등의수단을사용하여전송, 복제, 배포, 2차적저작물작성등의행위를하여서는안됩니다. Trademarks JEUS is registered trademark of TmaxSoft Co., Ltd. Other products, titles or services may be registered trademarks of their respective companies. JEUS 는 TmaxSoft Co., Ltd. 의등록상표입니다. 기타모든제품들과회사이름은각각해당소유주의상표로서참조용으로만사용됩니다. Open Source Software Notice Some modules or files of this product are subject to the terms of the following licenses. : APACHE2.0, CDDL1.0, EDL1.0, OPEN SYMPHONY SOFTWARE1.1, TRILEAD-SSH2, Bouncy Castle, BSD, MIT, SIL OPEN FONT1.1 Detailed Information related to the license can be found in the following directory : ${INSTALL_PATH}/lib/licenses 본제품의일부파일또는모듈은다음의라이선스를준수합니다. : APACHE2.0, CDDL1.0, EDL1.0, OPEN SYM PHONY SOFTWARE1.1, TRILEAD-SSH2, Bouncy Castle, BSD, MIT, SIL OPEN FONT1.1 관련상세한정보는제품의다음의디렉터리에기재된사항을참고해주십시오. : ${INSTALL_PATH}/lib/licenses 안내서정보안내서제목 : JEUS Applications & Deployment 안내서발행일 : 소프트웨어버전 : JEUS v7.0 Fix#1 안내서버전 : v2.1.2
3 내용목차 안내서에대하여... xi 제1장 도메인환경에서애플리케이션관리 애플리케이션관리 Phase deployment 애플리케이션 ID 애플리케이션상태 애플리케이션관리디렉터리구조 애플리케이션대상 Managed Server(MS) 에서의 Deploy Run-time Deploy Boot-time Deploy 애플리케이션동기화 Auto Redeploy 디렉터리모드의 Deploy 애플리케이션저장소 (Application Repositories) 애플리케이션저장소추가 / 삭제 / 조회 애플리케이션저장소에있는애플리케이션 Deploy path를지정하여 Deploy Staging Mode Deploy 애플리케이션 Undeploy 제2장 Graceful Undeployment와 Redeployment Graceful Undeployment Graceful Redeployment Graceful Redeploy를사용하기위한전제조건 Graceful Redeploy에대한필수고려사항 Graceful Redeploy 사용방법 웹애플리케이션의 Graceful Redeploy EJB 애플리케이션의 Graceful Redeploy EAR 애플리케이션의 Graceful Redeploy 제3장 애플리케이션 모듈과애플리케이션 모듈 애플리케이션 Deployment Descriptor(DD) 애플리케이션에서라이브러리사용 lib/application 디렉터리 공유라이브러리 (Shared Library) 제4장 애플리케이션작성및 Deploy 애플리케이션작성 JEUS iii
4 4.2. Deploy 명령 WebAdmin을사용한애플리케이션제어및모니터링 애플리케이션을도메인에 Install 도메인에서애플리케이션 Uninstall 애플리케이션 Deploy 애플리케이션 Redeploy 애플리케이션 Undeploy 애플리케이션시작 애플리케이션중지 서비스중인애플리케이션에서버추가 서비스중인애플리케이션에서서비스중인서버삭제 애플리케이션정보확인 콘솔툴을이용한애플리케이션제어및모니터링 관련명령어 애플리케이션 Deploy 애플리케이션정보확인 Staging Mode Deploy Deployment plan을이용한 deployment Deployment plan 설정및동작방식 Deployment Plan Install Install한 Deployment Plan 확인 Deployment Plan을적용한 Deploy 애플리케이션에적용된 Deployment Plan 확인 Deployment Plan Uninstall Deployment Plan과 Redeploy 용어해설 색인 iv JEUS Applications & Deployment 안내서
5 그림목차 [ 그림 1.1] 웹모듈이 DISTRIBUTED 상태일때요청을한경우발생하는에러... 4 [ 그림 1.2] 도메인에서의애플리케이션 Lifecycle... 6 [ 그림 1.3] 서버에서의애플리케이션 Lifecycle... 7 [ 그림 1.4] 도메인의 INSTALL_HOME 디렉터리 [ 그림 1.5] 도메인에추가한애플리케이션저장소디렉터리 [ 그림 1.6] 서버에 deploy된 ear 애플리케이션의이미지디렉터리 [ 그림 1.7] 서버에 deploy된 ear 애플리케이션 gen 디렉터리 [ 그림 1.8] 애플리케이션저장소추가 (1) [ 그림 1.9] 애플리케이션저장소추가 (2) [ 그림 1.10] 애플리케이션저장소추가 (3) [ 그림 1.11] 애플리케이션저장소추가 (4) [ 그림 1.12] 애플리케이션저장소추가 (5) [ 그림 1.13] 애플리케이션저장소추가 (6) [ 그림 1.14] 애플리케이션저장소추가 (7) [ 그림 2.1] EAR 애플리케이션의 Graceful Undeploy [ 그림 3.1] Java EE 모듈및애플리케이션구성 [ 그림 3.2].ear archive의구성 [ 그림 4.1] WebAdmin Deployed Applications 화면 [ 그림 4.2] WebAdmin에서애플리케이션 Install (1) [ 그림 4.3] WebAdmin에서애플리케이션 Install (2) [ 그림 4.4] WebAdmin에서애플리케이션 Install (3) [ 그림 4.5] 애플리케이션을도메인에서 Uninstall (1) [ 그림 4.6] 애플리케이션을도메인에서 Uninstall (2) [ 그림 4.7] 애플리케이션을도메인에서 Uninstall (3) [ 그림 4.8] WebAdmin에서애플리케이션 Deploy (1) [ 그림 4.9] WebAdmin에서애플리케이션 Deploy (2) [ 그림 4.10] WebAdmin에서애플리케이션 Deploy (3) [ 그림 4.11] WebAdmin에서애플리케이션저장소에있는애플리케이션 Deploy (1) [ 그림 4.12] WebAdmin에서애플리케이션저장소에있는애플리케이션 Deploy (2) [ 그림 4.13] WebAdmin으로 path를지정하여 Deploy (1) [ 그림 4.14] WebAdmin으로 path를지정하여 Deploy (2) [ 그림 4.15] WebAdmin으로 path를지정하여 Deploy (3) [ 그림 4.16] WebAdmin으로 path를지정하여 Deploy (4) [ 그림 4.17] WebAdmin으로 path를지정하여 Deploy (5) [ 그림 4.18] WebAdmin에서애플리케이션 Redeploy (1) [ 그림 4.19] WebAdmin에서애플리케이션 Redeploy (2) [ 그림 4.20] WebAdmin에서애플리케이션 Redeploy (3) [ 그림 4.21] WebAdmin에서애플리케이션 Undeploy (1) [ 그림 4.22] WebAdmin에서애플리케이션 Undeploy (2) [ 그림 4.23] WebAdmin에서애플리케이션 Undeploy (3) JEUS v
6 [ 그림 4.24] WebAdmin에서애플리케이션 start (1) [ 그림 4.25] WebAdmin에서애플리케이션 start (2) [ 그림 4.26] WebAdmin에서애플리케이션 stop (1) [ 그림 4.27] WebAdmin에서애플리케이션 stop (2) [ 그림 4.28] WebAdmin에서애플리케이션 stop (3) [ 그림 4.29] WebAdmin에서서비스중인애플리케이션에서버추가 (1) [ 그림 4.30] WebAdmin에서서비스중인애플리케이션에서버추가 (2) [ 그림 4.31] WebAdmin에서서비스중인애플리케이션에서버추가 (3) [ 그림 4.32] WebAdmin에서서비스중인애플리케이션에서버추가 (4) [ 그림 4.33] WebAdmin에서서비스중인애플리케이션에서버삭제 (1) [ 그림 4.34] WebAdmin에서서비스중인애플리케이션에서버삭제 (2) [ 그림 4.35] WebAdmin에서서비스중인애플리케이션에서버삭제 (3) [ 그림 4.36] WebAdmin에서서비스중인애플리케이션에서버삭제 (4) [ 그림 4.37] WebAdmin에서서비스중인애플리케이션의 Deploy 정보확인 (1) [ 그림 4.38] WebAdmin에서서비스중인애플리케이션의 Deploy 정보확인 (2) [ 그림 4.39] WebAdmin에서 EAR 애플리케이션구성정보확인 [ 그림 4.40] WebAdmin에서 EJB 모듈정보확인 [ 그림 4.41] WebAdmin에서 EJB 모듈의 Bean 정보확인 [ 그림 4.42] WebAdmin에서 WEB 모듈의서블릿정보확인 [ 그림 4.43] WebAdmin에서 WEB 모듈의서블릿요청스레드정보확인 [ 그림 4.44] WebAdmin - Staging Mode Deploy (1) [ 그림 4.45] WebAdmin - Staging Mode Deploy (2) [ 그림 4.46] WebAdmin - Staging Mode Deploy (3) [ 그림 4.47] Deployment Plan Install (1) [ 그림 4.48] Deployment Plan Install (2) [ 그림 4.49] Deployment Plan Install (3) [ 그림 4.50] Deployment Plan 정보확인 (1) [ 그림 4.51] Deployment Plan 정보확인 (2) [ 그림 4.52] Deployment Plan 정보확인 (3) [ 그림 4.53] Deployment Plan을적용한 Deploy (1) [ 그림 4.54] Deployment Plan을적용한 Deploy (2) [ 그림 4.55] Deployment Plan을적용한 Deploy (3) [ 그림 4.56] 애플리케이션에적용된 Deployment Plan 확인 (1) [ 그림 4.57] 애플리케이션에적용된 Deployment Plan 확인 (2) [ 그림 4.58] Deployment Plan Uninstall (1) [ 그림 4.59] Deployment Plan Uninstall (2) [ 그림 4.60] Deployment Plan Uninstall (3) vi JEUS Applications & Deployment 안내서
7 표목차 [ 표 3.1] 모듈별 DD [ 표 4.1] 애플리케이션관련명령어 JEUS vii
8
9 예목차 [ 예 1.1] EJB 모듈이 DISTRIBUTED 상태일때요청이들어온경우발생하는클라이언트 exception... 3 [ 예 1.2] 클러스터멤버로 deploy를재시도중실패하는경우로그메시지 [ 예 1.3] 클러스터멤버인서버로지정되어있는경우 MS를부팅할때발생하는로그메시지 [ 예 3.1] 공유라이브러리등록 : <<libraries.xml>> [ 예 3.2] 공유라이브러리 <files> 태그 [ 예 4.1] 콘솔툴에서도메인에 install한애플리케이션 Deploy [ 예 4.2] 콘솔툴에서애플리케이션저장소에있는애플리케이션 Deploy [ 예 4.3] 콘솔툴에서 path를지정하여 Deploy [ 예 4.4] 콘솔툴에서애플리케이션정보확인 [ 예 4.5] 콘솔툴에서 Staging Mode Deploy JEUS ix
10
11 안내서에대하여 안내서의대상 본안내서는 JEUS 제품군에포함된 JEUS 서버에 Java EE 애플리케이션또는 Java EE 모듈을 Deploy 하 고관리하는관리자또는애플리케이션개발자를대상으로한다. 안내서의전제조건 본안내서를원활하게이해하기위해서는다음과같은사항을미리알고있어야한다. JEUS 서버를동작시키기위한배경지식 JEUS 소개 JEUS Server 안내서 JEUS 설치및시작하기 안내서의제한조건 본안내서에서는 Java EE 나 JMX 기술에대한기본적인내용은다루지않는다. 따라서해당내용은 Java 관련문서를참고한다. 안내서에대하여 xi
12 안내서구성 본안내서는 JEUS 도메인에서애플리케이션이어떻게관리되는지살펴보고, Java EE 애플리케이션과모듈에대한간략한설명및이를생성하는방법과이렇게생성된 Java EE 애플리케이션과모듈들을 JEUS 서버에 Deployment할때필요한내용들을차례로설명한다. 본안내서는총 4개의장으로구성되어있다. 제1장도메인환경에서애플리케이션관리 도메인환경에서애플리케이션관리에대해설명한다. 제2장 Graceful Undeployment와 Redeployment Graceful undeploy와 redeploy에대해설명한다. 제3장애플리케이션 모듈과애플리케이션, 공유라이브러리 (Shared library) 에대해설명한다. 제4장애플리케이션작성및 Deploy Java EE 애플리케이션파일 (EAR) 을작성하고이를 JEUS에 deploy하는방법에대해설명한다. xii JEUS Applications & Deployment 안내서
13 안내서규약 표기 <<AaBbCc123>> <Ctrl>+C [Button] 진하게 " "( 따옴표 ) ' 입력항목 ' 하이퍼링크 > 참고주의 [ 그림 1.1] [ 표 1.1] AaBbCc123 의미프로그램소스코드의파일명 Ctrl과 C를동시에누름 GUI의버튼또는메뉴이름강조다른관련안내서또는안내서내의다른장및절언급화면 UI에서입력항목에대한설명메일계정, 웹사이트메뉴의진행순서하위디렉터리또는파일있음하위디렉터리또는파일없음참고또는주의사항주의할사항그림이름표이름 Java 코드, XML 문서 [ command argument ] < xyz > 옵션파라미터 < 와 > 사이의내용이실제값으로변경됨선택사항. 예 ) A B: A나 B 중하나파라미터등이반복되어서나옴 안내서에대하여 xiii
14 시스템사용환경 본안내서의모든예제와환경구성은 UNIX의스타일에준하여작성되어 Microsoft Windows ( 이하 Windows) 와같이다른환경에서작업하는경우몇가지사항을고려해야한다. 예를들어경로구분자의경우 UNIX 스타일인 / 를 Windows 스타일인 \ 로바꿔서사용한다. 또한환경변수도 Windows 스타일로변경해서사용하면된다. 문서의내용은 Java 표준을고려해서작성했기때문에대부분의내용은동일하게적용된다.. 관련안내서 안내서 JEUS 소개 JEUS 설치및시작하기 JEUS Server 안내서 JEUS Security 안내서 JEUS Application Client 안내서 JEUS Web Engine 안내서 JEUS EJB 안내서 JEUS Reference Book 설명 JEUS 7 서버에대한전반적인소개와 JEUS의아키텍처를포함하여각구성요소들에대해설명한안내서이다. JEUS에대한소개와설치및시작방법에대해기술한안내서이다. JEUS 서버에대한설명과시스템관리를위한방법을기술한안내서이다. JEUS에서 Security 시스템의설정및운용방법과 Security 관련프로그래밍에대해기술한안내서이다. Java EE 클라이언트와 JEUS 사이의상호운용에대해기술한안내서이다. JEUS 웹엔진의관리에대해내용과 Java EE WAR Archive, 서블릿 /JSP의관리및 Deploy하는방법에대해기술한안내서이다. JEUS EJB 엔진과 EJB 모듈의 Deploy에대해기술한안내서이다. JEUS를사용할때도움이되는 Reference를기술한안내서이다. xiv JEUS Applications & Deployment 안내서
15 연락처 Korea TmaxSoft Co., Ltd 272-6, Seohyeon-dong, Bundang-gu, Seongnam-si, Gyeonggi-do, South Korea Tel: Fax: Web (Korean): 기술지원 : USA TmaxSoft, Inc. 560 Sylvan Avenue Englewood Cliffs, NJ U.S.A Tel: Fax: info@tmaxsoft.com Web (English): Japan TmaxSoft Japan Co., Ltd. 5F Sanko Bldg, Mita, Minato-Ku, Tokyo, Japan Tel: Fax: info@tmaxsoft.co.jp Web (Japanese): 안내서에대하여 xv
16 China TmaxSoft China Co., Ltd. Beijing Silver Tower, RM 1508, 2# North Rd Dong San Huan, Chaoyang District, Beijing, China, China Tel: ~8 Fax: Web (Chinese): xvi JEUS Applications & Deployment 안내서
17 제 1 장도메인환경에서애플리케이션관리 본장에서는도메인환경에서애플리케이션이어떻게관리되고, Deploy 작업은어떻게진행되는지설명 한다. 또한 Managed Server( 이하 MS) 에서는 Deploy 작업이어떻게진행되는지에대해서설명한다 애플리케이션관리 Domain Administration Server( 이하 DAS) 는도메인을관리하는서버이다. 애플리케이션은도메인단위로관리되어야하기때문에 DAS에서는도메인에존재하는모든애플리케이션을관리한다. 애플리케이션에관련된 deploy 명령과조회명령은모두 DAS를통해서만가능하다. DAS를기동할때애플리케이션을관리하는서비스가시작되고이서비스를통해서버나클러스터에 deploy할수있다. deploy 뿐만아니라애플리케이션과관련된모든명령이 DAS를통해서만동작가능하다. DAS에장애가발생해서 MS가 INDEPENDENT 상태가된경우에는애플리케이션에 deploy하는명령은사용할수없다. 단, 콘솔툴 (jeusadmin) 을통해해당 MS에연결하여애플리케이션정보를확인하는조회명령은사용가능하다. 주의 MS로직접연결하여애플리케이션정보를조회하는것은 MS가 INDEPENDENT 상태일때만가능하다. MS가 INDEPENDENT 상태인것은 DAS로접속할수없거나 DAS에서 MS를관리할수없는상황이기때문에 MS로직접연결하여애플리케이션의정보를확인한다. 애플리케이션을서비스할수있도록 deploy하기위해서는먼저애플리케이션을도메인에 install시켜야한다. 애플리케이션을 install하는것은 DAS에애플리케이션파일을설치하는작업이고, deploy하는것은애플리케이션을서비스할수있도록만드는작업이다. install 애플리케이션파일을 DAS로업로드하는동작을의미한다. DAS에 install된애플리케이션만이 deploy 가가능하다. 애플리케이션이 DAS에 install되었다는것은다음과같은의미를갖는다. WebAdmin이나콘솔툴을통해애플리케이션파일을도메인의 APPLICATION_INSTALL_HOME에위치시키는것을의미한다. APPLICATION_INSTALL_HOME은도메인에 install된애플리케이션을관리하는저장소이다. 이저장소는변경될수없고수동으로접근해서도안된다. install된애플리케이션을삭제하거나새로운애플리케이션을수동으로추가해도동적으로반영되지않는다. DAS를재부팅한경우에는반영이되겠지만이는절대권장하는방법이아니다. 사용자가지정한디렉터리에애플리케이션을수동으로위치시키는것을의미한다. 제 1 장도메인환경에서애플리케이션관리 1
18 사용자가지정한디렉터리는애플리케이션이저장되는위치 ( 특정디렉터리 ) 를의미한다. 사용자는이디렉터리를애플리케이션저장소 (repository) 로추가하고여기에애플리케이션파일을수동으로위치시킬수있다. WebAdmin과콘솔툴의 add-application-repository, remove-applicationrepository 명령을통해도메인에애플리케이션저장소를추가, 삭제하는것이가능하다. deploy 애플리케이션이서비스될수있도록서버에애플리케이션을배포하고서비스준비작업을수행한다. 사용자가 WebAdmin이나콘솔툴을통해애플리케이션을 deploy하겠다는명령을 DAS로보내면, DAS 에서는대상 (target) 이되는서버나클러스터로 Deploy 작업을진행한다. 이때 DAS와서버에서는 2 Phase Deploy를진행한다. 2 Phase Deploy에대한자세한설명은 Phase deployment 를참고한다 Phase deployment 애플리케이션파일을각서버로배포하고애플리케이션서비스를위한사전작업을진행한다. 이작업이성공한후에애플리케이션을서비스할수있는상태로만든다. 이작업과정을 DAS에서는 2단계로나누어서처리한다. 모든 deploy 명령은 DAS를통하고 DAS에서는대상이되는서버로다시명령을내린다. 사용자가 Deploy 요청을할때대상으로설정한모든서버에대한 Deploy 성공을보장할수있어야사용자가내린 Deploy 명령이성공했다고볼수있다. 따라서애플리케이션을 Distribute, Start 두단계로나누어서진행하고 1단계에서실패하면 Deploy 명령은실패한것이고모든서버에서 undeploy된다. 1단계가성공하게되면애플리케이션에대한 Distribute 작업과검증작업이성공한것이기때문에잠재적으로 Deploy가성공한상태라고볼수있다. 하지만애플리케이션이서비스될수있는상태는아니다. 2단계가성공해야애플리케이션이서비스될수있는상태가된다. 2단계에서는실패한서버가있더라도재시도해서애플리케이션이해당서버에서서비스될수있는상태가될수있도록보장해준다. 이러한두단계를하나의 deploy 명령이아닌각각 distribute 명령, start 명령으로나누어서수행할수도있다. 1 단계 (Distribute 단계 ) 대상이되는서버나클러스터로애플리케이션을 distribute하고검증한다. 이단계를 JEUS에서는애플리케이션 Distribute 단계라고한다. 이단계에서는애플리케이션파일을각서버에배포하고, 애플리케이션이서비스될수있도록사전준비작업과검증작업을수행한다. 실제 Distribute 단계의작업이모두성공하면서비스를하기위한모든작업은끝난상태이다. EJB 모듈의경우는서비스포트가열리고웹모듈의경우는웹리스너와웹모듈의컨텍스트가연결된다. 하지만애플리케이션의상태는서비스될수없는 DISTRIBUTED 상태이다. 애플리케이션이 DISTRIBUTED 상태일때애플리케이션에서비스를요청하면웹모듈의경우는 "503 Service Unavailable" 이발생하고, EJB 모듈의경우는 "Bean이존재하지않는다 " 는 exception이발생한다. 2 JEUS Applications & Deployment 안내서
19 [ 예 1.1] EJB 모듈이 DISTRIBUTED 상태일때요청이들어온경우발생하는클라이언트 exception [ :28:35][1] [t-1] [JNDI.Context-0073] exception occurred during JNDI operation << Exception >> javax.naming.namingexception: javax.ejb.ejbexception: java.rmi.remoteexception: EJB object is not read at jeus.ejb.client.businessobjectfactory.getobjectinstance(businessobjectfactory. java:89) at javax.naming.spi.namingmanager.getobjectinstance(namingmanager.java:304) at jeus.jndi.jnscontext.lookupinternal(jnscontext.java:594) at jeus.jndi.jnscontext.lookup(jnscontext.java:549) at jeus.jndi.jnscontext.lookup(jnscontext.java:538) at jeus.jndi.jeusfailovercontext.lookup(jeusfailovercontext.java:314) at javax.naming.initialcontext.lookup(initialcontext.java:392) at test.hellotest.testhellobean(hellotest.java:29)... Caused by: java.rmi.remoteexception: EJB object is not ready at jeus.ejb.container.remoteinvocationmanagerimpl.beforeinvoke(remoteinvocationmanagerimpl. java:72 at jeus.ejb.baseimpl.remoteinvokerserver.preinvoke(remoteinvokerserver.java:118) at jeus.ejb.baseimpl.remoteinvokerserver.invoke(remoteinvokerserver.java:97) at sun.reflect.nativemethodaccessorimpl.invoke0(native Method) at sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:39) at sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl. java:25) at java.lang.reflect.method.invoke(method.java:597) at sun.rmi.server.unicastserverref.dispatch(unicastserverref.java:305) at sun.rmi.transport.transport$1.run(transport.java:159) at java.security.accesscontroller.doprivileged(native Method) at sun.rmi.transport.transport.servicecall(transport.java:155) at sun.rmi.transport.tcp.tcptransport.handlemessages(tcptransport.java:535) at sun.rmi.transport.tcp.tcptransport$connectionhandler.run0(tcptransport. java:790) at sun.rmi.transport.tcp.tcptransport$connectionhandler.run(tcptransport.java:649) at java.util.concurrent.threadpoolexecutor$worker.runtask(threadpoolexecutor. java:886) at java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:908) at java.lang.thread.run(thread.java:662) 제 1 장도메인환경에서애플리케이션관리 3
20 [ 그림 1.1] 웹모듈이 DISTRIBUTED 상태일때요청을한경우발생하는에러 사용자가 Deploy 대상으로설정한모든서버와클러스터로 Distribute 작업이성공해야전체성공이될수있다. 하나라도실패한서버가있다면사용자가내린 deploy 명령은실패하고성공한서버에는 undeploy 명령이보내지면서이단계에서했던작업을모두 rollback한다. deploy 대상으로설정한서버중일부서버가 fail 또는 shutdown된상태라면이또한 Deploy 실패이다. 이경우사용자가 Deploy 대상에서해당서버를제외하고 deploy 명령을다시시도해야한다. Deploy 대상이클러스터라면클러스터멤버중일부서버가 fail 또는 shutdown된상태이더라도 Distribute 는성공할수있다. 이런서버들을제외한다른모든서버에서 Distribute 작업이성공한다면이애플리케이션은 Distribute 성공이다. 2 단계 (Start 단계 ) 대상이되는서버나클러스터에는이미애플리케이션이 distribute된상태일때애플리케이션이서비스될수있도록 start시켜준다. 이단계에서는애플리케이션을서비스될수있는상태로만들어주는간단한작업을수행한다. 이단계를 JEUS에서는애플리케이션 Start 단계라고한다. Start 단계에서는 Distribute 단계에서와는다르게대상이되는서버나클러스터중에서하나의서버에서라도 Start 작업이성공하면전체성공으로간주한다. Distribute 작업을마치면서이미애플리케이션의검증작업이완료되었고, 이미애플리케이션을서비스할수있는모든준비가갖춰진것이기때문이다. Start 작업이실패했다는것은서버가잠시장애상태라고추정할수있다. 이는서버가정상화되면 Start 작업이성공해서애플리케이션을서비스할수있다는것을의미이기도하다. Start 작업에실패한서버는 DAS에서별도의 Thread로 5초간격으로 10번재시도한다. 재시도도실패하면서버가복구되지않은것이므로수동으로서버를복구해야한다. 서버가복구된후에애플리케이션에대해 start 명령을다시수행하면애플리케이션 Start 작업을실패했던서버에서 start 명령이정상적으로수행된다 애플리케이션 ID JEUS 7에서부터는도메인에서애플리케이션을관리하기위해애플리케이션을식별할수있는 ID를애플리케이션마다발급하여사용하고있다. 애플리케이션 ID는도메인에서애플리케이션을관리하기위해필요한이름이다. 또한애플리케이션을구별할수있는식별자이기때문에도메인에서유일해야한다. 4 JEUS Applications & Deployment 안내서
21 애플리케이션을 install할때 ID를설정할수있다. install 명령을수행할때애플리케이션에 ID를설정하지않은경우에는애플리케이션파일이름으로 ID를만들어서사용한다. 예를들어 examples.ear을 install할때 ID를설정하지않았다면애플리케이션 ID는 'examples_ear' 이된다. ID로는알파벳이나숫자를사용할것을권장한다. 애플리케이션 ID는 deploy/undeploy 등애플리케이션제어명령이나조회명령을할때설정해야한다. 도메인인데별도의저장소 (repository) 를설정하고해당위치에애플리케이션파일을위치시킨경우는애플리케이션파일이름을그대로 ID로사용한다. DAS에서애플리케이션파일을전송받으면도메인디렉터리하위에존재하는애플리케이션 IN STALL_HOME에 ID로디렉터리를생성하고그하위에애플리케이션파일을위치시킨다. 애플리케이션을 install하면다음의디렉터리가생성된다. INSTALL_HOME 디렉터리에대한자세한설명은절 도메인 INSTALL_HOME 디렉터리 를참고한다. INSTALL_HOME/<APPLICATION_ID>/<APPLICATION_FILE> 서버에서도애플리케이션파일을전송받을때나압축을풀때 DEPLOYED 디렉터리하위에 APPLICA TION_ID 를최상위디렉터리로두고그하위에파일을위치시키고압축을푼다. 주의 application name은 Java EE 6부터표준 DD에정의할수있으며, 애플리케이션서비스를위해서반드시필요한이름이다. 이값을애플리케이션 ID와혼동하면안된다. application name은애플리케이션이서비스되고있는서버에서만유일하면되지만애플리케이션 ID 는도메인에서유일해야한다. application name을설정하지않은경우확장자를제외한애플리케이션파일이름이 application name이된다. application name 설정방법에대한자세한내용은 "Java EE 6 Platform Specification" 을참고한다 애플리케이션상태 도메인에서애플리케이션에대한명령을주관하기때문에도메인에서의애플리케이션상태는 target 서버전체를총괄하는상태를나타낸다. 서버에서는실제애플리케이션을 deploy하고서비스하는주체이기때문에애플리케이션이어떤상태인지를나타낸다. 도메인에서의애플리케이션상태 다음은도메인에서의애플리케이션 Lifecycle을보여주는그림이다. DAS에서의애플리케이션상태는다음의과정으로진행된다. INSTALLED DISTRIBUTING DISTRIBUTED STARTING RUNNING 제 1 장도메인환경에서애플리케이션관리 5
22 [ 그림 1.2] 도메인에서의애플리케이션 Lifecycle 다음은각상태에대한자세한설명이다. 상태 INSTALLED DISTRIBUTED RUNNING 설명애플리케이션파일이도메인으로 upload된상태를의미한다. 이상태에서 Deploy 대상을지정해서 deploy나 distribute 명령을수행할수있다. 애플리케이션이 Distribute를성공적으로완료한상태를의미한다. 이때대상서버들이모두 SHUTDOWN 상태이더라도 DISTRIBUTED 상태로나타난다. 애플리케이션이서비스되고있는상태를의미한다. 애플리케이션에 Deploy 대상으로설정한서버들중한서버에서라도 RUNNING 상태로서비스되고있으면도메인에서이애플리케이션의상태는 RUNNING이된다. 6 JEUS Applications & Deployment 안내서
23 참고도메인에서는위의세가지상태외에 DEPLOYED라는상태가존재한다. DEPLOYED 상태란 deploy된이력이있는애플리케이션의대상서버가모두 RUNNING 상태가아닐때도메인에서는이애플리케이션의상태를 DEPLOYED로나타난다. 대상서버들이 running되지않았다는것은애플리케이션을서비스하고있는서버들이없다는의미이므로 RUNNING으로표현하지않고 DEPLOYED라는상태로나타낸다. 서버에서의애플리케이션상태 다음은서버에서의애플리케이션 Lifecycle을보여주는그림이다. 서버에서의애플리케이션상태는다음의과정으로진행된다. DISTRIBUTING DISTRIBUTED STARTING RUNNING [ 그림 1.3] 서버에서의애플리케이션 Lifecycle 다음은각상태에대한설명이다. 상태 DISTRIBUTED 설명 DAS로부터온 distribute 명령이성공한상태를의미한다. 애플리케이션은이미서비스될준비를마쳤고 start 명령을통해애플리케이션을서비스가능한상태로만들수있다. 제 1 장도메인환경에서애플리케이션관리 7
24 상태 RUNNING 설명 애플리케이션이해당서버에서서비스되고있는상태를의미한다 애플리케이션관리디렉터리구조 애플리케이션을 deploy 할때사용되는디렉터리구조는다음과같다. 도메인 INSTALL_HOME 디렉터리 애플리케이션이도메인에 install 되면 APPLICATION_INSTALL_HOME 에위치하게된다. [ 그림 1.4] 도메인의 INSTALL_HOME 디렉터리 APPLICATION_INSTALL_HOME application id J application file (.jar,.war,.ear,.rar) APPLICATION_INSTALL_HOME DAS가존재하는머신에만생성되는디렉터리이다. 애플리케이션을도메인에 install하면이디렉터리에저장된다. install할때설정한애플리케이션 ID로디렉터리를생성하고그하위에실제애플리케이션파일을위치시킨다. JEUS에서는이디렉터리를 APPLICATION_INSTALL_HOME이라고하고이를줄여서 INSTALL_HOME이라고한다. APPLICATION_INSTALL_HOME은 DOMAIN_HOME/.ap plications를의미한다. 도메인에서관리하는애플리케이션저장소 도메인에추가한애플리케이션저장소 (repository) 는다음과같은구조로구성한다. [ 그림 1.5] 도메인에추가한애플리케이션저장소디렉터리 application repository application file (exploded module) J application file (.jar,.war,.ear,.rar) 애플리케이션저장소에는디렉터리형태의애플리케이션과 Archive 형태의애플리케이션이모두저장된다. 이경우애플리케이션 ID는사용자가부여할수없고항상파일이름을사용하게된다. 사용자는애플리케이션저장소를추가하고삭제할수있다. 추가및삭제방법에대해서는 애플리케이션저장소추가 / 삭제 / 조회 를참고한다. 8 JEUS Applications & Deployment 안내서
25 Deploy 이미지디렉터리 서버에애플리케이션을 deploy할때 DAS로부터애플리케이션을전송받아서다음의경로에위치시킨다. SERVER_HOME/.workspace/deployed 이위치를 DEPLOYED_HOME이라고한다. DEPLOYED_HOME에애플리케이션 ID로디렉터리를생성하고전송받은애플리케이션파일을하위에위치시킨다. 또한 Deploy를진행하면서 archive된애플리케이션의경우파일의압축을푼다. 이를애플리케이션의 Deploy 이미지디렉터리라고한다. 애플리케이션의압축을푸는디렉터리는애플리케이션파일이름을변경해서사용한다. myapp.ear의경우압축을푸는이미지디렉터리는 'myapp_ear ' 이된다. ear 애플리케이션일경우는 ear 이미지디렉터리하위에모듈의압축을푼다. 모듈의압축을푸는디렉터리이름은 ear의압축을푼디렉터리를생성한규칙과동일하게 ejb.jar인경우는 'ejb_jar' 가된다. [ 그림 1.6] 서버에 deploy 된 ear 애플리케이션의이미지디렉터리 DEPLOYED_HOME _generated_ myapp myapp_ear appclient_jar ejb_jar lib META-INF web_war J appclient.jar J ejb.jar J web.war 제 1 장도메인환경에서애플리케이션관리 9
26 애플리케이션의 gen 디렉터리 애플리케이션이서버에 deploy되면서서비스에필요한파일들을생성하는경우가있다. EJB 애플리케이션과웹애플리케이션의경우파일생성이필요하다. 이파일들을 DEPLOYED_HOME에 '_generated_' 라는디렉터리하위에생성한다. '_generated_' 디렉터리하위에애플리케이션 ID로디렉터리를생성하여각애플리케이션마다개별적인 generated 디렉터리를갖게된다. 이디렉터리를애플리케이션의 gen 디렉터리라고한다. [ 그림 1.7] 서버에 deploy 된 ear 애플리케이션 gen 디렉터리 DEPLOYED_HOME _generated_ myapp ejb_jar classes web_war embedded_ejb jspwork ws classes T _appdat.ser 각애플리케이션의 gen 디렉터리에는다음와같은파일이생성된다. EJB의경우는 EJB 2.x 형태의 Bean을 Dynamic Proxy 방식이아닌 Stub 방식으로사용할때 Stub 파일과 Skel 파일을생성한다. 웹의경우는 JSP를 Java로 generate한파일과 embedable EJB(Java EE 6에서웹애플리케이션안에내장된 EJB 모듈을지원한다. 이를 embedable EJB라고한다 ) 를위한 stub 파일을생성한다. '_appdat.ser' 은애플리케이션의 Deploy 시간을저장한 serializable 파일이다. 이파일의용도는서버를 shutdown했다가재부팅할경우애플리케이션이변경되지않았으면 Deploy 이미지파일과 generate한파일을재생성하지않도록해서부팅속도를빠르게하기위한것이다. 10 JEUS Applications & Deployment 안내서
27 애플리케이션대상 Deploy를할때는어떤서버에서서비스할것인지를대상 (target) 을명확히해야한다. Deploy 대상이될수있는것은서버와클러스터이다. 웹모듈의경우특정호스트로만서비스하려면추가적으로가상호스트를설정하여 deploy할수있다. 서버 서버는애플리케이션을서비스하는최소단위이기때문에 Deploy의대상이될수있다. 여러서버를대상으로 deploy 명령을한경우지정한서버중하나이상의서버에서 Deploy에실패하거나하나이상의서버가다운되어있는경우 Distribute 단계에서실패한다. 이경우 Deploy에실패한서버에성공할수있도록적절한조치를취한후다시 deploy 명령을수행해야한다. 또는실패한서버를 Deploy 대상에서제외하고다시 deploy 명령을수행하면 Deploy는성공할것이다. 만약서버가 STANDBY 상태이거나 SUSPENDED 상태라면사용자가이서버를대상으로 deploy 명령을해도서버가서비스될수없는상태이기때문에애플리케이션을 start하지않는다. Distribute 작업까지만진행하고서버가다시 start 또는 resume되어서서비스할수있는 RUNNING 상태가되었을때해당애플리케이션을 start한다. 서버상태에대한자세한설명은 JEUS Server 안내서 의 Managed Server의 Lifecycle 을참고한다. 사용자가서버에 deploy 명령이아닌 distribute 명령만수행한경우에애플리케이션은서비스되지않는다. 서버가재부팅된경우에도이상태는유지되어야한다. 따라서 DAS에서는애플리케이션의상태를 IN STALL_HOME 하위에 ".deployinfo.ser" 라는파일에기록했다가서버가부팅할때애플리케이션에대한상태를알려주어서사용자가이전에한작업을계속유지할수있도록해준다. 주의사용자가설정파일을수동으로수정한경우라면이상태가유지되지않을수도있다. JEUS 7부터는설정파일을수동으로수정하지않고 WebAdmin이나콘솔툴을사용할것을권장한다. 클러스터 클러스터에속한서버에는서버를대상으로 deploy할수없고오직클러스터만대상으로 deploy할수있다. 클러스터를대상으로 deploy한경우클러스터멤버에속한서버중하나의서버에서라도 Distribute가실패하면클러스터 deploy는실패한다. 하지만서버리스트를대상으로설정하고 deploy하는경우와는달리, 클러스터를대상으로 deploy하는경우는클러스터멤버중일부서버가 alive 상태가아니더라도 Deploy에성공할수있다. 클러스터멤버중 alive 서버모두에 deploy를성공하면클러스터 deploy는성공한다. 제 1 장도메인환경에서애플리케이션관리 11
28 참고클러스터는단순싱글서버의리스트를의미하는것이아니고서비스를수행하는하나의그룹을의미한다. 클러스터멤버중 alive 서버에 Deploy를성공하면 alive 상태가아닌서버에도 Deploy가성공할가능성이매우높아진다. 클러스터를 deploy할경우 alive 상태가아닌다른멤버들은정상화되거나재기동될때또는새로운멤버가클러스터에추가되어서부팅될때이미클러스터 deploy되어있는애플리케이션을 deploy해야한다. 만약클러스터멤버가 Boot-time Deploy에실패한다면 DAS 는실패한멤버들에애플리케이션이정상적으로 deploy될수있도록보장해주어야한다. Deploy를수행할때 fail되었거나 RUNNING 상태가아닌서버의경우도 failback되거나재기동되었을때해당애플리케이션은 deploy되어야한다. 만약서버가 Boot-time Deploy를실패한다면 Deploy 성공을보장해주기위해노력하는것은 DAS의역할이다. DAS에서는재시도를통해 Boot-time Deploy에실패한클러스터멤버에대해서도최대한보장해줄수있도록하고있다. 5분간격으로 5번의재시도를하고, 이것이모두실패하면 JEUS에서복구할수있는오류가아니기때문에사용자가원인을찾아해결할수있도록 DAS에서는더이상 Deploy를보장해줄수없다는것을알려준다. Deploy할때 RUNNING 상태가아니었던서버뿐만아니라클러스터에동적으로추가된서버도마찬가지로 Boot-time Deploy를실패한경우 DAS에서위와같은방법으로 Deploy를보장해주고있다. DAS에서클러스터멤버로의정해진 Deploy 재시도작업이모두실패한경우다음과같은메시지를출력해서서버에서에러를직접해결할수있도록알려준다. [ 예 1.2] 클러스터멤버로 deploy를재시도중실패하는경우로그메시지 failed to retry deploy application[examples] 5 times. no more retry, so you should solve the problem for deploy application. 클러스터멤버인데애플리케이션대상이서버로되어있는경우는 deploy하지않는다. 사용자에게해당애플리케이션을 undeploy나 remove-application-target 명령을수행할수있도록다음과같은 WARNING 메시지만출력한다. [ 예 1.3] 클러스터멤버인서버로지정되어있는경우 MS를부팅할때발생하는로그메시지 WARNING : server[server1] is consist of cluster[cluster1]. so this application[examples] could be deployed to cluster. you should undeploy to this application and deploy again to cluster target. deploy 명령으로이런문제는발생할수없다. 클러스터멤버인서버를별개의서버 target으로 deploy를시도하는경우에는 deploy 명령이수행되지않는다. 이런문제가발생할수있는경우는 xml을수동으로수정한경우이다. 이는 JEUS에서금지하고있는사항이기때문에전적으로사용자의잘못으로간주한다. JEUS에서는이로인해발생하는오류들에대해서는책임지지않는다. 서비스되고있는독립된서버를클러스터멤버로동적추가한경우는서버에서이미서비스되고있는애 플리케이션을 undeploy 하고애플리케이션대상에서도이서버를삭제한다. 또한클러스터를대상으로 12 JEUS Applications & Deployment 안내서
29 deploy해야하는애플리케이션들도동적으로 deploy시켜주고있다. 이미서버를대상으로 deploy되어서서비스하고있는애플리케이션이기는하지만클러스터에추가하고새로운서비스를하겠다는사용자의의도이기때문에애플리케이션을 undeploy하고새로운애플리케이션을 deploy해도무방하다. 클러스터에동적으로새로운멤버를추가하는것이가능하기때문에애플리케이션에대한처리도자동으로해주고있다. 하지만이렇게 single 서버와클러스터를이미별도로구성해서서비스하다가싱글서버를클러스터의멤버로동적추가하는경우는자주사용하지않고, 사용자의도이긴하나서버에서이미진행중인서비스에문제가될수도있다. 따라서클러스터를확장하는경우에는새로운서버를추가하고이서버를클러스터의멤버로추가하는것을권장한다. 가상호스트 (Virtual Host) 웹엔진에서는가상호스트를이용해웹컨텍스트를특정호스트에서서비스할수있도록하고있다. 가상호스트는단독으로지정할수없고대상이되는서버또는대상이되는클러스터와함께지정할수있다. 대상이되는가상호스트없이 deploy할경우에는기본가상호스트에 deploy된다. 가상호스트에대한자세한내용은 JEUS Web Engine 안내서 의 제5장가상호스트 를참고한다. deploy 명령에자세한설명은 4.3. WebAdmin을사용한애플리케이션제어및모니터링 과 4.4. 콘솔툴을이용한애플리케이션제어및모니터링 을참고한다 Managed Server(MS) 에서의 Deploy 본절에서는 MS 에서애플리케이션또는모듈을 deploy 하는방법에대해서설명한다 Run-time Deploy Run-time Deploy는서버가기동되어있는상태에서애플리케이션또는모듈을 deploy하는것이다. JEUS 의툴인 WebAdmin과콘솔툴을이용해서 DAS에접속하여 Run-time Deploy를할수있다. JEUS 7에서는 Run-time Deploy를수행하면영구 Deploy가된다. 영구 Deploy는 deploy나 distribute 명령을통해애플리케이션이 Distribute에성공하면 domain.xml에그내용이저장되면서 DAS나 MS가재부팅해도해당애플리케이션의 Deploy 정보를설정파일에서읽어 Boot-time Deploy될수있도록애플리케이션정보를유지해주는것을의미한다. Deploy는 DAS를통해서만가능하기때문에 domain.xml에애플리케이션정보를쓰는주체도오로지 DAS 뿐이다. MS에서는 Boot-time에 DAS로부터설정을받고해당설정에등록된애플리케이션파일을다운로드받아 XML 파일의정보를바탕으로 Boot-time Deploy를진행할수있다. Run-time Deploy의명령방법에대한자세한내용은 4.3. WebAdmin을사용한애플리케이션제어및모니터링 과 4.4. 콘솔툴을이용한애플리케이션제어및모니터링 을참고한다. 제 1 장도메인환경에서애플리케이션관리 13
30 Boot-time Deploy Boot-time Deploy는 MS가부팅할때 domain.xml에등록된애플리케이션을 deploy하는것을의미한다. JEUS 7부터는영구 Deploy를기본으로하면서최초 deploy 명령이이전에한번 deploy된이력이있는애플리케이션들은서버가부팅할때 deploy된다. DEPENDENT 상태에서의 Boot-time Deploy MS는부팅할때 DAS로부터 domain.xml을전송받아온다. 이설정파일에등록된애플리케이션이있으면애플리케이션의대상을보고자신의서버에 deploy해야할애플리케이션인지를판단하여 Deploy를진행한다. 이때각애플리케이션마다 Deploy 작업을진행하는것이아니라모든애플리케이션에대한 Distribute 작업을먼저진행하고, 모든애플리케이션의 Distribute가성공한경우에애플리케이션 Start 작업을진행한다. 참고서버가클러스터에속한멤버인데애플리케이션이서버 target으로명시되어있는경우해당 Boottime에애플리케이션은 deploy되지않는다. Deploy의대상은클러스터에속한서버가될수없다. 클러스터에속한서버는오직클러스터단위로만 Deploy가가능하다. JEUS 툴을통해 Deploy를수행한것이라면이는보장된다. 하지만수동으로 XML 파일을수정한경우에는 JEUS에서이를보장해줄수없으니 XML 파일을수동으로수정하여사용하지않도록한다. Boot-time에서버에서진행하는 Distribute 작업은 Run-time에서버에서진행하는 Distribute 작업과크게다르지않다. 먼저애플리케이션파일을 DAS로부터전송받는다. 만약서버에서이전에전송받아놓은파일이존재한다면서버에캐시된애플리케이션파일과 DAS에 install된애플리케이션파일의시간을비교하여파일전송여부를결정한다. 그후에애플리케이션파일의압축을풀고클래스를로딩하고애플리케이션이서비스될수있는환경을구성하는 Distribute 작업을진행한다. 서버를부팅할때하나의애플리케이션이라도 Distribute에실패하면서버의상태는 STANDBY 상태가되고그시점에서부팅이멈추게된다. 이상황에서 start-server 명령을수행하면 Distribute에실패한애플리케이션들을다시 Distribute하고 Boot-time과마찬가지로모든애플리케이션이 Distribute에성공해야다음작업인애플리케이션 Start 작업이진행된다. 이때도 Distribute 작업에실패한애플리케이션이있다면서버는또다시 STANDBY 상태에머무르게된다. 전체애플리케이션에대한 Distribute 작업이성공하지않았음에도서버를 RUNNING 상태로만들어서비스하려면다음의명령을수행한다. [DAS]domain1.adminServer>start-server -force server1 start-server 명령에 -force 옵션을주고수행하면현재 Distribute 작업이성공한애플리케이션에대해서만 Start 작업을수행하고서버를서비스가능한상태로만들수있다. 이때서버의상태는 RUNNING이된다. Boot-time Deploy할때 distribute가완료된시점에서 MS는 DAS로부터해당애플리케이션이 start를수행할수있는상태인지를확인한다. 14 JEUS Applications & Deployment 안내서
31 DAS에서의애플리케이션상태가 DEPLOYED, RUNNING 상태인애플리케이션에대해서만 Start 작업을수행할수있다. 만약 DAS로부터애플리케이션의상태를얻어오는작업이실패했다면서버는애플리케이션 Start 작업을진행하지않는다. 이때서버는부팅을중단하고 STADNBY 상태에머무르게된다. DAS에서의애플리케이션상태에상관없이애플리케이션을 start하여서비스가가능하려면, Distribute에실패한애플리케이션이있을때와마찬가지로 start-server 명령에 -force 옵션을주고수행하여서버를 RUNNING 상태로만들어서비스가능하도록할수있다. 참고 DAS에서 DISTRIBUTED 상태인애플리케이션은서버에서도 Distribute 작업까지만진행할수있게하기위해서 DAS에서는별도의파일에이정보를기록하여 DAS가다운되었다가부팅된상황에서도애플리케이션상태를유지해줄수있도록하고있다. 서버가 SUSPENDED 상태에서애플리케이션이 stop, start된경우에도마찬가지로서버가다시 resume 이되서 RUNNING 상태가되었을때애플리케이션의바뀐상태를잘유지해줄수있도록해야한다. 이때는 DAS로부터애플리케이션의상태를다시받아오지는않는다. SUSPENDED 상태이더라도 DAS로부터애플리케이션 stop, start 명령은받을수있기때문에실제애플리케이션이 MS에서명령을수행할수없는상태이더라도 DAS로부터온 start, stop 작업을기억했다가서버가다시 resume이되는순간애플리케이션의상태를유지해줄수있도록하고있다. 참고서버가 SUSPENDED 상태일때애플리케이션 stop 명령이오면서버에서는이미모든애플리케이션이 stop된상태이기때문에 ApplicationAlreadyStoppedException이발생한다. DAS에서는이런상황에서발생한 exception은애플리케이션 stop 작업이실패했다고취급하지않는다. 서버가 SUSPENDED 상태일때애플리케이션 start 명령이오면서버에서는애플리케이션 Start 작업을수행할수가없다. 이때서버가 suspend되기이전에해당애플리케이션의상태가 DISTRIBUTED 상태였다면서버가 resume이되면서이애플리케이션을 start해야한다. INDEPENDENT 상태에서의 Boot-time Deploy 서버가 INDEPENDENT 상태로부팅된경우는 DAS의관리를받지않는다. 또한 DAS와연결할수없는상황이기때문에애플리케이션파일전송도받을수없다. 따라서 Boot-time Deploy할때에도이전에받아놓았던애플리케이션파일이없거나잘못되어있다면 Deploy를진행할수없다. INDEPENDENT 상태로서버를부팅할때는애플리케이션파일에접근할수있는경우에만 Deploy를진행할수있다. 애플리케이션파일을접근할수있는경우는다음의 3가지경우를말한다. MS가 DAS와같은머신에존재하여 DAS에 install된애플리케이션원본파일에접근가능한경우 애플리케이션파일이 NAS에존재하여 MS에서도접근가능한경우 압축을풀어놓은 Deploy 이미지디렉터리가남아있는경우 제 1 장도메인환경에서애플리케이션관리 15
32 위의경우에해당되지않는다면해당애플리케이션은 deploy해야할애플리케이션파일을찾을수없기때문에 Deploy에실패한다. 이경우에도마찬가지로서버는 STANDBY 상태가되며부팅을멈추게된다. 이때는콘솔툴을통해 MS로 connect 하여 local-start-server 명령을통해서버를 RUNNING 상태가되도록할수있다. 참고 local-start-server 명령을수행해도 deploy 를성공할가능성이매우희박하기때문에이럴경우에는 -force 옵션을주고서버를 start 한다. INDEPENDENT 상태로서버를띄울때에는 DEPENDENT 상태와는달리 DAS로부터 Distribute만진행해야하는애플리케이션리스트를받아올수없다. 따라서 Distribute에성공한애플리케이션모두를 start 시켜서비스가능한상태로만든다. INDEPENDENT 상태로부팅한서버가 DAS와연결되어 DEPENDENT 상태가되면, Distribute에실패한애플리케이션들을모두 Distribute를재시도한다. 실패했던애플리케이션들이모두 Distribute에성공하면 Boot-time Deploy할때와마찬가지로 DAS로부터 start해야하는애플리케이션리스트를받아와서 start시켜준다. 또한, distribute만해야하는애플리케이션이 start되어서서비스되고있는경우이애플리케이션은 stop시켜준다. 단, 서버가부팅중에 DAS가 failback되어 DEPENDENT 상태가되었다면위작업을별도로진행하지는않는다 애플리케이션동기화 애플리케이션파일의동기화는 DAS의주요역할중하나이다. DAS와 MS 사이에애플리케이션파일이동기화되는경우는크게몇가지가있다. Run-time Deploy를수행할경우 MS에서는새로 deploy할애플리케이션파일을 DAS로부터전송받는다. Boot-time Deploy를수행할경우 MS에 deploy해야할애플리케이션파일이변경되었다면 MS에서는 DAS로부터애플리케이션파일을새로전송받는다. MS가 INDEPENDENT 상태였다가 DEPENDENT 상태로변환된경우 MS에서는 deploy에실패한애플리케이션에대해서애플리케이션파일을다시전송받는다. 또한 Deploy 에성공한애플리케이션중에서 DAS에서관리하는애플리케이션파일이변경된경우에도 MS에서애플리케이션파일을다시전송받는다. DAS에서는애플리케이션파일의동기화뿐만아니라애플리케이션의도메인에서의상태도동기화한다. Boot-time Deploy를수행할때애플리케이션이 DAS에서 DISTRIBUTED 상태로관리되고있다면 DIS TRIBUTED 상태까지만만들어준다. 이애플리케이션을서비스하기위해서는사용자가 start-application 명령을수행해야한다. 16 JEUS Applications & Deployment 안내서
33 뿐만아니라 MS가 INDEPENDENT 상태였다가 DEPENDENT 상태로변환된경우 MS에서는애플리케이션파일뿐만아니라상태도동기화해준다. DEPENDENT 상태가된애플리케이션은 DAS에서관리하고있는애플리케이션의상태에따라 MS에서서비스되고있는애플리케이션의상태도바뀌게된다. INDEPENDENT 상태의 MS에서는모든애플리케이션이서비스될수있도록 RUNNING 상태로만들었지만, DAS와연결되어 DEPENDENT 상태가된후에는 DAS의상태를따른다. DAS에서애플리케이션이 DISTRIBUTED 상태였다면 MS의애플리케이션도중지하여 DISTRIBUTED 상태로만든다. 또한 DAS에서이미 undeploy한애플리케이션이 MS에존재한다면이또한 MS에서도 undeploy 한다 Auto Redeploy JEUS 6까지는지정된디렉터리또는애플리케이션을주기적으로검사하면서변경된내용이있을경우자동으로 Deploy 시도가가능했다. 이기능을사용하면애플리케이션을수동적으로 deploy할필요가없으므로애플리케이션을개발할때나빈번한업데이트가필요한애플리케이션의경우유용하게사용할수있었다. JEUS 7에서는 Auto Deploy 기능은지원하지않는다. 도메인에서애플리케이션의변경을감지해서 redeploy하는기능만남겨둔다. 참고 JEUS 7에서부터도메인구조로변경되면서애플리케이션을관리하는주체가 DAS이기때문에 Auto Deploy를지원하기가어려워졌다. 애플리케이션대상을도메인단위로보기도어렵고 Exploded 모듈의경우는다른머신으로전송되지않기때문에 Auto Deploy 기능은제공하지않는다. 대신최초 deploy할때애플리케이션대상과 Auto Redeploy를체크할주기를설정해서수동으로 deploy를하면애플리케이션파일이변경된경우에이를감지하여애플리케이션대상으로 Auto Re deploy를할수있다. Auto Redeploy 설정을한애플리케이션에대해서는설정한주기마다애플리케이션파일의변경을체크한다. Archive 모듈의경우는 Archive 파일의 last modified time으로애플리케이션의변경을감지해서 redeploy 한다. Exploded 모듈의경우는표준 Deployment Descriptor( 이하 DD) 의 last modified time으로변경을감지해서애플리케이션을 redeploy한다. Redeploy는 DAS가대상이되는서버로 redeploy 명령을보내고, 서버에서는 Auto Redeploy와일반 redeploy 명령이다르게동작하지않는다. DAS에서는모든서버에 Redeploy가성공해야전체성공으로간주한다. 파일이변경되었다고해서바로 redeploy되지않을수있다. 설정한주기가되어야애플리케이션파일변경여부를체크하기때문에최대설정한주기만큼기다려야 Redeploy가진행된다. 이주기의기본값은 10초이다. 제 1 장도메인환경에서애플리케이션관리 17
34 1.4. 디렉터리모드의 Deploy 애플리케이션은 Java EE 스펙에서정의한각애플리케이션타입에맞는형태로압축되어있어야한다. 하지만개발단계에서의편의성을제공하기위해압축된애플리케이션이풀려있는형태의애플리케이션또한 deploy할수있도록지원하고있다. JEUS에서는이런디렉터리형태의애플리케이션을 Exploded 모듈이라고한다. DAS와같은머신에존재하는서버나클러스터를대상으로한경우에만 Deploy가가능하다. 이런애플리케이션은 install-application 명령을통해서 DAS의애플리케이션 INSTALL_HOME으로 install시키는것이아니라 WebAdmin의 'Application Repository' 항목을지정하거나 deploy 명령을할때 -path 옵션을주고 deploy해야한다. 이때애플리케이션의 ID는애플리케이션파일이름이된다 애플리케이션저장소 (Application Repositories) 도메인환경에서는해당도메인에서서비스되는모든애플리케이션을 DAS에서관리하기때문에애플리케이션을 deploy하기전에애플리케이션파일을 DAS로 install하는작업을항상선행해야한다. 하지만도메인에애플리케이션저장소를추가한경우에는애플리케이션파일의 Install 작업을생략해도애플리케이션을 deploy할수있다 애플리케이션저장소추가 / 삭제 / 조회 도메인에서는 DAS로 install된애플리케이션을한곳에모아관리한다. 이디렉터리에는수동으로애플리케이션을위치시킬수는없다. 여러저장소 (repository) 를설정할수있고, 설정한디렉터리는모두애플리케이션저장소로인식된다. 애플리케이션저장소를추가, 삭제하고설정되어있는정보를조회하려면 WebAdmin이나콘솔툴을사용해야한다. 도메인에애플리케이션저장소로설정한디렉터리에는 Java EE 애플리케이션을위치시킬수있다. Archive 모듈뿐만아니라 Exploded 모듈도가능하다. 도메인에등록된애플리케이션저장소 (repository) 에는 install-application/uninstall-application 명령을통해서애플리케이션파일을추가, 삭제하는것은불가능하다. 애플리케이션파일을수동으로추가, 삭제하면도메인에서이를자동으로인식할수있다. 이렇게위치시킨애플리케이션은도메인에서 INSTALLED 상태로인식된다. 삭제된애플리케이션파일은애플리케이션정보에나타나지않고더이상도메인에서관리하지않는다. 애플리케이션의 ID는애플리케이션파일이름이기때문에 deploy 명령을할때파일이름을 -id 옵션으로지정한다. 애플리케이션파일이업데이트하려면이저장소의파일을수동으로업데이트한다. 만약애플리케이션을 deploy할때 Auto Redeploy 주기를설정했다면 DAS에서파일의변경여부를자동으로감지하여 Auto Redeploy가가능하다. 18 JEUS Applications & Deployment 안내서
35 애플리케이션저장소를추가할때저장소에존재하는파일이름이이미도메인에서사용되고있는애플리케이션 ID라면해당애플리케이션은도메인에서인식되지않고다음과같은로그메시지가발생한다. [ :37:40.625][1] [adminserver-68] [Deploy-0005] WARNING : application[myapp] already exist in /JEUS_HOME/.applications/myApp.ear. you should change the file name of [/home/user1/apps/myapp] 중복된애플리케이션 ID를사용하는경우애플리케이션정보요청하거나 DAS를시작하는경우도동일한로그가발생한다. 또한추가하려는애플리케이션저장소에유효한애플리케이션이존재하지않는다면다음과같은로그메시지가발생한다. [ :37:40.625][1] [adminserver-68] [Deploy-0062] WARNING : this repository(/home/user1/apps) does not contains valid applications. but could be add new applications. 애플리케이션저장소를삭제할때저장소에존재하는파일이도메인에 distribute되어있거나 deploy되어있다면애플리케이션저장소는삭제되지만애플리케이션이도메인의관리대상에서삭제되지는않고다음과같은로그메시지가발생한다. [ :44:04.328][1] [adminserver-93] [Deploy-0124] WARNING : application[myapp] is RUNNING in repository[/home/user1/apps]. if you want deregister this application to domain, you could undeploy. 주의애플리케이션저장소를삭제하려고하는의도가이미서비스되고있는애플리케이션까지도메인에서제외시키겠다는의도인지알수없다. 서비스되고있는애플리케이션을제외한다른애플리케이션만제외될것을원할수도있기때문에 JEUS에서이를판단해주기가모호하다. 따라서저장소를삭제할때서비스중인애플리케이션을내리고싶다면 undeploy 명령을수행해야한다. 제 1 장도메인환경에서애플리케이션관리 19
36 WebAdmin 사용 다음은 WebAdmin을사용해서애플리케이션의저장소를추가하는과정에대한설명이다. 1. WebAdmin의왼쪽메뉴에서 [Domain] 을선택하면 Domain 설정화면으로이동한다. 저장소를추가하기위해서왼쪽메뉴하단에위치한 [LOCK & EDIT] 버튼을클릭한다. [ 그림 1.8] 애플리케이션저장소추가 (1) 20 JEUS Applications & Deployment 안내서
37 2. Domain 설정화면에서 'Application Repositories' 항목에추가할저장소디렉터리를입력한다. [ 확인 ] 버튼을클릭하면변경된설정이저장되고, 화면상단에저장결과에대한메시지가나타난다. [ 그림 1.9] 애플리케이션저장소추가 (2) 제 1 장도메인환경에서애플리케이션관리 21
38 'Application Repositories' 항목의 [ 입력 ] 버튼을클릭하면 Navigation 팝업화면이나타나고애플리 케이션저장소의경로를선택할수있다. [ 그림 1.10] 애플리케이션저장소추가 (3) 22 JEUS Applications & Deployment 안내서
39 3. 화면왼쪽하단에위치한 [Activate Changes] 버튼을클릭하여추가한애플리케이션저장소를도메인 에반영한다. [ 그림 1.11] 애플리케이션저장소추가 (4) Activate Changes 팝업화면에서변경하려는설정에대한설명을작성할수있다. 'Description' 항목 에해당변경에대한설명을작성하고 [ 확인 ] 버튼을클릭한다. [ 그림 1.12] 애플리케이션저장소추가 (5) 제 1 장도메인환경에서애플리케이션관리 23
40 4. 서버에 Activate 가완료되면설정한애플리케이션저장소디렉터리가도메인에추가되고, 화면상단에 반영결과를자세하게표시된다. [ 그림 1.13] 애플리케이션저장소추가 (6) 5. WebAdmin의왼쪽메뉴에서 [Applications] 를선택하여 Deployed Applications 화면으로이동한다. 도메인에추가한애플리케이션저장소에있는애플리케이션들이 INSTALLED 상태로도메인에등록된것을확인할수있다. [ 그림 1.14] 애플리케이션저장소추가 (7) 24 JEUS Applications & Deployment 안내서
41 콘솔툴사용 도메인에애플리케이션저장소를추가하려면 add-application-repository 명령을사용하고, 삭제하려면 remove-application-repository 명령을사용한다. install할때설정하는 ID로애플리케이션관리디렉터리하위에디렉터리를생성하고거기에애플리케이션 Archive 파일을위치시킨다. 다음은콘솔툴으로애플리케이션저장소를추가, 삭제, 조회하는예제이다. [DAS]domain1.adminServer>add-application-repository /apps/test performed to MODIFY add application repository successfully. you can check out results using "add-application-repository or list-application-repositories" [DAS]domain1.adminServer>list-application-repositories Application Repositories ================================================================================ Path of Application Repository /apps/test ================================================================================ [DAS]domain1.adminServer>remove-application-repository /apps/test performed to MODIFY remove application repository successfully. you can check out results using "remove-application-repository or list-application-repositories" [DAS]domain1.adminServer>list-application-repositories Application Repositories ================================================================================ Path of Application Repository (No data available) ================================================================================ 참고콘솔툴에서애플리케이션저장소를추가, 삭제, 조회하는명령에대한자세한설명은 JEUS Reference Book 의 add-application-reporitory 와 JEUS Reference Book 의 remove-appli cation-repository 와 JEUS Reference Book 의 list-application-repositories 를참고한다. 제 1 장도메인환경에서애플리케이션관리 25
42 애플리케이션저장소에있는애플리케이션 Deploy 애플리케이션저장소를추가한후에는저장소에존재하는애플리케이션을 WebAdmin 과콘솔툴로 deploy 할수있다. 자세한내용은절 애플리케이션저장소에있는애플리케이션 Deploy 를참고한다 path 를지정하여 Deploy 도메인환경에서권장하는애플리케이션파일의관리방법은 2가지로구분된다. 애플리케이션파일이도메인에의해관리되길원한다면애플리케이션을 INSTALL_HOME으로 install하는것을권장하고사용자가직접애플리케이션파일을관리하려면애플리케이션저장소를설정하는것을권장한다. 애플리케이션파일을직접관리해도실제운영환경에서는도메인에서사용할애플리케이션파일을업무별로묶어몇개의디렉터리에위치시키는것을권장하기때문이다. 하지만개발단계에서는이렇게애플리케이션을모아두지않고별개로각각다른경로에존재할수도있다. 이경우개발의편의성을위해애플리케이션 deploy할때 -path 옵션을주고 deploy할수있도록제공한다. path를지정해서애플리케이션을 deploy할때는 -id 옵션은설정할수없다. Exploded 모듈이나 Archive 모듈모두 Deploy가가능하고, 애플리케이션파일의경로를 -path 옵션으로주고 deploy한애플리케이션은도메인의애플리케이션 INSTALL_HOME으로복사하는과정없이애플리케이션을 DAS에등록하여 Deploy를진행한다. 이때애플리케이션 ID는애플리케이션파일이름을그대로사용한다. WebAdmin과콘솔툴을통해 -path 옵션을주고 deploy하는방법에대한자세한내용은절 path를지정하여 Deploy 를참고한다 Staging Mode Deploy Exploded 모듈의경우는 DAS와같은머신에존재하는 MS에만 deploy할수있다. Exploded 모듈의경우는주로개발단계에서사용하므로여러머신을사용하지않기때문에같은머신에서만 Exploded 모듈을 deploy하고서비스할수있다. 하지만테스트단계에서는애플리케이션을 Exploded 모듈형태로유지하면서여러머신에도메인을구성하여테스트할수있기때문에 Exploded 모듈을다른머신에 deploy할수있는방법이필요하다. 애플리케이션을 deploy할때 -staging 옵션을주고 deploy하면 Exploded 모듈을압축하여다른머신에존재하는 MS에도전송해줄수있다. staging으로 deploy된애플리케이션은 MS에서는 Archive 모듈과동일하게취급된다. 압축을풀어서 deploy하고, MS가재기동될때는 DAS와애플리케이션파일을동기화한다. 애플리케이션의내용이변경되었다면 redeploy 명령으로변경된파일을 MS에적용하고다시 deploy할수있다. redeploy 명령을할때는 -staging 옵션을줄필요없이기존 Archive 모듈을 redeploy할때와마찬가지로 redeploy 명령을수행한다. 단, 이때는 -path 옵션을주면안된다. MS에서는 redeploy 명령을받아서우선적으로애플리케이션파일에대한동기화작업을진행하고기존애플리케이션을 undeploy한뒤새로운애플리케이션을 deploy한다. Webadmin과콘솔툴을통해 -staging 옵션을주고 deploy하는방법에대한자세한내용은 4.5. Staging Mode Deploy 를참고한다. 26 JEUS Applications & Deployment 안내서
43 1.8. 애플리케이션 Undeploy JEUS 관리도구를이용해서명시적으로애플리케이션을 undeploy 하는것과서버셧다운시점에애플리 케이션이 undeploy 되는것은서로동작방식이구분된다. 다음은두동작의차이점이다. 파일삭제여부 적용되는 Timeout 관리명령에의한 Undeploy 서버내부적으로생성한파일을삭제한 다. 예를들어 JSP, EJB 컴파일결과물들 이삭제되고 EJB 3.0 스케줄정보가 DB 에서삭제된다. Graceful Undeploy Timeout 서버셧다운시점의 Undeploy 서버내부적으로생성한파일을삭제하지않는다. Graceful Shutdown Timeout(Undeploy Timeout은적용되지않는다 ) 제 1 장도메인환경에서애플리케이션관리 27
44
45 제 2 장 Graceful Undeployment 와 Redeployment 본장에서는애플리케이션을 undeploy 하고 redeploy 할때이미처리중인요청을모두처리해주고 undeploy 나 Redeploy 작업을진행하도록하는 Graceful Undeploy 와 Graceful Redeploy 에대해설명한다 Graceful Undeployment Graceful Undeploy 는애플리케이션에 undeploy 명령을들어왔을때이미서비스중인사용자요청을모 두처리해주고 undeploy 가진행되는것을의미한다. EAR, EJB, 웹애플리케이션은 undeploy 명령이들어왔을때사용자요청처리를하고 undeploy를진행하는 Graceful Undeploy로진행한다. 단, EJB의경우는 SessionBean만 Graceful Undeploy가가능하다. 애플리케이션을 undeploy할때사용자로부터온요청처리가아직미완료상태라면, 해당요청들이모두완료될때까지대기한후에 undeploy를수행한다. undeploy 명령을할때 -gracefultimeout을옵션으로줄수있고, 여기에설정한값에따라요청이완료되기전에 undeploy가수행될수도있다. 아직요청이완료되지않은상태에서 graceful timeout으로 undeploy를해야한다면아직처리중인남아있는요청 Thread 에인터럽트신호를보낸다. undeploy 명령이들어오면애플리케이션은서비스를할수없는상태인 DISTRIBUTED로바뀌게된다. 그리고이미처리중인요청이완료될때까지또는사용자가준 graceful timeout이될때까지기다린다. Graceful Undeploy를진행하려면사용자가 undeploy 명령을내릴때항상적절한 -gracefultimeout을옵션으로주어야한다. 아무값도주지않은경우는 Graceful Undeploy를하지않기때문에처리중인요청이있더라도무시되고애플리케이션이 undeploy된다. 애플리케이션이 DISTRIBUTED 상태이면외부로부터받은요청들은처리될수없다. 하지만 EAR 의경우 는 undeploy 명령이시작된후에도애플리케이션의내부요청은수행될수있다. Standalone EJB 의경우 에도 Bean 이여러개라면 EJB 의 undeploy 작업이시작되어도 Bean 간의요청은처리될수있다. 제 2 장 Graceful Undeployment 와 Redeployment 29
46 다음은어떤상황에서요청이처리될수있는지를나타낸그림이다. [ 그림 2.1] EAR 애플리케이션의 Graceful Undeploy 위그림에서 web에서 ejb1을호출할때에는애플리케이션의상태가 RUNNING이기때문에요청이처리되는데아무런문제가없다. 하지만 ejb1이 ejb2를호출하는시점에는이미애플리케이션의상태가 DIS TRIBUTED로바뀌었기때문에요청을하더라도해당요청이거부되어야맞는상황이라생각할수있다. 하지만이는외부애플리케이션에서요청을한것이아니고, 같은 EAR 애플리케이션안에서의요청이기때문에이미애플리케이션이 DISTRIBUTED 상태가되었더라도요청이처리되는것을보장받아야한다. 위그림에서처럼 web에서 ejb1을호출하고, web의호출을받은 ejb1에서 ejb2를호출하는 Call Stack은하나의요청이다. 다시말해 EAR 애플리케이션의관점에서보면 ejb1에서 ejb2로의요청은새로운요청이아니라 web으로부터시작한이미진행중인요청인것이다. EAR 애플리케이션내부가아니라외부애플리케이션에서이애플리케이션의 ejb를요청하는경우라면애플리케이션의상태에따라서요청이거부될것이다. 하지만 EAR은하나의애플리케이션이기때문에 EAR이 DISTRIBUTED 상태가되었다고해서 EAR 내부요청인 ejb2에대한요청이실패하면안된다. ejb2에대한요청은계속서비스되어야하고이요청이완료한후에 undeploy될수있도록보장한다. 요청이오래걸릴수도있기때문에 undeploy 명령에서준 Timeout이실제요청이처리되는시간보다짧을경우에는정해진시간만큼만기다리고 Undeploy 가진행된다. 이때요청처리중인 Thread에는인터럽트신호를보내서진행중이던작업을중지한다. 참고인터럽트신호를보낸다고모든작업이중지되는것은아니다. Thread에서처리중인작업에따라중지될수도있고무시될수도있다. 인터럽트에걸려작업이중지되어도 JEUS에서는해당 Thread 에대해특별히처리하지않는다. 애플리케이션요청을서비스하는 Thread에서인터럽트가걸린것이기때문에애플리케이션이이상황을고려하여후처리를잘해주어야한다. Thread 인터럽트에대한자세한내용은 JEUS Server 안내서 의 Thread 제어 를참고한다. 30 JEUS Applications & Deployment 안내서
47 하나의애플리케이션내부에서의요청에대한 Graceful Undeploy는 EAR뿐만아니라 Standalone EJB 애플리케이션에서도적용된다. EJB 애플리케이션에 Bean이여러개있다면이 Bean들사이의요청도같은애플리케이션내부의요청이기때문에요청중에 undeploy 명령이들어와도이미처리중인요청은모두처리해주어야한다. undeploy 명령은기본적으로 5분의타임아웃이적용된다. 5분의시간동안애플리케이션의요청을보장해주는것이기본동작이다. -gracefultimeout 옵션 (-to 옵션과동일 ) 을줄수있어, 애플리케이션의요청보장시간을변경할수있고, 큰값을주어서 Graceful Undeploy를수행할수도있다. JEUS 6의기본동작처럼처리중인요청을기다리지않고 undeploy를진행하려면 -force(-f) 옵션을사용한다. 이경우이미처리중인애플리케이션요청은보장받지못한다. Graceful Undeploy 방법에대한자세한내용은 애플리케이션 Undeploy 를참고한다 Graceful Redeployment Graceful Redeploy는현재서비스중인애플리케이션의중단없이새로 redeploy한애플리케이션으로자연스럽게서비스를제공하는메커니즘이다. 이기능은애플리케이션타입별로동작에차이점을가지고있다. 본절에서는 Graceful Redeploy를사용하기위해서공통적으로알아야할사항에대해설명하고그뒤에각애플리케이션타입별동작에대해설명한다 Graceful Redeploy 를사용하기위한전제조건 Graceful Redeploy 사용을위한전제조건은다음과같다. WAR 파일이나 JAR 파일처럼패키징된애플리케이션이어야한다. 즉, 디렉터리형태의애플리케이션은사용할수없다. 애플리케이션을패키징할때 META-INF/MANIFEST.MF 파일에다음과같은필드를추가해야한다. Jeus-Use-Graceful-Redeploy: true redeploy 대상이되는애플리케이션역시위의필드가있어야한다. 그렇지않을경우일반적인 Redeploy 가수행된다. 패키징된파일의 last modified time이서로달라야한다. EJB의경우 Session Bean에대해서만 Graceful Redeploy가지원된다 Graceful Redeploy 에대한필수고려사항 Graceful Redeploy를수행할때다음의사항을고려해야한다. 서비스시작단계전에 Graceful Redeploy 기능의사용여부를결정해서전제조건에서설명한바와같이애플리케이션을준비해야한다. 제 2 장 Graceful Undeployment 와 Redeployment 31
48 기존애플리케이션을바로 undeploy 하는것이아니고일정시간동안두애플리케이션이동시에 JVM 에존재한다. 따라서 JVM permgen 영역크기에대해서미리산정해야한다. 충분한 permgen 영역이 확보되지않을경우 OutOfMemoryError 가발생할수있다 Graceful Redeploy 사용방법 Graceful Redeploy는 redeploy 명령으로사용가능하다. 사용방법은실제서비스중에발생할수있는상황을예로들어서설명한다. 먼저다음과같이패키징된 WAR 파일들이있다고가정한다. old application : myservice.war (05/09/2012 1:00 pm) new application : myservice.war (05/25/ :00 am) install id = myservice_war, context path = /myservice 서비스제공자는 2012년 5월 25일오전에지난 9일에패키징해서 deploy했던 myservice.war에문제점이있다는것을발견했다. 그래서이를수정하여오전 11시에새로패키징을했다. 하지만이미 myservice.war 를사용중인고객들이있어서 JEUS를중단시킬수없으므로 Graceful Redeploy를사용하기로결정했다. 이러한상황에서서비스제공자는콘솔툴을통해서다음과같은명령을수행한다. redeploy myservice_war -path /path_to_new_application/myservice.war redeploy 명령에특별한옵션을주는것이아니라 META-INF/MANIFEST.MF 파일의필드와패키징시간으로 JEUS에서 Graceful Redeploy 여부를판단한다. 만약 2012년 5월 9일오후 1시에패키징한애플리케이션의 META-INF/MANIFEST.MF 파일에전제조건에서설명한필드가없거나 false로지정되어있다면 Normal Redeploy를수행한다. 참고 클라이언트의요청을처리하는데많은시간이소요되는경우에는 redeploy 명령에이전애플리케이 션을정해진시간안에종료할수있는 undeploy timeout 값을적절히설정해서사용한다. 이전버전애플리케이션을강제로 Undeploy 하는방법 Graceful Redeploy가성공적으로완료된시점을기준으로새로운서비스사용자 ( 고객 ) 는새로운 myser vice.war를사용하게된다. 기존서비스사용자는계속이전버전 myservice.war를사용한다. 기존서비스사용자와새로운서비스사용자를구분하는기본적인기준은커넥션 ( 소켓연결 ) 이다. 웹애플리케이션의경우에는 HTTP Session도그기준에포함된다. Graceful Redeploy의기본목적은기존서비스사용자가서비스중단을경험하지않도록하는것이다. 따라서이전버전 myservice.war에접근한커넥션이나그것을통해생성된 HTTP Session이모두사라질때까지이전버전 myservice.war는계속 undeploy되지않는다. 만약 HTTP Session Timeout이너무길어서일부 HTTP Session에의해서 undeploy되지않고남아있을경우에는서비스관리자가다음과같이 undeply 명령을수행해서강제로 undeploy할수있다. 32 JEUS Applications & Deployment 안내서
49 undeploy -old myservice_war 이전버전애플리케이션을일정시간이지난뒤자동으로 Undeploy 하는방법 이전버전 myservice.war가일정시간이상지나면자동으로 undeploy되게할수도있다. redeploy 명령을내릴때 Timeout 옵션을지정한다. Timeout 값의단위는초이다. redeploy -path /path_to_new_application/myservice.war -to 5 이전버전애플리케이션과새로운애플리케이션이동시에존재할때이전버전애플리케이션으로 rollback하는방법 이전버전 myservice.war가 undeploy되지않은상황에서서비스제공자가새로운 myservice.war에문제점이있음을발견하였다. 이때새로운 myservice.war를 undeploy하면이전버전 myservice.war로 rollback 되어정상적으로서비스된다. 다음과같이 undeploy 명령을수행한다. undeploy -new myservice_war 경고새로운애플리케이션에다소심각한문제점이있어서바로 undeploy하는상황에서사용한다고가정하고새로운애플리케이션은즉시 undeploy한다. 따라서새로운애플리케이션을사용하던사용자는서비스중단을경험하게된다. 이러한상황이발생하길원치않는경우에는이전버전 myservice.war 가 undeploy된후그 myservice.war를다시 redeploy하면된다. 새로운애플리케이션을 Distribute 만하는방법 새로운 myservice.war가제대로동작하는지확인후실제로사용자에게제공하려면 redeploy 명령을내릴때 Distribute만하도록지정한다. redeploy myservice_war -path /path_to_new_application/myservice.war -distonly 새로운애플리케이션에대한서비스동작여부를미리확인하는방법은각애플리케이션타입별로다르다. 새로운웹애플리케이션에대한동작에대한자세한설명은절 새로운웹애플리케이션에대한동작여부를미리확인하는방법 을참고한다. 동작확인을한뒤에새로운애플리케이션을서비스하려면 start 명령을실행한다. start -new myservice_war 새로운애플리케이션에문제가있어서 undeploy하려면 -new 옵션을주고 undeploy 명령을실행한다. undeploy -new myservice_war 제 2 장 Graceful Undeployment 와 Redeployment 33
50 이전버전애플리케이션과새로운애플리케이션모두 Undeploy 하는방법 이전버전애플리케이션과새로운애플리케이션이동시에존재하는경우에는 -old 또는 -new 옵션을이용해서어느애플리케이션을 undeploy할지명시적으로설정해야한다. 만약두애플리케이션을모두 undeploy 하려면다음과같이 -force 옵션을지정해서 undeploy 명령을수행한다. undeploy -force myservice_war 이전애플리케이션을무조건교체하는방법 Graceful Redeploy 대신무조건 Normal Redeploy를수행할경우에는다음과같이 redeploy 명령을수행한다. redeploy myservice_war -path /path_to_new_application/myservice.war -force 웹애플리케이션의 Graceful Redeploy 기존웹컨텍스트에서제공하는서비스의중단없이새로운웹컨텍스트를 redeploy하는기능이다. 일반적인 redeploy는기존웹컨텍스트를 undeploy하기때문에그과정에서서비스이용자가웹브라우저에서에러페이지를보게될수있다. 하지만 Graceful Redeploy는기존웹컨텍스트에대한서비스이용자가있으면이를 undeploy하지않고그대로유지한상태에서새로운웹컨텍스트를 deploy한다. 일시적으로기존웹컨텍스트와새로운웹컨텍스트가동시에존재하게된다. 기존웹컨텍스트의서비스이용자를판별하는기준은현재진행중인요청존재여부와 HTTP Session 존재여부이다. 현재진행중인요청들의경우 DB 지연문제나오랫동안수행하는 Async Processing이아니라면시간이오래걸릴만한사항이없을것이다. 하지만 HTTP Session의경우최소한유후 Timeout만큼남아있기때문에기존웹컨텍스트는그동안 undeploy되지않는다. redeploy 수행자는이런점을고려하여기존웹컨텍스트에대한 undeploy timeout을줄수있으며, 명령을통해서강제로 undeploy할수도있다. 새로운웹컨텍스트가성공적으로서비스를시작하면새로운요청은더이상기존웹컨텍스트로전달되지않는다. 기존웹컨텍스트의서비스이용자는 Graceful Redeploy가성공적으로끝나기이전에접속한클라이언트들이다. 참고기존웹컨텍스트의서비스이용자들중 HTTP Session을사용하는경우에는그세션이만료되기전까지새로운웹컨텍스트를이용하지못한다. 이를방지하고싶은경우에는일반적인 redeploy를수행하거나, Graceful Redeploy를수행할때기존웹컨텍스트에대한 undeploy timeout 등을설정해서기존웹컨텍스트를강제로내리도록해야한다. 사용방법은 Graceful Redeploy 사용방법 을참고한다. 34 JEUS Applications & Deployment 안내서
51 새로운웹애플리케이션에대한동작여부를미리확인하는방법 JEUS에서는새로운웹애플리케이션을 Distribute만해놓고제대로동작하는지확인할수있는방법을제공한다. 새로운웹애플리케이션을 Distribute만하는방법은절 새로운애플리케이션을 Distribute 만하는방법 을참고한다. 예제와같이 myservice.war의 context path가 '/myservice' 일경우웹브라우저를통해서새로운웹애플리케이션을 distribute한서버의기본포트로 HTTP 요청을보내면된다. 새로운 myservice.war를 Distribute 만수행한서버의호스트이름이 'host1' 이고기본포트가 '9736' 인경우로가정한다 EJB 애플리케이션의 Graceful Redeploy EJB 애플리케이션의 Graceful Redeploy는기존의 EJB 요청에대한처리를보장하면서새로운 EJB를 re deploy하는기능이다. Graceful Undeploy와마찬가지로 Session Bean에대해서만기능이제공된다. 따라서 JAR 형식의애플리케이션을 Graceful Redeploy하려면해당 JAR는 Session Bean들로만구성되어있어야한다. 주의 SHARED 모드인 EJB의경우일시적으로 LinkageError가발생할가능성이있다. 따라서 SHARED 로사용하기보다는 EAR로같이묶어서사용할것을권장한다. Graceful Redeploy 시점을기준으로새로운클라이언트는새로운 EJB를 Lookup해서사용하고, 기존 EJB 를사용하던클라이언트는사용자가설정한 Timeout 동안은요청처리를보장받는다. 또한기존 EJB에대한요청처리가없다고판단되면 Timeout 이전이라도기존 EJB에대한 Undeploy가이루어진다. 요청처리에대한판단기준은 EJB의종류에따라달라진다. Stateless Session Bean의경우는현재진행중인요청을기준으로하고, Stateful Session Bean의경우는세션의존재여부로판단한다. 즉, Stateful Session Bean의경우에는모든세션이 destroy됐을때더이상의추가요청이없을것이라고판단하고 Undeploy가진행된다. 현재 JEUS에서는성능향상을위해내부적으로클라이언트에 Home Stub과 EJB Object Stub을캐시해서사용하고있다. 따라서기존 EJB에대한정보를캐시하고있는클라이언트의경우 Graceful Redeploy 완료시점이후에는기존의캐시를삭제하고새로운 EJB에대한정보를다시받아와야한다. EJB 3.x 의경우에는별도의설정없이도자동으로변경되지만 EJB 2.x의경우에는 <use-dynamic-proxy-for-ejb2> 가 true로설정되어있여야정상동작한다. (<use-dynamic-proxy-for-ejb2> 의기본값은 true이다.) EAR 애플리케이션의 Graceful Redeploy EAR 애플리케이션의경우 EAR 안에속한 WEB, EJB 모듈의 Graceful Redeploy를보장한다. Standalone 모듈의 Graceful Redeploy와마찬가지로기본적으로 WEB 모듈의경우에는컨텍스트의세션이만료될때까지이전서비스를보장해주고, 이전 Stateless Session Bean의요청처리와 Stateful Session Bean의세션만료시간까지의이전요청처리를보장해준다. 제 2 장 Graceful Undeployment 와 Redeployment 35
52 단, EAR 애플리케이션은하나의애플리케이션이기때문에 EAR에속한하나의 EJB 모듈이기존요청처리를완료해도다른모듈의이전요청처리가진행중이면 EJB 모듈을내릴수없다. Graceful Undeploy 와마찬가지로요청처리가끝나지않은이전모듈안에서 EJB 모듈로요청할수있기때문에 EAR 애플리케이션의모든요청이정상적으로처리되는것을보장해주려면하나의 EJB 모듈이나 WEB 모듈만내리는것은불가능하다. EAR 애플리케이션에속한모든 WEB 모듈이나 EJB 모듈의요청처리가완료되어야이전 EAR 애플리케이션이 undeploy될수있다. 참고이전애플리케이션의 application name과새로운애플리케이션의 application name은동일해야한다. 애플리케이션뿐만아니라애플리케이션안에속한각모듈의 module name또한동일해야한다. application name 설정방법에대한자세한내용은 "Java EE 6 Platform Specification" 을참고한다. 36 JEUS Applications & Deployment 안내서
53 제 3 장애플리케이션 본장에서는실제로모듈과애플리케이션이어떻게구성되어있으며, 각각의구성요소에는무엇이있는 지에대해설명한다. 또한이렇게작성된애플리케이션을 deploy 하기위해 JEUS 에서제공하는기능에대 해설명한다 모듈과애플리케이션 Java EE 애플리케이션은하나이상의모듈로구성되어있다. Java EE 모듈은하나이상의동일한타입인 Java EE 컴포넌트 (EJB, 웹애플리케이션, 애플리케이션클라이언트, connector) 와 DD로구성된다. DD는 Java EE 표준 DD(application.xml 등 ) 와 JEUS DD(jeus-application-dd.xml 등 ) 가있으며, Java EE 5 이후에서는표준 DD 없이도대부분의설정을클래스에 Annotation으로대체할수있다. 다음은 Java EE 모듈및애플리케이션구성이다. [ 그림 3.1] Java EE 모듈및애플리케이션구성 제 3 장애플리케이션 37
54 모듈 Java EE 모듈에는다음의 4종류가있다. EJB 모듈 (.jar file) EJB(Enterprise JavaBeans) 는트랜잭션및보안서비스를이용하는비즈니스로직을구현하기위한표준서버측컴포넌트모델이다. EJB 모듈은이러한 EJB들을표현하고그룹화하기위한개념으로 JEUS 에서는 JEUS EJB 엔진에배치할수있는가장작은단위를의미한다. 따라서 1개의 EJB가배치되어도반드시 EJB 모듈로패키지화 (.jar file) 되어야한다. EJB 모듈의자세한내용은 "JEUS EJB 안내서 " 를참고한다. 웹 (WEB) 모듈 (.war file) 웹모듈은클라이언트의요청에의한웹기반의서비스 ( 예를들면, 장바구니에물품을추가하거나, 장바구니안의물품을구매하거나웹기반의경매사이트에서물건을사기위해브라우징하는등 ) 를실행하기위한정적콘텐츠 (static content) 와동적콘텐츠 (dynamic content) 의집합이라고할수있다. 웹애플리케이션모듈에대한자세한내용은 "JEUS Web Engine 안내서 " 를참고한다. 애플리케이션클라이언트 (Application client) 모듈 (.jar file) 애플리케이션클라이언트는별도의 JVM에서실행되는클라이언트프로그램이다. 애플리케이션클라이언트는 main() 메소드를호출해서실행하고, 가상머신이종료되면실행을마친다. 다른 Java EE 애플리케이션컴포넌트처럼애플리케이션클라이언트는시스템서비스를제공하는클라이언트컨테이너 (Client Container) 에서동작한다. 클라이언트컨테이너는다른 Java EE 컨테이너에비해서매우적은양의시스템리소스를사용한다. 애플리케이션클라이언트모듈에대한자세한내용은 "JEUS Application Client 안내서 " 를참고한다. 리소스어댑터 (Resource adapter) 모듈 (.rar file) 리소스어댑터는 Java EE 커넥터아키텍처의중심컴포넌트로특정 EIS(Enterprise Information System) 용으로개발되어서 EIS와상호작용하기위한 API를제공한다. 또한 Java EE 애플리케이션서버와연동하기위한시스템 API도제공한다. 관리자의관점에서는모든작업이리소스어댑터의설정과배치만으로종료된다. 리소스어댑터모듈에대한자세한내용은 "JEUS JCA 안내서 " 를참고한다 애플리케이션 [ 그림 3.1] 을보면 Java EE 애플리케이션은하나이상의 Java EE 모듈과 2개의 DD로구성된다. DD는 Java EE DD(application.xml) 와 JEUS DD(jeus-application-dd.xml) 로구성된다. 이때 Java EE 모듈은 1개이상의동일한타입인컴포넌트들과 DD들로구성되기때문에하나의컴포넌트만으로도애플리케이션을생성할수있다. Java EE 애플리케이션은확장자가 '.ear' 인일반적인 JAR Archive 형식의파일로다음은 EAR 구성의간단한예이다. EAR 파일의루트디렉터리에는애플리케이션에포함된각모듈의 Archive 파일들과 lib, META-INF 디렉터리가존재한다. 38 JEUS Applications & Deployment 안내서
55 [ 그림 3.2].ear archive 의구성 다음은각디렉터리에대한설명이다. lib lib 디렉터리는 EAR 애플리케이션의공통라이브러리디렉터리이다. 디렉터리하위에는라이브러리.jar 파일이올수있다. 이렇게위치한라이브러리들은 EAR 애플리케이션의하위모듈에서자동으로클래스패스에추가된다. 이디렉터리는설정에의해다른디렉터리로대체될수있다. Java EE 5에서부터는 library directory를지원하는데이는 EAR 애플리케이션표준 DD인 applica tion.xml에 <library-directory> 태그로설정하여사용할수있다. 만약 application.xml 파일이없거나 application.xml에 <library-directory> 설정을하지않은경우에는기본적으로 lib 디렉터리가사용된다. 참고 JEUS 5부터지원하는 APP-INF 디렉터리는공통라이브러리디렉터리로웹애플리케이션모듈의 WEB-INF 디렉터리와비슷한기능을제공한다. WEB-INF와마찬가지로 APP-INF 또한하위에 classes와 lib 디렉터리를가지고있으며, 각각클래스파일과.jar 파일을포함한다. APP-INF 아래에존재하는 classes 디렉터리의클래스들과 lib 디렉터리의.jar 파일들은이애플리케이션에서라이브러리로사용할수있다. 하지만라이브러리디렉터리를사용하는것이표준이므로 JEUS 6 이후에서는 APP-INF 디렉터리보다는라이브러리디렉터리를사용할것을권장한다. META-INF META-INF 디렉터리에는 2개의 DD가존재한다. Java EE DD인 application.xml과 JEUS DD인 jeusapplication-dd.xml이며, 이파일들은없어도무방하다. 이디렉터리에는 DD 이외에 MANIFEST.MF라는파일이존재한다. archive된 EAR 파일의정보나클래스패스를명시할수있다. 제 3 장애플리케이션 39
56 3.2. Deployment Descriptor(DD) Java EE 애플리케이션은 EAR(Enterprise ARchive.ear 파일 ) 형태로배포된다. 이파일에는 EJB 모듈 (EJB.jar 파일 ), 웹애플리케이션모듈 (.war 파일 ), 리소스어댑터모듈 (.rar 파일 ), 클라이언트모듈 ( 클라이언트.jar 파일 ) 과기타필요한 Java 클래스를포함하고있다. 또한하나의모듈로구성된 Standalone 모듈도 Java EE 애플리케이션의한종류이다. 이러한애플리케이션의서비스들을시작하기위해 JEUS에모듈파일을올리고제어하는모든동작을 Deployment라고한다. 애플리케이션서버에배치를하기위한모듈또는애플리케이션을생성하기위해서는 DD가필요하다. DD는 Java EE 표준 DD와 JEUS DD가있다. 참고표준 DD에서사용가능한설정들은 Annotation으로모두표현가능해졌기때문에 EJB와 EAR의경우표준 DD와 JEUS DD는 Java EE 5를만족하는 JEUS 6부터생략가능하다. 웹의경우는 Java EE 6 를만족하는 JEUS 7부터표준 DD와 JEUS DD를생략가능하다. 각모듈과애플리케이션에필요한 DD 는다음과같다. [ 표 3.1] 모듈별 DD 애플리케이션 EJB 모듈웹애플리케이션모듈애플리케이션클라이언트리소스어댑터모듈웹서비스 Java EE 표준 DD application.xml ejb-jar.xml web.xml application-client.xml ra.xml webservices.xml JEUS DD jeus-application-dd.xml jeus-ejb-dd.xml jeus-web-dd.xml jeus-client-dd.xml jeus-connector-dd.xml jeus-webservices-dd.xml 각모듈마다 Java EE 표준 DD 이외에 JEUS를위한 DD를별도로가지고있는것처럼 Application descriptor 에대해서도이에대응하는 jeus-application-dd.xml이존재한다. 이파일은 EAR의 META-INF에위치한다. 이파일은애플리케이션에대한부가적인설정을하기위해사용한다. 만약이파일이 EAR이나 Standalone 모듈에포함되어있지않으면기본설정으로 deploy가된다. 참고 Java EE 표준 DD 에대한보다자세한내용은 Java EE 7 의스펙을참고한다. 각모듈에해당하는 JEUS DD 역시 JEUS 의해당안내서를참고한다. jeus-application-dd.xml에는애플리케이션이서비스되기위한부가적인정보를설정할수있다. 서버의 deploy에서는애플리케이션을 deploy할때해당파일에설정된정보를읽어서애플리케이션을서비스하기위한환경을구성한다. 다음은 <application> 태그의설정항목에대한설명이다. 40 JEUS Applications & Deployment 안내서
57 보안설정 애플리케이션에적용될보안관련설정은다음과같다. 항목에대한자세한설명은 "JEUS Security 안내 서 " 를참고한다. Element <role-permission> <java-security-permission> 설명애플리케이션에서사용할 principal-role mapping을지정한다. 이설정은애플리케이션하위의모든모듈에적용된다. J2SE security manager를사용할경우애플리케이션에게허용할 permission 들을지정한다. 라이브러리설정 애플리케이션에서공유라이브러리를사용하려고할때아래의설정을통해라이브러리를지정할수 있다. 항목에대한자세한설명은 공유라이브러리 (Shared Library) 를참고한다. Element <library-ref> 설명 애플리케이션에서사용할공유라이브러리를지정한다. Java EE Name Space 관련설정애플리케이션에서사용할 Name Space에대한정보는 application.xml이나 Annotation에명시할수있다. 그에따른매핑정보는 jeus-application-dd.xml에적을수있다. 이정보들은 Annotation으로모두대체가능하다. Naming 환경에대한자세한내용은 Java EE 7의스펙을참고한다. 이설정에대한자세한설명은 "JEUS XML Reference" 의 " 제23장 jeus-application-dd.xml 설정 " 을참고한다 애플리케이션에서라이브러리사용 본절에서는여러애플리케이션에서사용할수있는애플리케이션라이브러리 (lib/application) 와공유라 이브러리 (Shared Library) 를추가하고, 사용하는기능에대해설명한다 lib/application 디렉터리 애플리케이션라이브러리 (lib/application) 는애플리케이션간에공유되는라이브러리로 JEUS 시스템에추가되는시스템라이브러리 (JEUS_HOME/lib/system) 와는구별된다. 시스템라이브러리에는시스템에서사용하는라이브러리들이위치하는것이고, lib/application에는애플리케이션이나기타사용자가설정한클래스 ( 서버 Lifecycle 호출기능, 사용자로거, 로거의필터, 로거의포맷터등 ) 에서사용할라이브러리를위한용도이다. lib/application에라이브러리를위치시키면라이브러리파일이애플리케이션간에공유될수있다. 따라서사용자가항상애플리케이션에라이브러리를함께패키징 (packaging) 하지않아도된다. 주로도메인이나서버에있는모든애플리케이션에서공통으로사용될라이브러리를여기에위치시킨다. 라이브러리형태인 JAR 파일이올수도있다. 제 3 장애플리케이션 41
58 주의 lib/application에같은라이브러리를여러개의버전으로설치한경우애플리케이션의의도대로라이브러리가선택되지않을수있다. 이경우애플리케이션에서사용할라이브러리의버전을명시할수있는공유라이브러리를사용하기바란다. 공유라이브러리에대한자세한설명은 공유라이브러리 (Shared Library) 를참고한다. lib/application은 DOMAIN_HOME과 SERVER_HOME에위치할수있다. DOMAIN_HOME/lib/application에는도메인전체에서공유할수있는라이브러리를위치시킨다. 도메인에설치된애플리케이션라이브러리를다른머신에있는서버에전달하고싶다면다른머신에서최초도메인을구성할때 pack-domain 명령을통해서구성하면 DOMAIN_HOME/lib/application도함께복사된다. 그후에애플리케이션라이브러리가추가되거나변경되는것은사용자가수동으로동기화해주어야한다. 특정서버에서만사용할애플리케이션라이브러리를설치하고싶다면 SERVER_HOME/lib/application에사용할라이브러리를위치시킨다. 이는명령으로제공하지않고있으니수동으로위치시켜주어야한다. 참고 SERVER_HOME/lib/application 디렉터리는 JEUS 를설치할때생성되어있지않으니필요하면직 접생성해서라이브러리를위치시킬수있다. 클래스로딩방식 애플리케이션라이브러리 (lib/application) 의클래스는 JEUS 루트클래스로더에의해서로딩된다. 따라서서버에 deploy되는모든애플리케이션에서사용할수있다. 시스템라이브러리 (JEUS_HOME/lib/system) 와동일한클래스로더에서로딩되지만, 시스템라이브러리는사용자가접근해서는안되는디렉터리에존재한다. 하지만애플리케이션라이브러리는사용자를위해서사용자가참조해야하는라이브러리를위치시키는디렉터리로두디렉터리의역할이다르다볼수있다. 참고 서버의클래스로딩방식에대한자세한설명은 JEUS Server 안내서 의 1.4. 클래스로더의구조 를 참고한다. 애플리케이션라이브러리는 SERVER_HOME과 DOMAIN_HOME에존재한다. 클래스로더에서클래스패스에추가하는순서는 SERVER_HOME/lib/application이먼저이고, DO MAIN_HOME/lib/application이나중이다. 따라서 SERVER_HOME과 DOMAIN_HOME에같은라이브러리가존재할경우에는 SERVER_HOME에설치되어있는것이로딩되기때문에 DOMAIN_HOME에존재하는라이브러리는무시될수있다. 클래스로더에라이브러리를클래스패스로추가할때라이브러리파일이름이같은경우에는서버를부팅할때다음과같은 WARNING 메시지를출력한다. 42 JEUS Applications & Deployment 안내서
59 Warning [same classpath-name] : [JEUS_HOME/domains/domain1/servers/adminServer /lib/application/applib.jar] is registered earlier than [JEUS_HOME/domains/domain1/lib/application/applib.jar] in JEUSClassLoader. 참고위로그메시지는 lib/application을 JEUS 루트클래스로더에클래스패스로추가할때발생한다. 이는서버를부팅할때클래스로더를구성하는단계에서진행하는작업으로서버부팅단계중제일첫번째단계이다. 아직서버로거가설정되기이전의시점이다. 따라서이메시지는 Luncher 로그를통해서확인해야한다. 애플리케이션라이브러리는애플리케이션뿐만아니라서버에특정클래스를설정해서사용할수있는부분에서는모두사용가능하다. 그예로는서버 Lifecycle 호출기능과사용자로거, 로그메시지필터클래스, 로그메시지포맷터클래스가있다. 여기에설정한클래스에서는애플리케이션라이브러리의라이브러리를참조하는것이아니라해당클래스가 lib/application에위치해야한다 공유라이브러리 (Shared Library) 공유라이브러리는애플리케이션간에공유되는라이브러리로 JEUS 시스템라이브러리 (JEUS_HOME/lib/system) 와애플리케이션라이브러리 (DOMAIN_HOME/lib/application, SERV ER_HOME/lib/application) 와는구별된다. 공유라이브러리는 JEUS 전체시스템에영향을주지않고각애플리케이션에서해당라이브러리를사용할것인지여부를설정할수있으며, JEUS 재기동없이동적으로추가할수도있고, 같은라이브러리를여러개의버전으로설치하여선택적으로사용할수있다. 공유라이브러리는다음과같은특징을가진다. 라이브러리파일이애플리케이션간에공유될수있고따라서사용자가항상함께패키징 (packaging) 하지않아도된다. 라이브러리는서버가운영중일때도동적으로추가, 삭제될수있다. 새로운버전으로라이브러리를추가하고애플리케이션을 redeploy해서업그레이드된라이브러리를사용할수있다. 해당라이브러리의여러버전의구현체를등록할수있고, 어떤구현체를사용할지는 Deployment Time 에결정할수있다. 각라이브러리는 2 개의버전 (specification, implementation) 을가질수있다. 이렇게함으로써사용자들은 같은라이브러리의여러개의버전을설치할수있고, 애플리케이션이필요한버전을 (highest, minimum or exact) Deployment Time 에동적으로선택하게한다. 제 3 장애플리케이션 43
60 추후에여러버전의라이브러리를지원하기위해서는처음부터항상버전을명기하는것을권장하며, 단 순한 use case 를위해서는버전을전혀사용하지않아도무방하다. 버전이명기되지않았다면기본적으 로 0 라는버전값으로내부적으로해석한다. 라이브러리 Deploy 및설정 하나의라이브러리는여러개의 JAR 파일로구성될수있는데이는보통공유라이브러리디렉터리인 JEUS_HOME/lib/shared 하위에위치한다. 그리고 JAR 파일들은 JEUS_HOME/lib/shared/libraries.xml 설정파일에다음과같이라이브러리로등록한다. 다음예에서 'mylibrary' 는 2.0 스펙을구현하는 2.1 버전의구현체로정의하여등록되었다. 이라이브러리는여러개의 JAR 파일 (commons-logging.jar, commons-util.jar 그리고 mylib -2.1 서브디렉터리에있는모든 JAR 파일 ) 로구성되어있다. [ 예 3.1] 공유라이브러리등록 : <<libraries.xml>> <library> <library-name>mylibrary</library-name> <specification-version>2.0</specification-version> <implementation-version>2.1</implementation-version> <files dir="."> <include name="commons-logging.jar"/> <include name="commons-util.jar"/> </files> <files dir="mylib-2.1"/> </library> 다음은설정태그에대한설명이다. <library-name>, <specification-version>, <implementation-version> 애플리케이션이해당라이브러리를참조할때사용한다. <*-version> 필드는같은이름의라이브러리가여러버전으로관리되는경우에사용될수있다. <files> 실제라이브러리의클래스패스를설정한다. <files> 태그는다음의예와같이여러가지방식으로클래스패스를설정할수있다. [ 예 3.2] 공유라이브러리 <files> 태그 <files dir="."> <include name="a.jar"/> <include name="b.jar"/> </files> <files dir="testa"/> <files dir="/home/works/lib/testc" /> 44 JEUS Applications & Deployment 안내서
61 <files dir="/home/works/lib/testd" mode="classes"/> dir 값은 JAR 파일이담긴디렉터리또는 classes 디렉터리가주어질수있으며상대경로와절대경로모두사용할수있다. 이때상대경로의경우기반 (base) 디렉터리로공유라이브러리디렉터리인 JEUS_HOME/lib/shared에대한상대경로로해석된다. <include> 서브태그를이용하여어떤 JAR 파일들을포함시킬지지정할수있다. <include> 태그를설정하지않으면해당디렉터리의모든 JAR 파일이포함된다. 이경우해당디렉터리는 deploy 시간에 JAR 파일을동적으로검색하게된다. 따라서, 추후에설정변경없이 JAR 파일을디렉터리에추가할수있다. JAR 파일디렉터리가아니라클래스디렉터리를지정하려면 mode 값을 "classes" 로설정해야한다. 새로운애플리케이션이 deploy될때해당설정이수정되었다면다시읽어서처리하기때문에, 라이브러리는 JEUS가구동중에도동적으로추가될수있다. 따라서, JEUS 재기동없이도새로운라이브러리혹은업그레이드된버전의라이브러리를추가할수있다. 주의 위에설명한설정은해당 XML 을직접수정해서사용해야한다. JEUS 6 에서는 WebAdmin 을통해서 수정이가능했지만 JEUS 7 의 WebAdmin 에서는지원하지않는다. 애플리케이션에서라이브러리참조 Java EE 애플리케이션이나 Standalone 모듈은 jeus-application-dd.xml, jeus-web-dd.xml 또는 jeus-ejbdd.xml의 Entry를통해등록된공유라이브러리를사용할수있다. 다음은공유라이브러리 'mylibrary' 를참조하는예이다. <library-ref> <library-name>mylibrary</library-name> </library-ref> 위의예에서애플리케이션은 deploy될때라이브러리이름이 'mylibrary' 인라이브러리를찾고해당클래스패스를애플리케이션클래스패스에추가한다. 여러버전의 'mylibrary' 가있는경우, 가장높은 (highest) 버전을선택하게된다. 참조되는라이브러리버전이설정되지않으면, 항상절 Version Ordering Rule 에따라최상위버전을찾게된다. 다음은최소버전이필요한경우의예이다. <library-ref> <library-name>mylibrary</library-name> <specification-version>2.0</specification-version> <implementation-version>2.0</implementation-version> </library-ref> 다음은정확한버전이필요한경우의예이다. 제 3 장애플리케이션 45
62 <library-ref> <library-name>mylibrary</library-name> <specification-version exact-match="true">2.0</specification-version> <implementation-version exact-match="true">2.1</implementation-version> </library-ref> 다음은정해진스펙버전만설정하는경우의예이다. 이렇게되면해당스펙버전의최상의 implementation 버전을찾게된다. <library-ref> <library-name>mylibrary</library-name> <specification-version exact-match="true">2.0</specification-version> </library-ref> 기본적으로애플리케이션이 deploy될때참조하고있는라이브러리를찾을수없다면 WARNING 로그를보여주지만, deploy는계속진행된다. 만약이런동작을원하지않는다면다음과같이 'failonerror' 속성을설정하여 deploy를실패시킬수있다. <library-ref failonerror="true"> <library-name>mylibrary</library-name> </library-ref> 클래스로딩방식 공유라이브러리의클래스는어느곳에서라이브러리레퍼런스 (reference) 를정의하고있느냐에따라서애플리케이션클래스로더혹은모듈클래스로더에의해서로딩된다. 예를들어, 'lib1' 이 jeus-application-dd.xml에서레퍼런스로정의되었다면 EAR 레벨의애플리케이션클래스로더에의해서로딩된다. 하지만 jeus-web-dd.xml에레퍼런스로정의되었다면웹레벨클래스로더에의해서로딩된다. 각애플리케이션클래스로더에의해로딩된클래스의경우해당애플리케이션에서만국한 (isolated) 되며, 이는라이브러리도동일하게적용된다. 따라서클래스인스턴스는애플리케이션간에공유되지않는다. 참고 서버의클래스로딩방식에대한자세한설명은 JEUS Server 안내서 의 1.4. 클래스로더의구조 를 참고한다. Version Ordering Rule Version은 "6.2.3-b12" 처럼 <fraction_part>(6.2.3) 와 <string(non-fraction)_part>(-b12) 를가질수있다. Version ::= <fraction_part> <string_part> <fraction_part> <string_part> fraction_part ::= <integer> <integer> "." <fraction_part> string_part ::= <non-numeric> <character>* Version을 ordering하는규칙은다음과같다. 46 JEUS Applications & Deployment 안내서
63 <fraction_part> 를먼저수치적으로비교한다. major, minor 순서로비교된다. <fraction_part> 가동일하면 <string_part> 를비교한다. 이때비교는 string 비교방식을따른다. 다음은 ordering 규칙에따른순서의예이다. 6.0 < < b12 < beta < 제 3 장애플리케이션 47
64
65 제 4 장애플리케이션작성및 Deploy 본장에서는 Java EE 애플리케이션파일 (EAR) 을작성하고이를 JEUS 에 deploy 하는방법에대해설명한 다. 또한 JEUS 에서제공하는애플리케이션을 deploy 할수있는툴을사용하여 JEUS 서버에애플리케이 션을 deploy 하는방법과그외관련된작업에대해설명한다 애플리케이션작성 본절에서는작성된각각의모듈을포함하는애플리케이션작성방법에대해서설명한다. jar 유틸리티를 사용해서 Java EE 애플리케이션을직접작성하는방법에대해서만설명한다. EAR 파일을작성하기전에, 우선포함될모듈을작성해야한다. EAR 파일에포함되는모듈은 EJB 모듈 인 JAR 파일과웹애플리케이션모듈인 WAR 파일, 리소스어댑터모듈인 RAR 파일등이있다. 모듈파 일을작성하는자세한내용에대해서는각해당안내서에서다루고있으므로해당안내서를참고한다. 다음은애플리케이션작성환경에대한설명이다. helloear.ear이라는 EAR 파일을작성한다. 이파일은 ejb.jar라는 EJB 모듈과 web.war라는웹애플리케이션모듈, appclient.jar 애플리케이션클라이언트모듈을포함하고있다. 애플리케이션 helloear.ear을먼저도메인의 DAS인 "adminserver" 로 install하고, 서버 "server1" 에 deploy 한다. 다음의순서로애플리케이션을작성한다. 1. EAR 파일에포함될 JAR, WAR, RAR 파일을작성한다. 2. JAR, WAR, RAR 파일과같은디렉터리에서 META-INF 디렉터리를생성한다. 3. application.xml 파일을생성 (EAR 파일의모듈을포함시킨다 ) 해서 META-INF 디렉터리에복사한다. 다음은 application.xml의예이다. <?xml version="1.0" encoding="utf-8"?> <application version="6" xmlns=" xmlns:xsi=" xsi:schemalocation=" <description>application description</description> <display-name>sample application</display-name> <module> <ejb>ejb.jar</ejb> 제 4 장애플리케이션작성및 Deploy 49
66 </module> <module> <web> <web-uri>web.war</web-uri> <context-root>hello</context-root> </web> </module> <module> <java>appclient.jar</java> </module> </application> 4. 다음과같이 jar 유틸리티를사용해서명령을실행하면 helloear.ear 파일이생성된다. > jar cf myapp.ear ejb.jar web.war appclient.jar META-INF 주의 META-INF 디렉터리가대문자인것에주의한다. 소문자로작성할경우에는문제가발생한다 Deploy 명령 콘솔툴, WebAdmin 을통해서제공하는 Deploy 관련툴에서는다음과같은작업들을지원한다. 다음의작 업들은 DeploymentManager 에서수행가능하다. 구분 Distribute Deploy 설명애플리케이션파일을대상서버나클러스터로복사하고, 애플리케이션을서비스하기위한사전작업을한다. 대상으로설정한서버나클러스터중하나라도 Distribute에실패하면전체작업을실패로간주하고 Distribute 에성공한서버에서모두 undeploy한다. 애플리케이션파일을대상서버로복사하고, 애플리케이션을서비스하기위한사전작업을한다. 이작업이성공하면애플리케이션을실행시킨다. 대상으로설정한서버나클러스터중하나라도 Distribute에실패하면전체작업을실패로간주하고 Distribute에성공한서버에서모두 undeploy 한다. Start 작업에서실패한서버가있더라도하나라도서비스가능한상태가 있으면애플리케이션 Start 작업은성공이다. Start 대상서버에 Distribute( 배포 ) 되어있는애플리케이션을동작시키는작업 이다. Start 작업에서실패한서버가있더라도하나라도서비스가능한상 태가있으면애플리케이션 Start 작업은성공이다. 50 JEUS Applications & Deployment 안내서
67 구분 Stop Undeploy Redeploy 설명대상서버에배치되어실행중인애플리케이션을일시정지시키는작업이다. 이때애플리케이션을대상서버에서삭제하지않는다. 또한애플리케이션이름으로 start하거나 redeploy할수도있다. 배치되어실행중인애플리케이션을정지시키고, deploy되어있는대상서버나클러스터에서애플리케이션을제거하는작업이다. deploy되어실행중인애플리케이션의내용이변경된경우에그내용을현재애플리케이션에반영하여다시 deploy하는작업이다. 모든애플리케이션을재배치할때 Deploy 작업이하나라도실패하면모 든애플리케이션은정지된다. 다음작업들은 JEUS 에서만제공하는 Deploy 작업이다. 이작업은콘솔툴이나 WebAdmin 을통해서만해 야한다. 구분 Add Application Target 설명 deploy나 distribute된애플리케이션에대상으로특정서버또는클러스터를추가한다. 이미서비스되고있는애플리케이션을서비스하는대상을확장하려고할때사용하는작업이다. 대상은여러서버또는여러클러스터를설정할수있고, 이작업이대상으로설정한서버나클러스터에서실패한경우전체작업실패로간주하고기존에서비스되고있던서버를제외한새로추가하려는서버에서는모두 undeploy된다. Remove Application Target deploy 나 distribute 된애플리케이션에서대상으로설정된특정서버또는 클러스터를삭제한다. 이미서비스되고있는애플리케이션을서비스하는 대상을축소하려고할때사용하는작업이다. 대상은여러서버또는여러클러스터를설정할수있다 WebAdmin 을사용한애플리케이션제어및모니터링 WebAdmin 은 JEUS 를전반적으로관리하기위해제공되는웹기반의관리툴이다. WebAdmin의왼쪽메뉴에서 [Applications] 를선택하면도메인에존재하는애플리케이션을관리할수있는 Deployed Applications 화면으로이동한다. WebAdmin에서애플리케이션을 deploy하거나새로운애플리케이션을도메인에 install할때또는도메인에존재하는애플리케이션의정보를조회할때모두이화면에서부터시작해야한다. 제 4 장애플리케이션작성및 Deploy 51
68 [ 그림 4.1] WebAdmin Deployed Applications 화면 이제 WebAdmin 을통해앞장에서살펴본 myapp.ear 애플리케이션을도메인에 install, deploy, 조회하는 방법에대해살펴보기로한다. myapp.ear 은 JEUS_HOME/samples 에위치한다. 주의애플리케이션을제어하는작업 (deploy, distribute, undeploy, start, stop) 은도메인에설정변경 Lock 을가져오지않은상태에서만가능하다. 만약 [Lock & Edit] 버튼을통해 Lock을가져온상태라면 [Activate changes] 버튼을선택하여변경중인모든설정을반영하거나, [Undo all changes] 메뉴를선택하여변경했던설정을취소하고난후애플리케이션제어작업을진행해야한다 애플리케이션을도메인에 Install 다음은애플리케이션을도메인에 install하는과정에대한설명이다. 1. WebAdmin의왼쪽메뉴에서 [Applications] 를선택하면 Deployed Applications 화면으로이동한다. 해당화면에서도메인에존재하는애플리케이션의정보를확인할수있다. 애플리케이션목록상단에 [install] 버튼을클릭하면도메인에새로운애플리케이션을 install할수있는화면으로이동한다. 52 JEUS Applications & Deployment 안내서
69 [ 그림 4.2] WebAdmin 에서애플리케이션 Install (1) 2. 다음은 [Install] 버튼을클릭하면나타나는화면이다. 애플리케이션 ID 와애플리케이션파일의경로등 의 install 관련정보를입력하고 [ 확인 ] 버튼을클릭한다. [ 그림 4.3] WebAdmin 에서애플리케이션 Install (2) 제 4 장애플리케이션작성및 Deploy 53
70 다음은설정항목에대한설명이다. 항목 Id Path Force Upgrade 설명 install할애플리케이션에부여할 ID를지정한다. 이값을주지않은경우에는애플리케이션파일이름을변경하여 ID로사용한다. 애플리케이션 ID는입력하지않아도만들어주지만, 관리의편의상입력하는것을권장한다. install할애플리케이션파일의경로를입력한다. [ 찾아보기 ] 버튼으로애플리케이션파일을선택할수있다. 동일한 ID를가진애플리케이션이이미도메인에존재할경우덮어쓸지여부를설정한다. 이미 deploy되어있는애플리케이션내용이변경되어파일을업데이트해야하는경우에사용할수있다. JEUS 6.x 이하버전의 JEUS DD를사용하는경우 JEUS 7.x에맞는 DD로변경할지여부를설정한다. 3. install 작업을마치고나면화면상단에그결과가나타난다. 명령이성공적으로수행되었다면애플리 케이션목록에서해당애플리케이션을확인할수있다. 이때애플리케이션은 INSTALLED 상태가된다. [ 그림 4.4] WebAdmin 에서애플리케이션 Install (3) 도메인에서애플리케이션 Uninstall 애플리케이션이도메인에더이상사용되지않는다면도메인에서삭제할수있다. 애플리케이션이 IN STALLED 상태이거나 DEPLOYED 상태인경우에애플리케이션에 Uninstall 작업을할수있다. 다음은애플리케이션을도메인에서 Uninstall하는과정에대한설명이다. 1. WebAdmin의왼쪽메뉴에서 [Applications] 를선택하면 Deployed Applications 화면으로이동한다. myapp의선택하고애플리케이션목록하단에위치한명령버튼중 [uninstall] 버튼을클릭한다. 54 JEUS Applications & Deployment 안내서
71 [ 그림 4.5] 애플리케이션을도메인에서 Uninstall (1) 2. 다음과같이메시지화면이나타난다. [ 확인 ] 버튼을클릭하면애플리케이션 Uninstall 작업이진행되고, [ 취소 ] 버튼을클릭하면작업은취소되고애플리케이션은그대로 INSTALLED 상태로남아있게된다. [ 그림 4.6] 애플리케이션을도메인에서 Uninstall (2) 3. Uninstall 작업이완료되면화면상단에그결과가나타난다. 명령이성공적으로수행되었다면애플리 케이션목록에서해당애플리케이션에대한정보는확인할수없다. [ 그림 4.7] 애플리케이션을도메인에서 Uninstall (3) 제 4 장애플리케이션작성및 Deploy 55
72 애플리케이션 Deploy install된애플리케이션에 deploy 명령을통해애플리케이션이서비스되도록한다. 본절에서는애플리케이션을 deploy하는 3가지방법에대해설명한다. 도메인에 install한애플리케이션 Deploy 애플리케이션저장소에있는애플리케이션 Deploy path를지정하여 Deploy 도메인에 install 한애플리케이션 Deploy 다음은 WebAdmin에서도메인에 install한애플리케이션을 deploy하는과정에대한설명이다. 1. WebAdmin의왼쪽메뉴에서 [Applications] 를선택하면 Deployed Applications 화면으로이동한다. 애플리케이션목록에서 'myapp' 을선택하고 [deploy] 버튼을클릭한다. [ 그림 4.8] WebAdmin에서애플리케이션 Deploy (1) 2. 'Server' 항목에서 deploy할대상서버인 'server1' 을선택하고 [ 확인 ] 버튼을클릭하면애플리케이션 Deploy가진행된다. 만약 Deploy가아니라 Distribute까지만진행하고싶다면고급선택사항의 'Only Distribute' 항목을체크하고 [ 확인 ] 버튼을클릭한다. 이경우애플리케이션을서비스하기위해서는별도로애플리케이션 Start 작업이필요하다. 56 JEUS Applications & Deployment 안내서
73 [ 그림 4.9] WebAdmin 에서애플리케이션 Deploy (2) 제 4 장애플리케이션작성및 Deploy 57
74 3. Deploy 작업이완료되면화면상단에그결과가나타난다. 명령이성공적으로수행되었다면애플리케이션목록에서보여지는해당애플리케이션의상태는 RUNNING이된다. Distribute만진행했다면애플리케이션의상태는 DISTRIBUTED가된다. [ 그림 4.10] WebAdmin에서애플리케이션 Deploy (3) 애플리케이션저장소에있는애플리케이션 Deploy 애플리케이션저장소를추가하고나면저장소에존재하는애플리케이션을 deploy한다. 애플리케이션저장소의기능과저장소를추가, 삭제하는방법에대한자세한내용은 애플리케이션저장소추가 / 삭제 / 조회 를참고한다. 다음은 WebAdmin으로애플리케이션저장소에있는애플리케이션 deploy하는방법이다. 1. WebAdmin의왼쪽메뉴에서 [Applications] 를선택하면 Deployed Applications 화면으로이동한다. 애플리케이션목록에서 exploded를선택하고 [deploy] 버튼을클릭한다. [ 그림 4.11] WebAdmin에서애플리케이션저장소에있는애플리케이션 Deploy (1) 58 JEUS Applications & Deployment 안내서
75 2. Deploy 방법은도메인에 install된애플리케이션을 deploy하는것과동일하다. 애플리케이션 Deploy 작업이완료되면화면상단에그결과가나타난다. 명령이성공적으로수행되었다면애플리케이션목록에서보여지는해당애플리케이션의상태는 RUNNING이된다. [ 그림 4.12] WebAdmin에서애플리케이션저장소에있는애플리케이션 Deploy (2) path 를지정하여 Deploy 다음은상위디렉터리를애플리케이션저장소로추가할수없는경우에 path 옵션을설정하고 deploy하는방법에대한설명이다. DAS가존재하는머신에있는애플리케이션의절대경로를설정하고 deploy하는기능에대한자세한내용은 1.6. path를지정하여 Deploy 를참고한다. 다음은 WebAdmin으로 path를지정하여 deploy하는방법에대한설명이다. 1. WebAdmin의왼쪽메뉴에서 [Applications] 를선택하면 Deployed Applications 화면으로이동한다. 애플리케이션목록상단에 [deploy] 버튼을클릭하면도메인에새로운애플리케이션을 deploy할수있는화면으로이동한다. 제 4 장애플리케이션작성및 Deploy 59
76 [ 그림 4.13] WebAdmin 으로 path 를지정하여 Deploy (1) 2. 'Path' 항목에 deploy 할애플리케이션이위치하는절대경로를입력한다. [ 입력 ] 버튼을클릭하면 DAS 에존재하는애플리케이션의경로를선택할수있다. [ 그림 4.14] WebAdmin 으로 path 를지정하여 Deploy (2) 'Server' 항목에서 deploy 할대상서버인 'server1' 을선택하고 [ 확인 ] 버튼을클릭하면애플리케이션 Deploy 가진행된다. 60 JEUS Applications & Deployment 안내서
77 [ 그림 4.15] WebAdmin 으로 path 를지정하여 Deploy (3) 필요하다면고급선택사항영역에서 Deploy 옵션을설정할수있다. [ 그림 4.16] WebAdmin 으로 path 를지정하여 Deploy (4) 제 4 장애플리케이션작성및 Deploy 61
78 3. Deploy 작업을마치고나면화면상단에그결과가나타난다. 명령이성공적으로수행되었다면애플리 케이션목록에서보여지는해당애플리케이션의상태는 RUNNING 이된다. [ 그림 4.17] WebAdmin 으로 path 를지정하여 Deploy (5) 애플리케이션 Redeploy 애플리케이션이수정되어서 deploy 명령을통해애플리케이션이서비스되도록할수있다. 자세한내용은 2.2. Graceful Redeployment 를참고한다. 다음은애플리케이션 Redeploy 과정에대한설명이다. 1. WebAdmin의왼쪽메뉴에서 [Applications] 를선택하면 Deployed Applications 화면으로이동한다. 애플리케이션목록에서 'myapp' 을선택하고 [redeploy] 버튼을클릭한다. [ 그림 4.18] WebAdmin에서애플리케이션 Redeploy (1) 2. 'Timeout' 항목에 Graceful Redeploy Timeout 과그외필요한 Redeploy 옵션을설정하고 [ 확인 ] 버튼을 클릭하면애플리케이션 Redeploy 가진행된다. 62 JEUS Applications & Deployment 안내서
79 [ 그림 4.19] WebAdmin 에서애플리케이션 Redeploy (2) 3. Redeploy 작업이완료되면화면상단에그결과가나타난다. [ 그림 4.20] WebAdmin 에서애플리케이션 Redeploy (3) 제 4 장애플리케이션작성및 Deploy 63
80 애플리케이션 Undeploy 도메인에서서비스되고있는애플리케이션서비스를중단하고애플리케이션을내리고싶다면 undeploy 명령을통해가능하다. 다음은애플리케이션을 undeploy하는과정에대한설명이다. 1. WebAdmin의왼쪽메뉴에서 [Applications] 를선택하면 Deployed Applications 화면으로이동한다. 애플리케이션목록에서 'myapp' 을선택하고 [undeploy] 버튼을클릭한다. [ 그림 4.21] WebAdmin에서애플리케이션 Undeploy (1) 2. 'Timeout' 항목을설정해서애플리케이션이처리중인서비스를보장해주도록할수있다. 아무옵션도설정하지않으면 5분동안애플리케이션은처리중인요청이모두완료될때까지 undeploy를진행하지않는다. 다음은 Graceful Undeploy를위해 5분의 Timeout을임의로설정한화면이다. [ 확인 ] 버튼을클릭하면 undeploy가진행된다. 애플리케이션의 Graceful Undeploy에대한설명은 2.1. Graceful Undeployment 를참고한다. [ 그림 4.22] WebAdmin에서애플리케이션 Undeploy (2) 64 JEUS Applications & Deployment 안내서
81 3. Undeploy 작업이완료되면화면상단에그결과가나타난다. 명령이성공적으로수행되었다면애플리 케이션목록에서보여지는해당애플리케이션의상태는 INSTALLED 가된다. [ 그림 4.23] WebAdmin 에서애플리케이션 Undeploy (3) 애플리케이션시작 애플리케이션을 deploy할때 'Only Distribute' 옵션을주고 Distribute만수행했거나, 서비스중인애플리케이션을 stop 명령을수행하여 DISTRIBUTED 상태인애플리케이션을다시서비스하도록하려면 Start 작업을수행해야한다. 다음은중지된애플리케이션이서비스를시작하도록하는과정 (start) 에대한설명이다. 1. WebAdmin의왼쪽메뉴에서 [Applications] 를선택하면 Deployed Applications 화면으로이동한다. 애플리케이션목록에서 STRIBUTED 상태인애플리케이션 'myapp' 을선택하고 [start] 버튼을클릭한다. [ 그림 4.24] WebAdmin에서애플리케이션 start (1) 제 4 장애플리케이션작성및 Deploy 65
82 2. 애플리케이션 Start 작업이완료되면화면상단에그결과가나타난다. 명령이성공적으로수행되었다 면애플리케이션목록에서보여지는해당애플리케이션의상태는 RUNNING 이된다. [ 그림 4.25] WebAdmin 에서애플리케이션 start (2) 애플리케이션중지 서비스중인애플리케이션에 stop 명령을수행하여애플리케이션서비스를잠시중지할수있다. 다음은애플리케이션이서비스를중지하는과정 (stop) 에대한설명이다. 1. WebAdmin의왼쪽메뉴에서 [Applications] 를선택하면 Deployed Applications 화면으로이동한다. 애플리케이션목록에서 'myapp' 을선택하고 [stop] 버튼을클릭한다. [ 그림 4.26] WebAdmin에서애플리케이션 stop (1) 66 JEUS Applications & Deployment 안내서
83 2. 다음과같은메시지화면이나타난다. [ 확인 ] 버튼을클릭하면애플리케이션의서비스가중지되어이후에들어오는요청에대해서는처리되지않는다. [ 취소 ] 버튼을클릭하면애플리케이션서비스중지작업은취소된다. [ 그림 4.27] WebAdmin에서애플리케이션 stop (2) 3. 애플리케이션 Stop 작업이완료되면화면상단에그결과가나타난다. 명령이성공적으로수행되었다 면애플리케이션목록에서보여지는해당애플리케이션의상태는 DISTRIBUTED 가된다. [ 그림 4.28] WebAdmin 에서애플리케이션 stop (3) 서비스중인애플리케이션에서버추가 애플리케이션서비스를확장하기위해애플리케이션을서비스할대상에서버나클러스터를추가하는기능을제공한다. 이미도메인에존재하는애플리케이션을특정서버에만 deploy할수는없기때문에서비스대상을추가 (add-target) 하는별도의명령을지원한다. 애플리케이션에서비스대상을추가하는명령 (add-target) 은애플리케이션이 RUNNING 상태이거나 DISTRIBUTED 상태일때가능하다. 참고 애플리케이션서비스대상에서버를추가하려면서버가하나더존재해야한다. 서버를추가하는방 법은 JEUS Server 안내서 의 2.2. 서버추가 를참고한다. 제 4 장애플리케이션작성및 Deploy 67
84 다음은서비스중인애플리케이션에서버를추가하는과정에대한설명이다. 1. WebAdmin의왼쪽메뉴에서 [Applications] 를선택하면 Deployed Applications 화면으로이동한다. 애플리케이션목록에서 'myapp' 의 [add-target] 버튼을클릭한다. [ 그림 4.29] WebAdmin에서서비스중인애플리케이션에서버추가 (1) 2. 'Server' 항목에서애플리케이션서비스대상에추가할서버인 'server2' 를선택하고 [ 확인 ] 버튼을클릭 하면해당서버에애플리케이션 Deploy 가진행된다. [ 그림 4.30] WebAdmin 에서서비스중인애플리케이션에서버추가 (2) 68 JEUS Applications & Deployment 안내서
85 3. Deploy 대상추가작업이완료되면화면상단에그결과가나타난다. [ 그림 4.31] WebAdmin 에서서비스중인애플리케이션에서버추가 (3) 4. 명령이성공적으로수행되었다면애플리케이션목록에서해당애플리케이션을선택하여 'Server' 와 'Running Servers' 항목에 server2 가추가되어있는것을확인할수있다. [ 그림 4.32] WebAdmin 에서서비스중인애플리케이션에서버추가 (4) 제 4 장애플리케이션작성및 Deploy 69
86 서비스중인애플리케이션에서서비스중인서버삭제 애플리케이션서비스를축소하기위해애플리케이션을서비스하고있는대상에서서버나클러스터를삭제하는기능을제공한다. 이미도메인에존재하는애플리케이션을특정서버에만 undeploy할수없기때문에서비스대상을삭제 (remove-target) 하는별도의명령을지원한다. 애플리케이션에서비스대상을삭제하는명령은애플리케이션이 RUNNING 상태또는 DISTRIBUTED 상태일때가능하다. 다음은서비스중인애플리케이션에서서비스중인서버를삭제하는과정에대한설명이다. 1. WebAdmin의왼쪽메뉴에서 [Applications] 를선택하면 Deployed Applications 화면으로이동한다. 애플리케이션목록에서 'myapp' 의 [remove-target] 버튼을클릭한다. [ 그림 4.33] WebAdmin에서서비스중인애플리케이션에서버삭제 (1) 2. 'Server' 항목에서더이상애플리케이션서비스를하지않은서버인 'server2' 를선택하고 [ 확인 ] 버튼 을클릭하면해당서버에만애플리케이션 Undeploy 가진행된다. [ 그림 4.34] WebAdmin 에서서비스중인애플리케이션에서버삭제 (2) 70 JEUS Applications & Deployment 안내서
87 3. 애플리케이션서비스대상삭제작업이완료되면화면상단에그결과가나타난다. [ 그림 4.35] WebAdmin 에서서비스중인애플리케이션에서버삭제 (3) 4. 명령이성공적으로수행되었다면애플리케이션목록에서해당애플리케이션을선택하여 'Servers' 와 'Running Servers' 항목에 'server2' 가삭제된것을확인할수있다. [ 그림 4.36] WebAdmin 에서서비스중인애플리케이션에서버삭제 (4) 제 4 장애플리케이션작성및 Deploy 71
88 애플리케이션정보확인 WebAdmin에서는애플리케이션에대해서다음의두가지의정보를확인할수있다. 애플리케이션이어떻게 deploy되어있는가? 애플리케이션이어떻게구성되어있는가? 애플리케이션의 Deploy 정보확인 애플리케이션이어떤서버나클러스터에어떤속성으로 deploy 되어있는지를확인할수있다. 다음은 WebAdmin에서애플리케이션의 Deploy 정보를확인하는방법이다. 1. WebAdmin의왼쪽메뉴에서 [Applications] 를선택하면 Deppoyed Application 화면으로이동한다. 애플리케이션목록에서애플리케이션 ID('myApp') 를클릭하면애플리케이션정보를확인할수있다. [ 그림 4.37] WebAdmin에서서비스중인애플리케이션의 Deploy 정보확인 (1) 72 JEUS Applications & Deployment 안내서
89 2. 확인할수있는정보는애플리케이션의 ID, 애플리케이션이 DAS 상위치하고있는경로, 애플리케이션타입, 그리고 JEUS에서제공하는 deploy할때설정하는옵션정보들이다. deploy 옵션에대한자세한설명은 WebAdmin에서항목설명이나 JEUS Reference Book 의 deploy-application 을참고한다. [ 그림 4.38] WebAdmin에서서비스중인애플리케이션의 Deploy 정보확인 (2) 애플리케이션구성모듈정보확인 애플리케이션이어떻게구성되어있는지실제애플리케이션의모듈정보를확인할수있다. EAR일경우에는 EAR 애플리케이션을구성하고있는모듈리스트를확인할수있다. 애플리케이션을구성하는모듈중하나를선택하면해당모듈에대한자세한구성정보를확인할수있다. 이정보는 EJB나웹모듈에대해서만확인가능하다. EJB 모듈을선택하면 EJB Bean 리스트를확인할수있고, 웹모듈을선택하면서블릿리스트를확인할수있다. WebAdmin 의왼쪽메뉴에서 [Applications] 를선택하면 Deppoyed Application 화면으로이동한다. 애 플리케이션목록에서애플리케이션 ID('myApp') 를클릭한후애플리케이션정보의 'Running Server' 에 서 server1 을클릭한다. 제 4 장애플리케이션작성및 Deploy 73
90 server1 을선택하면 EAR 애플리케이션을구성하고있는모듈리스트를확인할수있다. [ 그림 4.39] WebAdmin 에서 EAR 애플리케이션구성정보확인 EAR 애플리케이션인경우에는위와같이애플리케이션을구성하는모듈리스트를확인할수있을뿐만 아니라애플리케이션을구성하고있는 EJB 모듈과 WEB 모듈의정보도확인할수있다. 참고 모듈의정보는 EJB 나 WEB 일경우에만확인할수있다. 클라이언트모듈이나리소스모듈인경우에 는모듈정보를확인하는기능을제공하지않는다. EJB 모듈정보확인다음은 EAR 애플리케이션인 'myapp' 를구성하고있는 EJB 모듈 'ejb' 에대한정보를확인하는방법이다. 1. 애플리케이션 'myapp' 의모듈목록에서 'ejb' 를선택하면 EJB 모듈을구성하고있는 Bean 리스트를확인할수있다. 74 JEUS Applications & Deployment 안내서
91 [ 그림 4.40] WebAdmin 에서 EJB 모듈정보확인 2. 모듈 'ejb' 의 Bean 목록에서 'HelloBean' 을선택해서 HelloBean 의 Bean 정보를확인할수있다. [ 그림 4.41] WebAdmin 에서 EJB 모듈의 Bean 정보확인 제 4 장애플리케이션작성및 Deploy 75
92 WEB 모듈정보확인다음은 EAR 애플리케이션인 'myapp' 를구성하고있는 WEB 모듈 'web' 에대한정보를확인하는방법이다. 1. 애플리케이션 'myapp' 의모듈목록에서 'web' 을선택하면웹모듈을구성하고있는서블릿리스트를확인할수있다. [ 그림 4.42] WebAdmin에서 WEB 모듈의서블릿정보확인 76 JEUS Applications & Deployment 안내서
93 2. 'Command' 컬럼의 [thread-info] 버튼을클릭하면 WEB 모듈의요청스레드에대한정보를확인할 수있다. [ 그림 4.43] WebAdmin 에서 WEB 모듈의서블릿요청스레드정보확인 4.4. 콘솔툴을이용한애플리케이션제어및모니터링 본절에서는콘솔툴명령어중애플리케이션 Deploy 에관련된명령어와이를통해애플리케이션을 deploy 하는방법에대해서설명한다 관련명령어 JEUS를직접관리할수있는콘솔툴을통해 DAS에연결하여서버나클러스터의제어및모니터링을할수있으며, 애플리케이션을 deploy할수도있다. 다음은콘솔툴에서사용하는애플리케이션의 Deploy 관련명령어이다. 제 4 장애플리케이션작성및 Deploy 77
94 [ 표 4.1] 애플리케이션관련명령어 명령어 distribute-application deploy-application 설명애플리케이션을 deploy할수있도록배치대상에애플리케이션을복사하고, 애플리케이션서비스를위한사전준비작업을한다. 애플리케이션을 deploy한다. Deploy란 Deploy 대상에애플리케이션을복사하고 (Distribute), 애플리케이션의서비스를시작 (Start) 하는것이다. Deploy가성공적으로완료되면 RUNNING 상태가되며, Distribute 완료후서비스단계에서장애가발생하면 DISTRIBUTED 상태에머물러있다. start-application stop-application redeploy-application undeploy-application application-info add-application-target remove-application-target DISTRIBUTED 상태에있는애플리케이션을실행한다. 작업이수행되는동안에는 STARTING 상태로성공적으로완료되면 RUNNING 상태가된다. RUNNING 상태에있는애플리케이션을정지한다. 작업이수행되는동안에는 STOPPING 상태로성공적으로완료되면 DISTRIBUTED 상태가된다. Deploy가완료된애플리케이션에변경된내용이있는경우변경내용을반영하여다시 deploy한다. Deploy와같은단계로이루어지며각단계에서의상태또한같다. 애플리케이션서비스를종료하고배치대상에서애플리케이션을제거한다. 도메인에존재하는애플리케이션의정보를출력한다. deploy되어있는애플리케이션에서비스대상을추가한다. 서비스대상은서버나클러스터가될수있다. deploy되어있는애플리케이션에서서비스대상을삭제한다. 서비스대상은서버나클러스터가될수있다. 참고 콘솔툴에대한설명및각명령어에대한자세한내용은 JEUS Reference Book 의 4.2. jeusadmin 을참고한다 애플리케이션 Deploy 콘솔툴을통한 Run-time Deploy 방법은다음의사항을가정하여설명한다. 애플리케이션은 4.1. 애플리케이션작성 에서작성한 MyApp.ear을사용한다. JEUS의도메인이름은 'domain1' 이고, 애플리케이션을 deploy할서버는 'server1' 이다. 참고 deploy-application 명령을수행할때사용할수있는옵션에대한자세한내용은 JEUS Reference Book 의 deploy-application 을참고한다. 78 JEUS Applications & Deployment 안내서
95 JEUS에서는콘솔툴에서애플리케이션을 Run-time Deploy할경우애플리케이션의위치에따라다음의 3가지방법을제공한다. 각방법은 deploy, stop, start, redeploy, undeploy의순서대로 deploy 명령어를실행하며, 각명령어를실행한뒤에는 applist를수행하여각단계에서의애플리케이션상태를확인한다. 도메인에 install한애플리케이션 Deploy 애플리케이션저장소에있는애플리케이션 Deploy path를지정하여 Deploy 도메인에 install 한애플리케이션 Deploy install-application 명령을통해애플리케이션을도메인에 install하여 INSTALL_HOME(DOMAIN_HOME/.ap plications) 에위치시킨다. 이때애플리케이션의 ID를옵션으로줄수있다. ID를주지않은경우는 MyApp_ear이애플리케이션의 ID 가된다. 애플리케이션이도메인에 install되고난후에 deploy-application 명령어를사용해대상서버에애플리케이션을 deploy한다. [ 예 4.1] 콘솔툴에서도메인에 install한애플리케이션 Deploy using deploy command for application with install application [DAS]domain1.adminServer>install-application -id MyApp /usr/apphome/myapp.ear succeed to install application[myapp] [DAS]domain1.adminServer>application-info Application Information In Domain [domain1] ================================================================================================================================== Application ID Application Type State Server Targets Cluster Targets Application Path MyApp INSTALLED ${INSTALL_HOME}/MyApp.ear ================================================================================================================================== [DAS]domain1.adminServer>deploy MyApp -servers server1 succeeded to deploy application : MyApp [DAS]domain1.adminServer>application-info Application Information In Domain [domain1] ================================================================================================================================== Application ID Application Type State Server Targets Cluster Targets Application Path 제 4 장애플리케이션작성및 Deploy 79
96 MyApp EAR INSTALLED server1 ${INSTALL_HOME}/MyApp.ear ================================================================================================================================== [DAS]domain1.adminServer>stop-application MyApp succeeded to stop application : MyApp [DAS]domain1.adminServer>application-info Application Information In Domain [domain1] ================================================================================================================================== Application ID Application Type State Server Targets Cluster Targets Application Path MyApp EAR DISTRIBUTED server1 ${INSTALL_HOME}/MyApp.ear ================================================================================================================================== [DAS]domain1.adminServer>start-application MyApp succeeded to start application : MyApp [DAS]domain1.adminServer>application-info Application Information In Domain [domain1] ================================================================================================================================== Application ID Application Type State Server Targets Cluster Targets Application Path MyApp EAR RUNNING server1 ${INSTALL_HOME}/MyApp.ear ================================================================================================================================== [DAS]domain1.adminServer>redeploy-application MyApp succeeded to redeploy application on das : MyApp [DAS]domain1.adminServer>application-info Application Information In Domain [domain1] ================================================================================================================================== Application ID Application Type State Server Targets Cluster Targets Application Path MyApp EAR RUNNING server1 80 JEUS Applications & Deployment 안내서
97 ${INSTALL_HOME}/MyApp.ear ================================================================================================================================== [DAS]domain1.adminServer>undeploy MyApp Undeploying [MyApp] (This may take time due to graceful undeployment)... succeeded to undeploy application : MyApp successfully undeployed (elapsed = 641ms) [DAS]domain1.adminServer>application-info Application Information In Domain [domain1] ================================================================================================================================== Application ID Application Type State Server Targets Cluster Targets Application Path MyApp EAR INSTALLED ${INSTALL_HOME}/MyApp.ear ================================================================================================================================== [DAS]domain1.adminServer>uninstall-application MyApp success to delete [MyApp] [DAS]domain1.adminServer>application-info applications do not exist in this domain Application Information In Domain [domain1] ================================================================================================================================== Application ID Application Type State Server Targets Cluster Targets Application Path (No data available) ================================================================================================================================== 애플리케이션저장소에있는애플리케이션 Deploy 애플리케이션저장소를추가하고나면저장소에존재하는애플리케이션을 Deploy한다. 애플리케이션저장소의기능과저장소를추가, 삭제하는방법에대한자세한내용은 애플리케이션저장소추가 / 삭제 / 조회 를참고한다. 다음은콘솔툴을사용해서애플리케이션저장소에있는애플리케이션 deploy하는예제이다. [ 예 4.2] 콘솔툴에서애플리케이션저장소에있는애플리케이션 Deploy [DAS]domain1.adminServer>add-application-repository /apps/test performed to MODIFY add application repository successfully. 제 4 장애플리케이션작성및 Deploy 81
98 you can check out results using "add-application-repository or list-application-repositories" [DAS]domain1.suok>list-application-repositories Application Repositories ================================================================================================================================== Path of Application Repository /apps/test ================================================================================================================================== [DAS]domain1.adminServer>application-info Application Information In Domain [domain1] ================================================================================================================================== Application ID Application Type State Server Targets Cluster Targets Application Path exploded INSTALLED /apps/test/exploded ================================================================================================================================== [DAS]domain1.adminServer>deploy exploded -servers server1 succeeded to deploy application : exploded [DAS]domain1.adminServer>application-info Application Information In Domain [domain1] ================================================================================================================================== Application ID Application Type State Server Targets Cluster Targets Application Path exploded EAR RUNNING server1 /apps/test/exploded ================================================================================================================================== 82 JEUS Applications & Deployment 안내서
99 path 를지정하여 Deploy 다음은상위디렉터리를애플리케이션저장소로추가할수없는경우에 path 옵션을설정하고 deploy하는방법에대한설명이다. DAS가존재하는머신에있는애플리케이션의절대경로를설정하고 deploy하는기능에대한자세한내용은 1.6. path를지정하여 Deploy 를참고한다. 다음은콘솔툴을사용해서 path를지정하여 Deploy하는방법이다. [ 예 4.3] 콘솔툴에서 path를지정하여 Deploy [DAS]domain1.adminServer>deploy -path /apps/examples.ear -servers server1 succeeded to deploy application : /home/user1/test.ear [DAS]domain1.adminServer>application-info Application Information In Domain [domain1] ================================================================================================================================== Application ID Application Type State Server Targets Cluster Targets Application Path examples.ear EAR RUNNING server1 /apps/examples.ear ================================================================================================================================== 애플리케이션정보확인 콘솔툴의 application-info 명령어를통해 MyApp.ear 애플리케이션에대한정보를조회할수있다. 다음은콘솔툴에서애플리케이션정보를확인하는예제이다. 각옵션에대한자세한설명은 JEUS Ref erence Book 의 application-info 를참조한다. [ 예 4.4] 콘솔툴에서애플리케이션정보확인 [DAS]domain1.adminServer> application-info Application Information In Domain [domain1] ================================================================================================================================== Application ID Application Type State Server Targets Cluster Targets Application Path MyApp EAR RUNNING server1 ${INSTALL_HOME}/MyApp.ear ================================================================================================================================== [DAS]domain1.adminServer>application-info -id MyApp -server server1 Application Information In Server [server1] of Domain [domain1] 제 4 장애플리케이션작성및 Deploy 83
100 ================================================================================================================================== Application ID Application Name Application Type State Server Targets Cluster Targets MyApp MyApp ear RUNNING server ================================================================================================================================== [DAS]domain1.adminServer>application-info -id MyApp -server server1 -detail application name : MyApp application [MyApp] ================================================================================================================================== Module Name Module Type ejb EJB appclient CAR web WAR if you want to show detail information of EJB or WEB module in ear, please do command with option "-module" or "-type" ================================================================================================================================== [DAS]domain1.adminServer>application-info -id MyApp -server server1 -detail -module ejb application name : MyApp module name : ejb ================================================================================================================================== Bean Name Type Local Export Name Remote Export Name HelloBean StatelessSessionBean HelloBean ================================================================================================================================== [DAS]domain1.adminServer>application-info -id MyApp -server server1 -detail -type war application name : MyApp 84 JEUS Applications & Deployment 안내서
101 Servlets ================================================================================================================================== Name Class State Count Attr RegType URLPatterns HelloServlet HelloServlet READY 0 SYNC WEB_XML /HelloServlet ================================================================================================================================== Filters ================================================================================================================================== Name Class Attr RegType URLPatterns Servlets (No data available) ================================================================================================================================== Listeners ================================================================================================================================== Name Type RegType (No data available) ================================================================================================================================== [DAS]domain1.suok>application-info -id MyApp -server server1 -detail -module ejb -bean HelloBean application name : MyApp module name : ejb bean : HelloBean ================================================================================================================================== Name (Count) WaterMark(High:Low:Cur) Bound(Upper:Lower) Time(Max:Min:Total) total-remote-thread thread(100:100:100) rolledback transaction(0) request request(0) remove times(0) 제 4 장애플리케이션작성및 Deploy 85
102 timed-rb transaction(0) active-bean bean(0:0:0) comitted transaction(0) create times(0) MethodReadyCount bean(0:0:0) total-bean bean(0:0:0) active-thread thread(0:0:0) ================================================================================================================================== application-info 명령은도메인에존재하는모든애플리케이션의정보를출력한다. 기본적으로출력되는 정보는다음과같다. 항목 Application ID Applicatio Type 설명 애플리케이션의 ID 이다. 이값은도메인에서유일해야한다. 애플리케이션의종류로 5 가지중하나가될수있다. EAR : 애플리케이션 EJB : EJB 모듈 WAR : 웹애플리케이션모듈 RAR : 리소스어댑터모듈 CAR : 애플리케이션클라이언트모듈 state Server Target Cluster Target Application Path 애플리케이션이도메인에서의상태로 4가지 (INSTALLED, DISTRIBUTED, RUNNING, DEPLOYED) 중하나가될수있다. 각상태에대한자세한설명은 애플리케이션상태 를참고한다. 애플리케이션이 deploy되어있는대상서버이다. 애플리케이션이 deploy되어있는대상클러스터이다. DAS에존재하는애플리케이션파일의경로를나타낸다 86 JEUS Applications & Deployment 안내서
103 4.5. Staging Mode Deploy exploded 모듈형태의애플리케이션은파일을압축하여다른머신의 MS에 deploy할수있다. 이를 Staging Mode Deploy라고한다. 애플리케이션파일이애플리케이션저장소에위치하거나 DAS가존재하는머신에있는절대경로를설정하고 deploy할수있다. Staging Mode Deploy 기능에대한자세한내용은 1.7. Staging Mode Deploy 를참고한다. WebAdmin 사용 다음은 WebAdmin을사용해서 path를지정하여 deploy하는방법에대한설명이다. 1. WebAdmin의왼쪽메뉴에서 [Applications] 를선택하면 Deployed Applications 화면으로이동한다. 애플리케이션목록에서 'exploded' 를선택하고 [deploy] 버튼을클릭한다. [ 그림 4.44] WebAdmin - Staging Mode Deploy (1) 제 4 장애플리케이션작성및 Deploy 87
104 2. 'Server' 항목에서 deploy할대상서버인 server1을선택하고 [ 확인 ] 버튼을클릭하면애플리케이션 Deploy가진행된다. ([ 그림 4.9] 참고 ) Deploy 정보입력화면의고급선택사항에서 'Staging' 항목을체크한다. [ 그림 4.45] WebAdmin - Staging Mode Deploy (2) 3. Deploy 작업이완료되면화면상단에그결과가나타난다. 명령이성공적으로수행되었다면애플리케 이션목록에서해당애플리케이션의상태는 RUNNING 이된다. [ 그림 4.46] WebAdmin - Staging Mode Deploy (3) 88 JEUS Applications & Deployment 안내서
Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc
NTAS and FRAME BUILDER Install Guide NTAS and FRAME BUILDER Version 2.5 Copyright 2003 Ari System, Inc. All Rights reserved. NTAS and FRAME BUILDER are trademarks or registered trademarks of Ari System,
More informationTmax
Tmax JTmaxServer User Guide Tmax v5.0 SP1 Copyright 2009 TmaxSoft Co., Ltd. All Rights Reserved. Copyright Notice Copyright 2009 TmaxSoft Co., Ltd. All Rights Reserved. 대한민국경기도성남시분당구서현동 263 분당스퀘어 (AK 프라자
More information목차 1. 노드매니저종류 Java Type SSH Type 노드설정파일및로깅 nodes.xml jeusnm.properties <servername>.properties...
개발및운영 JEUS7 Node Manager 가이드 2014. 12. 15 목차 1. 노드매니저종류... 3 1.1 Java Type... 3 1.2 SSH Type... 3 2. 노드설정파일및로깅... 3 2.1 nodes.xml... 3 2.2 jeusnm.properties... 4 2.3 .properties... 4 2.4 JeusNodeManager.log...
More information[JEUS 7] eclipse plug-in 연동 1. 개요 Eclipse 와 JEUS 7 연동시필요한 plug-in 제공및환경설정에관한가이드제공하여 Eclipse 에서 JEUS 7 기동및 종료테스트할수있는방법을기술하였습니다. 2. Plug-in 설치 2.1 [Step
기타지식 [JEUS 7.0] eclipse plug-in 연동 2015. 06. 09 [JEUS 7] eclipse plug-in 연동 1. 개요 Eclipse 와 JEUS 7 연동시필요한 plug-in 제공및환경설정에관한가이드제공하여 Eclipse 에서 JEUS 7 기동및 종료테스트할수있는방법을기술하였습니다. 2. Plug-in 설치 2.1 [Step. 1]
More informationMicrosoft Word - AnyLink Introduction v3.2.3.doc
Copyright 2007 Tmax Soft Co., Ltd. All Rights Reserved. AnyLInk Copyright Notice Copyright 2007 Tmax Soft Co., Ltd. All Rights Reserved. Tmax Soft Co., Ltd. 대한민국서울시강남구대치동 946-1 글라스타워 18 층우 )135-708 Restricted
More informationWindows 8에서 BioStar 1 설치하기
/ 콘텐츠 테이블... PC에 BioStar 1 설치 방법... Microsoft SQL Server 2012 Express 설치하기... Running SQL 2012 Express Studio... DBSetup.exe 설정하기... BioStar 서버와 클라이언트 시작하기... 1 1 2 2 6 7 1/11 BioStar 1, Windows 8 BioStar
More informationMicrosoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx
To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 Eclipse (IDE) JDK Android SDK with ADT IDE: Integrated Development Environment JDK: Java Development Kit (Java SDK) ADT: Android Development Tools 2 JDK 설치 Eclipse
More information목차 JEUS EJB Session Bean가이드 stateful session bean stateful sample 가이드 sample source 결과확인 http session에
개념정리및샘플예제 EJB stateful sample 문서 2016. 01. 14 목차 JEUS EJB Session Bean가이드... 3 1. stateful session bean... 3 1.1 stateful sample 가이드... 3 1.1.1 sample source... 3 1.1.2 결과확인... 6 1.2 http session에서사용하기...
More information개발및운영 Tibero DB Link (Tibero To Oracle) - Local 방식
Tibero DB Link (Tibero To Oracle) - Local 방식 2014. 04. 16. 목차 1. 구성환경... 3 2. 환경설정... 3 2.1. Tibero 서버 (AIX) 에 Oracle instance Client 파일을업로드... 3 2.2. Oracle Instance Client에대한환경설정등록 (.profile)... 4 2.3.
More informationMicrosoft Word - src.doc
IPTV 서비스탐색및콘텐츠가이드 RI 시스템운용매뉴얼 목차 1. 서버설정방법... 5 1.1. 서비스탐색서버설정... 5 1.2. 컨텐츠가이드서버설정... 6 2. 서버운용방법... 7 2.1. 서비스탐색서버운용... 7 2.1.1. 서비스가이드서버실행... 7 2.1.2. 서비스가이드정보확인... 8 2.1.3. 서비스가이드정보추가... 9 2.1.4. 서비스가이드정보삭제...
More informationIntro to Servlet, EJB, JSP, WS
! Introduction to J2EE (2) - EJB, Web Services J2EE iseminar.. 1544-3355 ( ) iseminar Chat. 1 Who Are We? Business Solutions Consultant Oracle Application Server 10g Business Solutions Consultant Oracle10g
More informationTibero
Tibero 클라이언트설치가이드 Copyright 2013 TmaxData Co., Ltd. All Rights Reserved. Copyright Notice Copyright 2013 TmaxData Co., Ltd. All Rights Reserved. 대한민국경기도성남시분당구황새울로 329 번길 5 티맥스빌딩우 ) 463-824 Restricted Rights
More information기술교육 Architecture & Monitoring
Architecture & Monitoring 2014. 12. 05 목차 Architecture... 3 1. 개요... 3 1.1 JEUS7 Spec... 3 1.2 도메인아키텍처... 3 2. 구성요소... 4 2.1 Domain Administration Server(DAS)... 5 2.2 Managed Server(MS)... 5 2.3 Cluster...
More information개요오라클과티베로에서 JDBC 를통해접속한세션을구분할수있도록 JDBC 접속시 ConnectionProperties 를통해구분자를넣어줄수있다. 하나의 Node 에다수의 WAS 가있을경우 DB 에서 Session Kill 등의동작수행시원하는 Session 을선택할수있다.
설치및환경설정 JDBC 접속세션구분 / 확인 2013. 11. 01 개요오라클과티베로에서 JDBC 를통해접속한세션을구분할수있도록 JDBC 접속시 ConnectionProperties 를통해구분자를넣어줄수있다. 하나의 Node 에다수의 WAS 가있을경우 DB 에서 Session Kill 등의동작수행시원하는 Session 을선택할수있다. 사용하기 JEUS 에서설정방법
More information표준프레임워크 Nexus 및 CI 환경구축가이드 Version 3.8 Page 1
표준프레임워크 Nexus 및 CI 환경구축가이드 Version 3.8 Page 1 Index 1. 표준프레임워크 EGOVCI 팩키지설치... 3 1.1 개요... 3 1.2 EGOVCI 압축풀기... 3 1.3 EGOVCI 시스템구성... 3 1.4 CI 시스템구동 (START/STOP)... 4 2. NEXUS 설정정보... 6 2.1 NEXUS 서버구동
More informationCloud Friendly System Architecture
-Service Clients Administrator 1. -Service 구성도 : ( 좌측참고 ) LB(LoadBlancer) 2. -Service 개요 ucloud Virtual Router F/W Monitoring 개념 특징 적용가능분야 Server, WAS, DB 로구성되어 web service 를클라우드환경에서제공하기위한 service architecture
More informationInterstage5 SOAP서비스 설정 가이드
Interstage 5 Application Server ( Solaris ) SOAP Service Internet Sample Test SOAP Server Application SOAP Client Application CORBA/SOAP Server Gateway CORBA/SOAP Gateway Client INTERSTAGE SOAP Service
More informationMicrosoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx
To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 개발환경구조및설치순서 JDK 설치 Eclipse 설치 안드로이드 SDK 설치 ADT(Androd Development Tools) 설치 AVD(Android Virtual Device) 생성 Hello Android! 2 Eclipse (IDE) JDK Android SDK with
More information개발및운영 Tibero Perl 연동
Tibero Perl 연동 2014. 05. 27. 목차 1. Windows에서의홖경구성... 3 1.1 Tibero ODBC Driver 설치... 3 1.2. Tool 설치... 5 2. Unix에서의홖경구성... 6 2.1 iodbc 설치... 7 2.2 Tibero 설치... 7 2.3 Iodbc drvier manager 등록... 7 3. Tibero
More informationuntitled
Push... 2 Push... 4 Push... 5 Push... 13 Push... 15 1 FORCS Co., LTD A Leader of Enterprise e-business Solution Push (Daemon ), Push Push Observer. Push., Observer. Session. Thread Thread. Observer ID.
More informationAdmin Guide for dummy
Admin Guide for dummy WebLogic Server 8.1 sp2 for Windows Contents 1. Installation 2. Domain & Server Configuration Configuration Wizard Administrative Server Configuration Managed Server Configuration
More informationNo Slide Title
J2EE J2EE(Java 2 Enterprise Edition) (Web Services) :,, SOAP: Simple Object Access Protocol WSDL: Web Service Description Language UDDI: Universal Discovery, Description & Integration 4. (XML Protocol
More information[Brochure] KOR_TunA
LG CNS LG CNS APM (TunA) LG CNS APM (TunA) 어플리케이션의 성능 개선을 위한 직관적이고 심플한 APM 솔루션 APM 이란? Application Performance Management 란? 사용자 관점 그리고 비즈니스 관점에서 실제 서비스되고 있는 어플리케이션의 성능 관리 체계입니다. 이를 위해서는 신속한 장애 지점 파악 /
More information개발및운영 Eclipse 를이용한 ANT 활용방법
Eclipse 를이용한 ANT 활용방법 2014. 04. 09 목차 Eclipse를이용한 ANT 활용방법... 3 1. ant 사용전준비사항... 3 1.1 ant Install... 3 1.2 Java Project 생성... 5 2. ant 활용방법... 10 2.1 ant project 생성... 10 3. ant 설정... 13 3.1 ant directory...
More information교육2 ? 그림
Interstage 5 Apworks EJB Application Internet Revision History Edition Date Author Reviewed by Remarks 1 2002/10/11 2 2003/05/19 3 2003/06/18 EJB 4 2003/09/25 Apworks5.1 [ Stateless Session Bean ] ApworksJava,
More information°æÁ¦Àü¸Á-µ¼º¸.PDF
www.keri.org i ii iii iv v vi vii viii ix x xi xii xiii xiv xv 3 4 5 6 7 8 9 10 11 12 13 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 47 48 49 50 51 52 53
More informationTablespace On-Offline 테이블스페이스 온라인/오프라인
2018/11/10 12:06 1/2 Tablespace On-Offline 테이블스페이스온라인 / 오프라인 목차 Tablespace On-Offline 테이블스페이스온라인 / 오프라인... 1 일반테이블스페이스 (TABLESPACE)... 1 일반테이블스페이스생성하기... 1 테이블스페이스조회하기... 1 테이블스페이스에데이터파일 (DATA FILE) 추가
More informationBusiness Agility () Dynamic ebusiness, RTE (Real-Time Enterprise) IT Web Services c c WE-SDS (Web Services Enabled SDS) SDS SDS Service-riented Architecture Web Services ( ) ( ) ( ) / c IT / Service- Service-
More informationAPI 매뉴얼
PCI-DIO12 API Programming (Rev 1.0) Windows, Windows2000, Windows NT and Windows XP are trademarks of Microsoft. We acknowledge that the trademarks or service names of all other organizations mentioned
More information목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate
ALTIBASE HDB 6.1.1.5.6 Patch Notes 목차 BUG-39240 offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG-41443 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate 한뒤, hash partition
More information[Brochure] KOR_LENA WAS_
LENA Web Application Server LENA Web Application Server 빠르고확장가능하며장애를선대응할수있는운영중심의고효율차세대 Why 클라우드환경과데이터센터운영의노하우가결집되어편리한 관리기능과대용량트랜잭션을빠르고쉽게구현함으로고객의 IT Ownership을강화하였습니다. 고객의고민사항 전통 의 Issue Complexity Over
More information슬라이드 1
- 1 - 전자정부모바일표준프레임워크실습 LAB 개발환경 실습목차 LAB 1-1 모바일프로젝트생성실습 LAB 1-2 모바일사이트템플릿프로젝트생성실습 LAB 1-3 모바일공통컴포넌트생성및조립도구실습 - 2 - LAB 1-1 모바일프로젝트생성실습 (1/2) Step 1-1-01. 구현도구에서 egovframe>start>new Mobile Project 메뉴를선택한다.
More informationJEUS 서버 설정 가이드
Copyright 2008 TmaxSoft Co., Ltd. All Rights Reserved. Copyright Notice Copyright 2008 TmaxSoft Co., Ltd. All Rights Reserved. TmaxSoft Co., Ltd. Document Info Document Name: Document Date: 2008-08-01
More informationJEUS 소개
JEUS 소개 JEUS v7.0 Fix#1 Copyright 2013 TmaxSoft Co., Ltd. All Rights Reserved. Copyright Notice Copyright 2013 TmaxSoft Co., Ltd. All Rights Reserved. 대한민국경기도성남시분당구서현동 272-6 우 ) 463-824 Restricted Rights
More information쉽게 풀어쓴 C 프로그래밍
Power Java 제 20 장패키지 이번장에서학습할내용 패키지의개념 패키지로묶는방법 패키지사용 기본패키지 유틸리티패키지 패키지는연관된클래스들을묶는기법입니다. 패키지란? 패키지 (package) : 클래스들을묶은것 자바라이브러리도패키지로구성 ( 예 ) java.net 패키지 네트워크관련라이브러리 그림 20-1. 패키지의개념 예제 패키지생성하기 Q: 만약패키지문을사용하지않은경우에는어떻게되는가?
More information인디쓔피-IOM핸돜벁닄큐1014pdf, page 59 @ Preflight ( IOM핸돜벁닄큐__1014 )
Publisher: International Organization for Migration 17, route des Morillons 1211 Geneva 19 Switzerland Tel: +41.22.717 91 11 Fax: +41.22.798 61 50 E-mail: hq@iom.int Internet: http://www.iom.int ISBN 978
More informationJUNIT 실습및발표
JUNIT 실습및발표 JUNIT 접속 www.junit.org DownLoad JUnit JavaDoc API Document 를참조 JUNIT 4.8.1 다운로드 설치파일 (jar 파일 ) 을다운로드 CLASSPATH 를설정 환경변수에서설정 실행할클래스에서 import JUnit 설치하기 테스트실행주석 @Test Test 를실행할 method 앞에붙임 expected
More informationJ2EE & Web Services iSeminar
9iAS :, 2002 8 21 OC4J Oracle J2EE (ECperf) JDeveloper : OLTP : Oracle : SMS (Short Message Service) Collaboration Suite Platform Email Developer Suite Portal Java BI XML Forms Reports Collaboration Suite
More information설치및환경설정 JEUS Thread State Notify 설정
JEUS Thread State Notify 설정 2014. 07. 02 목차 1. thread-state-notify 설정... 3 1.1 시나리오 #1. max-thread-active-time : 10초... 3 1.2 시나리오 #2. max-thread-active-time : 10초, thread-interrupt-execution : true...
More informationSecure Programming Lecture1 : Introduction
Malware and Vulnerability Analysis Lecture3-2 Malware Analysis #3-2 Agenda 안드로이드악성코드분석 악성코드분석 안드로이드악성코드정적분석 APK 추출 #1 adb 명령 안드로이드에설치된패키지리스트추출 adb shell pm list packages v0nui-macbook-pro-2:lecture3 v0n$
More informationPowerPoint 프레젠테이션
Synergy EDMS www.comtrue.com opyright 2001 ComTrue Technologies. All right reserved. - 1 opyright 2001 ComTrue Technologies. All right reserved. - 2 opyright 2001 ComTrue Technologies. All right reserved.
More informationJEUS
JEUS EJB 안내서 JEUS v7.0 Fix#1 Copyright 2013 TmaxSoft Co., Ltd. All Rights Reserved. Copyright Notice Copyright 2013 TmaxSoft Co., Ltd. All Rights Reserved. 대한민국경기도성남시분당구서현동 272-6 우 ) 463-824 Restricted
More information마리오와 소닉 리우 올림픽™
마리오와 소닉 리우 올림픽 1 사용하기 전에 준비하기 2 유저 콘텐츠에 대하여 3 인터넷으로 이용 가능한 기능 4 보호자 여러분께 5 amiibo란 시작하기 전에 6 게임 소개 7 게임 시작 방법 8 조작 방법 9 데이터 저장과 삭제 통신으로 더욱 즐기기 10 대전 모드 11 포켓 마라톤 12 기록 기타 13 사용 곡명과 작곡자 소개 14 플레이 정보 송신
More information기존에 Windchill Program 이 설치된 Home Directory 를 선택해준다. 프로그램설치후설치내역을확인해보면 Adobe Acrobat 6.0 Support 내역을확인할수 있다.
PDMLink 에등록된 Office 문서들의 PDF 문서변환기능및 Viewer 기능을알아보자 PDM Link에서지원하는 [Product View Document Support] 기능은 Windows-Base 기반의 Microsoft Office 문서들을 PDMLink용 Viewer인 Product View를통한읽기가가능한 PDF Format 으로변환하는기능이다.
More informationgnu-lee-oop-kor-lec06-3-chap7
어서와 Java 는처음이지! 제 7 장상속 Super 키워드 상속과생성자 상속과다형성 서브클래스의객체가생성될때, 서브클래스의생성자만호출될까? 아니면수퍼클래스의생성자도호출되는가? class Base{ public Base(String msg) { System.out.println("Base() 생성자 "); ; class Derived extends Base
More informationISP and CodeVisionAVR C Compiler.hwp
USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler http://www.avrmall.com/ November 12, 2007 Copyright (c) 2003-2008 All Rights Reserved. USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler
More informationEndpoint Protector - Active Directory Deployment Guide
Version 1.0.0.1 Active Directory 배포가이드 I Endpoint Protector Active Directory Deployment Guide 목차 1. 소개...1 2. WMI 필터생성... 2 3. EPP 배포 GPO 생성... 9 4. 각각의 GPO 에해당하는 WMI 연결... 12 5.OU 에 GPO 연결... 14 6. 중요공지사항
More informationMicrosoft PowerPoint App Fundamentals[Part1](1.0h).pptx
To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 애플리케이션기초 애플리케이션컴포넌트 액티비티와태스크 Part 1 프로세스와쓰레드 컴포넌트생명주기 Part 2 2 Library Java (classes) aapk.apk (android package) identifiers Resource & Configuration aapk: android
More information09 강제근로의 금지 폭행의 금지 공민권 행사의 보장 38 10 중간착취의 금지 41 - 대판 2008.9.25, 2006도7660 [근로기준법위반] (쌍용자동차 취업알선 사례) 11 균등대우의 원칙 43 - 대판 2003.3.14, 2002도3883 [남녀고용평등법위
01 노동법 법원으로서의 노동관행 15 - 대판 2002.4.23, 2000다50701 [퇴직금] (한국전력공사 사례) 02 노동법과 신의성실의 원칙 17 - 대판 1994.9.30, 94다9092 [고용관계존재확인등] (대한조선공사 사례) 03 퇴직금 청구권 사전 포기 약정의 효력 19 - 대판 1998.3.27, 97다49732 [퇴직금] (아시아나 항공
More information<BFDCB1B9C0CE20C5F5C0DAB1E2BEF7C0C720B3EBBBE7B0FCB0E82E687770>
외국인 투자기업의 노사관계 요 약 i ii 외국인 투자기업의 노사관계 요 약 iii iv 외국인 투자기업의 노사관계 요 약 v vi 외국인 투자기업의 노사관계 요 약 vii viii 외국인 투자기업의 노사관계 요 약 ix x 외국인 투자기업의 노사관계 요 약 xi xii 외국인 투자기업의 노사관계 요 약 xiii xiv 외국인 투자기업의 노사관계
More informationContents Test Lab 홖경... 3 Windows 2008 R2 서버를도메인멤버서버로추가... 4 기존 Windows 2003 AD 홖경에서 Windows 2008 R2 AD 홖경으로업그레이드를위한사젂작업 7 기존 Windows 2003 AD의스키마확장...
Active Directory Upgrade from W2K3 to W2K8 R2 5/10/2010 Microsoft Dong Chul Lee Contents Test Lab 홖경... 3 Windows 2008 R2 서버를도메인멤버서버로추가... 4 기존 Windows 2003 AD 홖경에서 Windows 2008 R2 AD 홖경으로업그레이드를위한사젂작업
More informationJEUS
JEUS JPA 안내서 JEUS v7.0 Fix#1 Copyright 2013 TmaxSoft Co., Ltd. All Rights Reserved. Copyright Notice Copyright 2013 TmaxSoft Co., Ltd. All Rights Reserved. 대한민국경기도성남시분당구서현동 272-6 우 ) 463-824 Restricted
More information1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과
1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과 학습내용 1. Java Development Kit(JDK) 2. Java API 3. 자바프로그래밍개발도구 (Eclipse) 4. 자바프로그래밍기초 2 자바를사용하려면무엇이필요한가? 자바프로그래밍개발도구 JDK (Java Development Kit) 다운로드위치 : http://www.oracle.com/technetwork/java/javas
More information슬라이드 1
전자정부개발프레임워크 1 일차실습 LAB 개발환경 - 1 - 실습목차 LAB 1-1 프로젝트생성실습 LAB 1-2 Code Generation 실습 LAB 1-3 DBIO 실습 ( 별첨 ) LAB 1-4 공통컴포넌트생성및조립도구실습 LAB 1-5 템플릿프로젝트생성실습 - 2 - LAB 1-1 프로젝트생성실습 (1/2) Step 1-1-01. 구현도구에서 egovframe>start>new
More informationSystem Recovery 사용자 매뉴얼
Samsung OS Recovery Solution 을이용하여간편하게 MagicInfo 의네트워크를설정하고시스템을백업및복원할수있습니다. 시스템시작시리모컨의 - 버튼이나키보드의 F3 키를연속해서누르면복구모드로진입한후 Samsung OS Recovery Solution 이실행됩니다. Samsung OS Recovery Solution 은키보드와리모컨을사용하여조작할수있습니다.
More informationResearch & Technique Apache Tomcat RCE 취약점 (CVE ) 취약점개요 지난 4월 15일전세계적으로가장많이사용되는웹애플리케이션서버인 Apache Tomcat에서 RCE 취약점이공개되었다. CVE 취약점은 W
Research & Technique Apache Tomcat RCE 취약점 (CVE-2019-0232) 취약점개요 지난 4월 15일전세계적으로가장많이사용되는웹애플리케이션서버인 Apache Tomcat에서 RCE 취약점이공개되었다. CVE-2019-0232 취약점은 Windows 시스템의 Apache Tomcat 서버에서 enablecmdlinearguments
More informationMicrosoft Word - 3부A windows 환경 IVF + visual studio.doc
Visual Studio 2005 + Intel Visual Fortran 9.1 install Intel Visual Fortran 9.1 intel Visual Fortran Compiler 9.1 만설치해서 DOS 모드에서실행할수있지만, Visual Studio 2005 의 IDE 를사용하기위해서는 Visual Studio 2005 를먼저설치후 Integration
More informationInstall stm32cubemx and st-link utility
STM32CubeMX and ST-LINK Utility for STM32 Development 본문서는 ST Microelectronics 의 ARM Cortex-M 시리즈 Microcontroller 개발을위해제공되는 STM32CubeMX 와 STM32 ST-LINK Utility 프로그램의설치과정을설명합니다. 본문서는 Microsoft Windows 7
More information슬라이드 1
SW 개발도구연계 Jenkins - Redmine - Mylyn 목차 Intro Mylyn - Redmine 연계 Mylyn - Jenkins 연계및빌드실행 Mylyn에서 Redmine 일감처리 Intro 연계도구 웹기반의프로젝트관리도구 한글화가잘되어있어사용저변이넓음 플러그인을통해다양한도구와연계가능 Eclipse 용 ALM(Application Lifecycle
More information목차 데모 홖경 및 개요... 3 테스트 서버 설정... 4 DC (Domain Controller) 서버 설정... 4 RDSH (Remote Desktop Session Host) 서버 설정... 9 W7CLIENT (Windows 7 Client) 클라이얶트 설정
W2K8 R2 RemoteApp 및 Web Access 설치 및 구성 Step-By-Step 가이드 Microsoft Korea 이 동 철 부장 2009. 10 페이지 1 / 60 목차 데모 홖경 및 개요... 3 테스트 서버 설정... 4 DC (Domain Controller) 서버 설정... 4 RDSH (Remote Desktop Session Host)
More informationJDK이클립스
JDK 와이클립스설치 A. JDK 다운로드, 설치및환경설정 지금부터 JDK를다운로드받아설치하고 JDK를윈도우에서활용할수있도록환경을설정하는전과정을소개한다. 다운로드 www.oracle.com 사이트에접속하여 Downloads 메뉴를선택한후 [ 그림 1] 과같이 "Java for Developers" 를클릭한다. [ 그림 1] www.oracle.com 사이트
More informationClass Loader 엑셈컨설팅본부 /APM 팀김다운 개요 클래스 loader 는자바의기능중하나로써런타임에클래스파일을찾고로딩하는임무를맡는다. WAS 마다 Class Loading 의방식에조금씩차이가있으며, Intermax 설치시에 classpath 옵션을 WAS 에추
Class Loader 엑셈컨설팅본부 /APM 팀김다운 개요 클래스 loader 는자바의기능중하나로써런타임에클래스파일을찾고로딩하는임무를맡는다. WAS 마다 Class Loading 의방식에조금씩차이가있으며, Intermax 설치시에 classpath 옵션을 WAS 에추가함으로서 Class loading 을한다. 이에클래스 loader 의로딩메커니즘을이해하고
More informationRHEV 2.2 인증서 만료 확인 및 갱신
2018/09/28 03:56 1/2 목차... 1 인증서 확인... 1 인증서 종류와 확인... 4 RHEVM CA... 5 FQDN 개인 인증서... 5 레드햇 인증서 - 코드 서명 인증서... 6 호스트 인증... 7 참고사항... 8 관련링크... 8 AllThatLinux! - http://allthatlinux.com/dokuwiki/ rhev_2.2_
More information로거 자료실
redirection 매뉴얼 ( 개발자용 ) V1.5 Copyright 2002-2014 BizSpring Inc. All Rights Reserved. 본문서에대한저작권은 비즈스프링 에있습니다. - 1 - 목차 01 HTTP 표준 redirect 사용... 3 1.1 HTTP 표준 redirect 예시... 3 1.2 redirect 현상이여러번일어날경우예시...
More information을풀면된다. 2. JDK 설치 JDK 는 Sun Developer Network 의 Java( 혹은 에서 Download > JavaSE 에서 JDK 6 Update xx 를선택하면설치파일을
안드로이드설치및첫번째예제 안드로이드설치 안드로이드개발킷은안드로이드개발자사이트 (http://developer.android.com/) 에서다운로드받을수있으며현재 1.5 버전으로윈도우즈, 맥 OS X( 인텔 ), 리눅스플랫폼패키지가링크되어져있다. 안드로이드개발킷을설치하기위해서는다음과같은시스템환경이갖추어져있어야한다. 플랫폼 Windows Mac Linux 지원환경
More informationU.Tu System Application DW Service AGENDA 1. 개요 4. 솔루션 모음 1.1. 제안의 배경 및 목적 4.1. 고객정의 DW구축에 필요한 메타정보 생성 1.2. 제품 개요 4.2. 사전 변경 관리 1.3. 제품 특장점 4.3. 부품화형
AGENDA 1. 개요 4. 솔루션 모음 1.1. 제안의 배경 및 목적 4.1. 고객정의 DW구축에 필요한 메타정보 생성 1.2. 제품 개요 4.2. 사전 변경 관리 1.3. 제품 특장점 4.3. 부품화형 언어 변환 1.4. 기대 효과 4.4. 프로그램 Restructuring 4.5. 소스 모듈 관리 2. SeeMAGMA 적용 전략 2.1. SeeMAGMA
More information< 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Exchange Server 2007) 설정변경 4 2. 스팸차단테스트 10
(https://www.kisarbl.or.kr) < 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Exchange Server 2007) 설정변경 4 2. 스팸차단테스트 10 Ⅰ. 개요 실시간스팸차단리스트 (RBL) 는메일서버를운영하는누구나손쉽게효과적으로스팸수신을차단하는데이용할수있도록한국인터넷진흥원 (KISA)
More informationChapter 1
3 Oracle 설치 Objectives Download Oracle 11g Release 2 Install Oracle 11g Release 2 Download Oracle SQL Developer 4.0.3 Install Oracle SQL Developer 4.0.3 Create a database connection 2 Download Oracle 11g
More informationJEUS
JEUS SNMP 안내서 JEUS v7.0 Fix#1 Copyright 2013 TmaxSoft Co., Ltd. All Rights Reserved. Copyright Notice Copyright 2013 TmaxSoft Co., Ltd. All Rights Reserved. 대한민국경기도성남시분당구서현동 272-6 우 ) 463-824 Restricted
More informationJVM 메모리구조
조명이정도면괜찮조! 주제 JVM 메모리구조 설미라자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조장. 최지성자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조원 이용열자료조사, 자료작성, PPT 작성, 보고서작성. 이윤경 자료조사, 자료작성, PPT작성, 보고서작성. 이수은 자료조사, 자료작성, PPT작성, 보고서작성. 발표일 2013. 05.
More information설치및환경설정 Tibero tbprobe 사용법과원격지포트체크
Tibero tbprobe 사용법과원격지포트체크 2014. 04. 23. 목차 1. tbprobe 사용... 3 1.1. 로컬호스트 tibero 체크... 3 1.2. 원격호스트 tibero 체크... 3 2. tbprobe 상태값... 5 3. tbprobe 연결방법... 6 3.1. IP 와 listener_port 기재시... 6 3.2. IP 와 listener_port
More informationMicrosoft Word - Jeus_System_Architecture.doc
Whitepaper JEUS Syetem Architecture Copyrightc 2001 TmaxSoft Co.,Ltd. All Right Reserved. Contents JEUS System 2 I. JEUS System 운영 1. JEUS Manager 4 2. Naming & Directory Server 5 3. Security Server 5
More information<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>
SIMATIC S7 Siemens AG 2004. All rights reserved. Date: 22.03.2006 File: PRO1_17E.1 차례... 2 심벌리스트... 3 Ch3 Ex2: 프로젝트생성...... 4 Ch3 Ex3: S7 프로그램삽입... 5 Ch3 Ex4: 표준라이브러리에서블록복사... 6 Ch4 Ex1: 실제구성을 PG 로업로드하고이름변경......
More informationAPI 매뉴얼
PCI-TC03 API Programming (Rev 1.0) Windows, Windows2000, Windows NT, Windows XP and Windows 7 are trademarks of Microsoft. We acknowledge that the trademarks or service names of all other organizations
More informationSpring Boot
스프링부트 (Spring Boot) 1. 스프링부트 (Spring Boot)... 2 1-1. Spring Boot 소개... 2 1-2. Spring Boot & Maven... 2 1-3. Spring Boot & Gradle... 3 1-4. Writing the code(spring Boot main)... 4 1-5. Writing the code(commandlinerunner)...
More information리눅스설치가이드 3. 3Rabbitz Book 을리눅스에서설치하기위한절차는다음과같습니다. 설치에대한예시는우분투서버 기준으로진행됩니다. 1. Java Development Kit (JDK) 또는 Java Runtime Environment (JRE) 를설치합니다. 2.
3. 3Rabbitz Book 을리눅스에서설치하기위한절차는다음과같습니다. 설치에대한예시는우분투서버 기준으로진행됩니다. 1. Java Development Kit (JDK) 또는 Java Runtime Environment (JRE) 를설치합니다. 2. 3Rabbitz Book 애플리케이션파일다운로드하여압축파일을풀고복사합니다. 3. 3Rabbitz Book 실행합니다.
More information1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아
LG U+ SMS/MMS 통합클라이언트 LG U+ SMS/MMS Client Simple Install Manual LG U+ SMS/MMS 통합클라이언트 - 1 - 간단설치매뉴얼 1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml
More information2장 변수와 프로시저 작성하기
Chapter. RequestDispatcher 활용 요청재지정이란? RequestDispatcher 활용 요청재지정구현예제 Chapter.9 : RequestDispatcher 활용 1. 요청재지정이란? 클라이언트로부터요청받은 Servlet 프로그램이응답을하지않고다른자원에수행흐름을넘겨다른자원의처리결과를대신응답하는것또는다른자원의수행결과를포함하여응답하는것을요청재지정이라고한다.
More information본교재는수업용으로제작된게시물입니다. 영리목적으로사용할경우저작권법제 30 조항에의거법적처벌을받을수있습니다. [ 실습 ] 스위치장비초기화 1. NVRAM 에저장되어있는 'startup-config' 파일이있다면, 삭제를실시한다. SWx>enable SWx#erase sta
[ 실습 ] 스위치장비초기화 1. NVRAM 에저장되어있는 'startup-config' 파일이있다면, 삭제를실시한다. SWx>enable SWx#erase startup-config Erasing the nvram filesystem will remove all configuration files Continue? [confirm] ( 엔터 ) [OK] Erase
More informationInterstage4 설치가이드
Interstage Application Server V501 Operation Guide Internet 1 1 1 FJApache FJApache (WWW (WWW server) server) - - file file - - 2 2 InfoProviderPro InfoProviderPro (WWW (WWW server) server) - - file file
More informationvRealize Automation용 VMware Remote Console - VMware
vrealize Automation 용 VMware Remote Console VMware Remote Console 9.0 이문서는새버전으로교체되기전까지나열된각제품버전및모든이후버전을지원합니다. 이문서에대한최신버전을확인하려면 http://www.vmware.com/kr/support/pubs 를참조하십시오. KO-002230-00 vrealize Automation
More informationSQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자
SQL Developer Connect to TimesTen 유니원아이앤씨 DB 팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 2010-07-28 작성자 김학준 최종수정일 2010-07-28 문서번호 20100728_01_khj 재개정이력 일자내용수정인버전
More informationStuduino소프트웨어 설치
Studuino 프로그래밍환경 Studuino 소프트웨어설치 본자료는 Studuino 프로그래밍환경설치안내서입니다. Studuino 프로그래밍 환경의갱신에따라추가 / 수정될수있습니다. 목차 1. 소개... 1 2. Windows... 2 2.1. 프로그래밍환경설치... 2 2.1.1. 웹설치버전설치방법... 2 2.2. Studuino 프로그래밍환경실행...
More information01장
뇌를자극하는 Windows Server 2012 R2 부록 NAS4Free 의설치와환경설정 네트워크상에서저장공간이제공되는 NAS(Network Attached Storage) 환경을 VMware에서구성해야한다. 이책에서는그중 Unix 계열의운영체제이며무료로사용할수있는 NAS4Free 운영체제를설치하고사용할것이다. 결국지금설치하는 NAS4Free는쿼럼디스크와클러스터디스크를제공하는것이목적이다.
More information아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상
Android 용 Brother Image Viewer 설명서 버전 0 KOR 아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상표입니다. Android는
More informationchapter1,2.doc
JavaServer Pages Version 08-alpha copyright2001 B l u e N o t e all rights reserved http://jspboolpaecom vesion08-alpha, UML (?) part1part2 Part1 part2 part1 JSP Chapter2 ( ) Part 1 chapter 1 JavaServer
More information행자부 G4C
인증서발급관리모듈 Ver 1.0 개정이력 버전변경일변경사유변경내용작성자승인 1.0 2012-12-22 제정이경희 Copyright 2006. All rights reserved DreamSecurity. 2 목차 1. 인증시스템 ACTIVEX 설치절차... 4 1.1 설치... 4 2. 인증시스템 ACTIVEX 사용... 7 2.1 인증서발급... 7 2.2
More informationMicrosoft Word - Armjtag_문서1.doc
ARM JTAG (wiggler 호환 ) 사용방법 ( IAR EWARM 에서 ARM-JTAG 로 Debugging 하기 ) Test Board : AT91SAM7S256 IAR EWARM : Kickstart for ARM ARM-JTAG : ver 1.0 ( 씨링크테크 ) 1. IAR EWARM (Kickstart for ARM) 설치 2. Macraigor
More informationJEUS 소개
JEUS 소개 JEUS v6.0 Fix#8 Copyright 2011 TmaxSoft Co., Ltd. All Rights Reserved. Copyright Notice Copyright 2011 TmaxSoft Co., Ltd. All Rights Reserved. 대한민국경기도성남시분당구서현동 272-6 우 ) 463-824 Restricted Rights
More informationMicrosoft Word - CAE 클러스터 환경 구축-ABAQUS.doc
ABAQUS 클러스터환경구축문서 1. ABAQUS 설치및라이센스서버설치 작성일 : 2008년 9월 30일작성자 : 클루닉스 / 서진우 설치할서버의적절한위치에아바쿠스설치패키지를복사해둔다. (CD로설치시에는생략 ) 그런후 setup 명령을수행한다. Setup 명령을수행할때는반드시 setup 파일의절대경로를이용하여실행하는것을권장한다. Setup 파일이있는디렉토리안에서실행할경우에러를발생한다.
More informationuntitled
Content Ⅰ. 기본방향 1. 목 적 3 2. 적용범위 3 Ⅱ. 사회복지관 운영 1. 사회복지관의 정의 7 2. 사회복지관의 목표 7 3. 사회복지관의 연혁 7 4. 사회복지관 운영의 기본원칙 8 Ⅲ. 사회복지관 사업 1. 가족복지사업 15 2. 지역사회보호사업 16 3. 지역사회조직사업 18 4. 교육 문화사업 19 5. 자활사업 20 6. 재가복지봉사서비스
More informationInterstage
Interstage Basic Web Application Development Servlet/JSP Interstage Web -Servlet/JSP >> 1)Servlet EJB (Web-Application) 2) Interstage Apworks 3), 4) >> 1) / Web /PM >> 1) Web Application 2)Interstage >>
More informationPowerPoint Presentation
오에스아이소프트코리아세미나세미나 2012 Copyright Copyright 2012 OSIsoft, 2012 OSIsoft, LLC. LLC. PI Coresight and Mobility Presented by Daniel Kim REGIONAL 세미나 SEMINAR 세미나 2012 2012 2 Copyright Copyright 2012 OSIsoft,
More informationSun Java System Messaging Server 63 64
Sun Java System Messaging Server 6.3 64 Sun Java TM System Communications Suite Sun Microsystems, Inc. 4150 Network Circle Santa Clara, CA 95054 U.S.A. : 820 2868 2007 7 Copyright 2007 Sun Microsystems,
More informationPowerPoint Template
JavaScript 회원정보 입력양식만들기 HTML & JavaScript Contents 1. Form 객체 2. 일반적인입력양식 3. 선택입력양식 4. 회원정보입력양식만들기 2 Form 객체 Form 객체 입력양식의틀이되는 태그에접근할수있도록지원 Document 객체의하위에위치 속성들은모두 태그의속성들의정보에관련된것
More informationEclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일
Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 Introduce Me!!! Job Jeju National University Student Ubuntu Korean Jeju Community Owner E-Mail: ned3y2k@hanmail.net Blog: http://ned3y2k.wo.tc Facebook: http://www.facebook.com/gyeongdae
More informationBEA_WebLogic.hwp
BEA WebLogic Server SSL 설정방법 - Ver 1.0-2008. 6 개정이력 버전개정일개정내용 Ver 1.0 2008 년 6 월 BEA WebLogic Server SSL 설명서최초작성 본문서는정보통신부 한국정보보호진흥원의 보안서버구축가이드 를참고하여작성되었습니다. 본문서내용의무단도용및사용을금합니다. < 목차 > 1. 개인키및 CSR 생성방법
More informationWindows Server 2012
Windows Server 2012 Shared Nothing Live Migration Shared Nothing Live Migration 은 SMB Live Migration 방식과다른점은 VM 데이터파일의위치입니다. Shared Nothing Live Migration 방식은 Hyper-V 호스트의로컬디스크에 VM 데이터파일이위치합니다. 반면에, SMB
More information6. 설치가시작되는동안 USB 드라이버가자동으로로드됩니다. USB 드라이버가성공적으로로드되면 Setup is starting( 설치가시작되는중 )... 화면이표시됩니다. 7. 화면지침에따라 Windows 7 설치를완료합니다. 방법 2: 수정된 Windows 7 ISO
Windows 7 설치및 PCIE RAID 설정정보 DK173 초판 11월 2016 A. Windows 7 및 USB 드라이버설치 칩셋사양에따라 Windows 7 설치중에 USB 키보드 / 마우스를사용하려면시스템에서 USB 드라이버를사전로드해야합니다. 이절에서는 USB 드라이버사전로드방법과 Windows 7 설치방법에대해서설명합니다. 방법 1: SATA ODD
More informationserver name>/arcgis/rest/services server name>/<web adaptor name>/rest/services ArcGIS 10.1 for Server System requirements - 지
ArcGIS for Server (Windows) 설치가이드 ArcGIS 10.2 for Server 설치변경사항 1 설치 간편해진설치 -.Net Framework나 Java Runtime 요구하지않음 - 웹서버 (IIS, WebSphere ) 와별도로분리되어순수하게웹서비스기반의 GIS 서버역할 - ArcGIS Server 계정을이용한서비스운영. 더이상 SOM,
More information