44
JEUS Release Note JEUS v7.0 Fix#1 Copyright © 2013 TmaxSoft Co., Ltd. All Rights Reserved.

JEUS Release Note · 2019-04-09 · 관련 안내서 본 문서를 읽은 후에는 다음 안내서를 읽어보기를 권한다. 안내서 설명 jeus 6 서버에 대한 전반적인

  • Upload
    others

  • View
    31

  • Download
    0

Embed Size (px)

Citation preview

Page 1: JEUS Release Note · 2019-04-09 · 관련 안내서 본 문서를 읽은 후에는 다음 안내서를 읽어보기를 권한다. 안내서 설명 jeus 6 서버에 대한 전반적인

JEUS

Release Note

JEUS v7.0 Fix#1

Copyright © 2013 TmaxSoft Co., Ltd. All Rights Reserved.

Page 2: JEUS Release Note · 2019-04-09 · 관련 안내서 본 문서를 읽은 후에는 다음 안내서를 읽어보기를 권한다. 안내서 설명 jeus 6 서버에 대한 전반적인

Copyright Notice

Copyright © 2013 TmaxSoft Co., Ltd. All Rights Reserved.

대한민국 경기도 성남시 분당구 서현동 272-6 우) 463-824

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 Release Note

발행일: 2013-04-30

소프트웨어 버전: JEUS v7.0 Fix#1

안내서 버전: v2.1.2

Page 3: JEUS Release Note · 2019-04-09 · 관련 안내서 본 문서를 읽은 후에는 다음 안내서를 읽어보기를 권한다. 안내서 설명 jeus 6 서버에 대한 전반적인

내용 목차

안내서에 대하여 ............................................................................................................................ v

제1장 소개 ................................................................................................................................. 1

1.1. 릴리즈 이력 ................................................................................................................. 1

제2장 JEUS v7.0 Fix#1 ............................................................................................................... 3

2.1. 신규 기능 ..................................................................................................................... 3

2.1.1. Deployment ..................................................................................................... 19

2.1.2. JMS .................................................................................................................. 4

2.1.3. Node Manager .................................................................................................. 4

2.1.4. Server .............................................................................................................. 5

2.1.5. Web Engine ...................................................................................................... 6

2.1.6. Tool .................................................................................................................. 7

2.1.7. WebAdmin ........................................................................................................ 8

2.1.8. WebService ...................................................................................................... 9

2.2. 변경 기능 ..................................................................................................................... 9

2.2.1. Deployment ....................................................................................................... 9

2.2.2. Domain (DAS) ................................................................................................. 10

2.2.3. EJB ................................................................................................................ 10

2.2.4. JDBC .............................................................................................................. 10

2.2.5. JMS ................................................................................................................ 11

2.2.6. JNDI ............................................................................................................... 11

2.2.7. Security .......................................................................................................... 11

2.2.8. Server ............................................................................................................. 12

2.2.9. Transaction ..................................................................................................... 12

2.2.10. Web Engine ................................................................................................... 12

2.2.11. Session Server .............................................................................................. 14

2.2.12. Tool .............................................................................................................. 14

2.2.13. Transaction .................................................................................................... 14

2.2.14. WebAdmin .................................................................................................... 15

2.2.15. CDI ............................................................................................................... 15

2.3. 버그 수정 ................................................................................................................... 15

2.3.1. Deployment ..................................................................................................... 15

2.3.2. EJB ................................................................................................................ 16

2.3.3. Server ............................................................................................................. 16

2.3.4. Web Engine .................................................................................................... 16

2.3.5. Transaction ..................................................................................................... 17

2.3.6. WebService .................................................................................................... 17

2.3.7. CDI ................................................................................................................. 17

제3장 JEUS v7.0 Fix#0 ............................................................................................................. 19

3.1. 신규 기능 ................................................................................................................... 19

JEUS iii

Page 4: JEUS Release Note · 2019-04-09 · 관련 안내서 본 문서를 읽은 후에는 다음 안내서를 읽어보기를 권한다. 안내서 설명 jeus 6 서버에 대한 전반적인

3.1.1. Specification 변경 ............................................................................................ 19

3.1.2. JEUS System .................................................................................................. 21

3.1.3. Server ............................................................................................................. 23

3.1.4. Domain ........................................................................................................... 23

3.1.5. Deployment ..................................................................................................... 24

3.1.6. WebAdmin ...................................................................................................... 25

3.1.7. Web Engine .................................................................................................... 25

3.1.8. Session Server ................................................................................................ 27

3.1.9. EJB ................................................................................................................ 28

3.1.10. JMS .............................................................................................................. 28

3.1.11. WebService ................................................................................................... 29

3.1.12. Tool .............................................................................................................. 29

3.1.13. Security ........................................................................................................ 29

3.1.14. JDBC ............................................................................................................ 29

3.1.15. JPA ............................................................................................................... 30

3.1.16. JCA .............................................................................................................. 30

3.2. 변경 기능 ................................................................................................................... 30

3.2.1. Web Engine .................................................................................................... 30

3.2.2. Deployment ..................................................................................................... 31

3.2.3. Session Server ................................................................................................ 31

3.2.4. Transaction Manager ....................................................................................... 32

3.2.5. JMX ................................................................................................................ 32

3.2.6. Logging ........................................................................................................... 32

3.2.7. Security .......................................................................................................... 32

3.2.8. JNDI ............................................................................................................... 32

3.2.9. JDBC .............................................................................................................. 33

3.2.10. JCA .............................................................................................................. 33

iv JEUS Release Note

Page 5: JEUS Release Note · 2019-04-09 · 관련 안내서 본 문서를 읽은 후에는 다음 안내서를 읽어보기를 권한다. 안내서 설명 jeus 6 서버에 대한 전반적인

안내서에 대하여

안내서의 대상

본 안내서는 JEUS 7의 새로운 기능과 이전 버전에 대한 변경 사항에 대해서 설명한다. 주요 대상은 이전

버전의 JEUS를 사용한 개발자나 관리자를 대상으로 한다.

안내서의 전제 조건

본 안내서를 읽기 위해서는 이전 버전의 JEUS에 대해서 충분히 알고 있다고 전제한다. JEUS를 처음 접

하는 사용자는 본 안내서 대신에, JEUS 소개를 읽어보길 권한다.

JEUS 7는 기존 버전에 비해서 다양한 실사용 환경에 적용하기 위한 기능이 추가되었다. 본 안내서에서는

변경된 기능에 대해서 간단히 언급하며, 자세한 내용은 해당 안내서를 참고한다.

안내서의 제한 조건

본 안내서는 JEUS 7의 전체 내용을 다루기 어려우므로, 반드시 해당 안내서를 참조하기 바란다.

안내서 구성

JEUS 릴리즈노트는 다음과 같이 구성되어 있다.

● “제1장 소개”

● “제2장 JEUS v7.0 Fix#1”

● “제3장 JEUS v7.0 Fix#0”

안내서에 대하여 v

Page 6: JEUS Release Note · 2019-04-09 · 관련 안내서 본 문서를 읽은 후에는 다음 안내서를 읽어보기를 권한다. 안내서 설명 jeus 6 서버에 대한 전반적인

안내서 규약

의미표기

프로그램 소스 코드의 파일명<<AaBbCc123>>

Ctrl과 C를 동시에 누름<Ctrl>+C

GUI의 버튼 또는 메뉴 이름[Button]

강조진하게

다른 관련 안내서 또는 안내서 내의 다른 장 및 절 언급" "(따옴표)

화면 UI에서 입력 항목에 대한 설명'입력항목'

메일계정, 웹 사이트하이퍼링크

메뉴의 진행 순서>

하위 디렉터리 또는 파일 있음+----

하위 디렉터리 또는 파일 없음|----

참고 또는 주의사항참고

주의할 사항주의

그림 이름[그림 1.1]

표 이름[표 1.1]

Java 코드, XML 문서AaBbCc123

옵션 파라미터[ command argument ]

‘<’와 ‘>’ 사이의 내용이 실제 값으로 변경됨< xyz >

선택 사항. 예) A|B: A나 B 중 하나|

파라미터 등이 반복되어서 나옴…

vi JEUS Release Note

Page 7: JEUS Release Note · 2019-04-09 · 관련 안내서 본 문서를 읽은 후에는 다음 안내서를 읽어보기를 권한다. 안내서 설명 jeus 6 서버에 대한 전반적인

관련 안내서

본 문서를 읽은 후에는 다음 안내서를 읽어보기를 권한다.

설명안내서

JEUS 6 서버에 대한 전반적인 소개와 JEUS의 아키텍처를 포함하

여 각 구성 요소들에 대해 설명한 안내서이다.

JEUS 소개

JEUS에 대한 소개와 설치 및 시작 방법에 대해 기술한 안내서이다.JEUS 설치 및 시작하기

JEUS의 웹 관리 툴인 WebAdmin을 사용한 JEUS 의 설정 및 제어,

모니터링, 클러스터링, 리소스 설정 및 관리에 대해 기술한 안내서이

다.

JEUS WebAdmin 안내서

JEUS 시스템과 서버의 개요와 시스템 관리를 위한 안내서이다.JEUS Server 안내서

JEUS EJB 엔진과 EJB 모듈의 Deploy에 대해 기술한 안내서이다.JEUS EJB 안내서

JEUS 웹 컨테이너의 관리에 대해 내용과 Java EE WAR Archive, 서

블릿/JSP의 관리 및 Deploy하는 방법에 대해 기술한 안내서이다.

JEUS Web Container 안내서

JEUS 메시지 기반 시스템(JMS)에 대해 기술한 안내서이다.JEUS MQ 안내서

JEUS 노드 매니저의 개념과 동작 방식를 이해하기 위한 기본적인

내용에 대해서 설명한다.

JEUS Node Manager 안내서

JEUS 내의 웹 서비스에 대해 기술한 안내서이다.JEUS Web Service 안내서

JMX를 사용하여 JEUS를 관리하기 위한 내용을 기술한 안내서이다.JEUS JMX 안내서

산업 표준인 SNMP 프로토콜을 이용한 JEUS 모니터링에 대해 설명

한 안내서이다.

JEUS SNMP 안내서

JEUS와 Legacy 시스템과의 연결을 위한 Connector에 대해 기술한

안내서이다.

JEUS JCA 안내서

JEUS에 통합된 TopLink Essential의 사용 방법에 대해 기술한 안내

서이다.

JEUS JPA 안내서

JEUS의 Scheduler 기능에 대해 기술한 안내서이다.JEUS Scheduler 안내서

Java EE 애플리케이션을 JEUS에 Deploy하기 위한 여러 가지 방법

과 툴에 대해 기술한 안내서이다.

JEUS Application & Deployment

안내서

Java EE 클라이언트와 JEUS 사이의 상호 운용에 대해 기술한 안내

서이다.

JEUS Application Client 안내서

JEUS에서 Security 시스템의 설정 및 운용 방법과 Security 관련 프

로그래밍에 대해 기술한 안내서이다.

JEUS Security 안내서

JEUS를 사용할 때 도움이 되는 Reference를 기술한 안내서이다.JEUS Reference Book

안내서에 대하여 vii

Page 8: JEUS Release Note · 2019-04-09 · 관련 안내서 본 문서를 읽은 후에는 다음 안내서를 읽어보기를 권한다. 안내서 설명 jeus 6 서버에 대한 전반적인

참고 자료

● 문서 내에 언급되는 스펙들

viii JEUS Release Note

Page 9: JEUS Release Note · 2019-04-09 · 관련 안내서 본 문서를 읽은 후에는 다음 안내서를 읽어보기를 권한다. 안내서 설명 jeus 6 서버에 대한 전반적인

연락처

Korea

TmaxSoft Co., Ltd

272-6, Seohyeon-dong, Bundang-gu,

Seongnam-si, Gyeonggi-do, 463-824

South Korea

Tel: +82-31-8018-1000

Fax: +82-31-8018-1115

Email: [email protected]

Web (Korean): http://www.tmax.co.kr

기술지원: http://technet.tmaxsoft.com

USA

TmaxSoft, Inc.

560 Sylvan Avenue Englewood Cliffs, NJ 07632

U.S.A

Tel: +1-201-567-8266

Fax: +1-201-567-7339

Email: [email protected]

Web (English): http://www.tmaxsoft.com

Japan

TmaxSoft Japan Co., Ltd.

5F Sanko Bldg, 3-12-16 Mita, Minato-Ku, Tokyo, 108-0073

Japan

Tel: +81-3-5765-2550

Fax: +81-3-5765-2567

Email: [email protected]

Web (Japanese): http://www.tmaxsoft.co.jp

안내서에 대하여 ix

Page 10: JEUS Release Note · 2019-04-09 · 관련 안내서 본 문서를 읽은 후에는 다음 안내서를 읽어보기를 권한다. 안내서 설명 jeus 6 서버에 대한 전반적인

China

TmaxSoft China Co., Ltd.

Beijing Silver Tower, RM 1508, 2# North Rd Dong San Huan,

Chaoyang District, Beijing, China, 100027

China

Tel: +86-10-6410-6145~8

Fax: +86-10-6410-6144

Email: [email protected]

Web (Chinese): http://www.tmaxsoft.com.cn

x JEUS Release Note

Page 11: JEUS Release Note · 2019-04-09 · 관련 안내서 본 문서를 읽은 후에는 다음 안내서를 읽어보기를 권한다. 안내서 설명 jeus 6 서버에 대한 전반적인

제1장 소개

본 안내서는 릴리즈 대상 제품의 새로운 기능과 이전 버전과 다른 변경된 사항을 정리한 안내서이다. JEUS

v7.0은 기존 버전에 비해 다양한 실사용 환경에 적용하기 위한 기능이 추가되었다. 그러나 본 안내서는

JEUS v7.0의 전체 내용을 다루기 어려우므로 자세한 내용은 해당 안내서를 참고한다.

1.1. 릴리즈 이력

버전일자

JEUS v7.0 Fix#02012-07-04

JEUS v7.0 Fix#12013-04-30

제1장 소개 1

Page 12: JEUS Release Note · 2019-04-09 · 관련 안내서 본 문서를 읽은 후에는 다음 안내서를 읽어보기를 권한다. 안내서 설명 jeus 6 서버에 대한 전반적인
Page 13: JEUS Release Note · 2019-04-09 · 관련 안내서 본 문서를 읽은 후에는 다음 안내서를 읽어보기를 권한다. 안내서 설명 jeus 6 서버에 대한 전반적인

제2장 JEUS v7.0 Fix#1

본 장에서는 JEUS v7.0 Fix#1 릴리즈에서 추가된 새로운 기능에 대해 간략히 설명한다.

2.1. 신규 기능본 절에서는 JEUS의 신규 추가사항에 대하여 설명한다.

2.1.1. Deployment

● List를 이용하여 한번에 다수의 Application에 대한 Install/deploy/undeploy/start/stop 기능 추가

– List를 이용하여 Application을 install할 수 있다(id는 줄 수 없다).

– WebAdmin에서는 여러 Application 파일을 선택해서 install할 수 있다.

– List를 이용하여 Application을 deploy할 수 있다.

– WebAdmin에서는 install되어 있는 Application 여러 개를 선택해서 deploy할 수 있다(선택한 Application

에 대한 deploy option은 모두 동일하게 적용된다)

– Install은 jeusadmin에서는 list 형태로 install을 지원하지 않고 WebAdmin에서만 install할 때 체크 박

스를 check해서 list 형태로 install이 가능하다.

● EJB, Web, EAR에 대하여 Deployment Plan 기능 제공

– 패키지 내부에 JEUS DD 파일 유무에 관계없이 Application 패키지 외부에 있는 임의의 설정(Plan)으

로 Application을 deploy할 수 있는 기능을 제공한다.

– WebAdmin에서 Deployment Plan 관리기능 및 deploy / distribute / redeploy에 대한 Plan 옵션을 제공

한다.

– Deployment Plan 기능을 사용할 경우 Plan으로 DD를 대체할 수 있다.

– jeusadmin에 기존 domain.xml과 configuration plan을 merge하여 새로운 domain.xml을 만들어 주는

명령어를 제공한다.

● Exploded Application을 압축해서 전송할 수 있는 기능 추가

– Exploded Application을 압축해서 전송할 수 있는 staging 옵션이 추가되었다.

– DAS에서 Remote MS로 exploded Application을 Type에 맞게 압축하여 Server로 전송 후 deploy 할

수 있도록 만들어 주는 기능이 추가되었다.

– Application 원본파일의 동기화를 책임지지 않으므로, Application 변경할 때 Redeploy를 명시적으로

수행해야 한다.

제2장 JEUS v7.0 Fix#1 3

Page 14: JEUS Release Note · 2019-04-09 · 관련 안내서 본 문서를 읽은 후에는 다음 안내서를 읽어보기를 권한다. 안내서 설명 jeus 6 서버에 대한 전반적인

● JEUS boot time deploy를 Group 단위로 concurrent 하게 진행하는 기능 추가

– Boot Time 및 Runtime deploy할 때 Application들을 Concurrent하게 Deploy가 진행하도록 수정되었

다.

– EAR의 경우는 내부 모듈들을 Concurrent하게 Deploy하도록 수정되었다.

2.1.2. JMS

● Transaction Rollback이나 Recover되는 메시지가 다시 서비스될 때까지의 Delay를 설정할 수 있는

기능 추가

– 기존의 Redelivery 기능은 재처리가 필요할 경우 즉시 재처리되었는데, 변경된 기능은 이 상황에서

interval을 설정하여 일정 시간동안 재처리를 delay시킬 수 있는 기능이 추가되었다.

– 설정된 interval(단위:ms)만큼 redelivery를 지연시킬 수 있다.

● 클라이언트 프로그램으로 설정해야 하는 일부 Attribute들을 서버 설정으로 강제로 Override하는 기능

제공

– Override 대상은 time-to-live (expiration-time), time-to-deliver (schedule), priority, delivery-mode, re

delivery-limit 등 이다.

● JMS 서버 내에 존재하는 메시지들을 관리하는 기능 추가

– Queue 또는 Topic에 대한 produce/consume를 suspend/resume하는 기능이 추가되었다.

– Queue 또는 Durable Subscriber 내에 있는 "메시지 보기/메시지 삭제/메시지에대한 import/export" 기

능과 메시지를 다른 Queue나 Durable Subscriber로 이동시키는 기능이 추가되었다.

● Expiration Time이 설정된 경우 Timeout 된 Message 처리 방법 개선

– 기존에는 Expiration Time이 경과된 Message를 무조건 삭제하던 것을 기본 동작인 "삭제"와 "Dead

Letter Destination으로의 리다이렉트" 중에서 선택하여 사용할 수 있도록 개선되었다.

● Dead Letter Destination을 Destination 별로 설정할 수 있는 기능 추가

2.1.3. Node Manager

● JEUS Server를 컨트롤/모니터링하는 Node Manager 도입

– 분리된 각각의 Node에서 동작하는 Server Process 관리 및 Local/Remote Server의 시작/종료, Fail

Server의 Restart 등을 지원할 목적으로 추가되었다.

– $JEUS_HOME/nodemanager/jeusnm.properties에 설정하며, nodes.xml 파일에 추가된 Node에 접근

가능하다.

– DAS가 Node Manager의 관리를 받기 위해서는 Node Manager에 연결하고, Node Manager에서 서

버를 실행해야 한다. Node Manager로 연결하고 DAS 기동 명령을 내려 Node Manager가 DAS를 기

4 JEUS Release Note

Page 15: JEUS Release Note · 2019-04-09 · 관련 안내서 본 문서를 읽은 후에는 다음 안내서를 읽어보기를 권한다. 안내서 설명 jeus 6 서버에 대한 전반적인

동하는 두 가지 명령을 한 번에 수행하도록 하는 명령어로 startDomainAdminServerNM 스크립트가

추가되었다.

– 중요 기능은 Server Boot/Down, Server Monitoring, Patch 전달 등이 있다.

– WebAdmin에 Node Manager를 위한 Java Node 설정 기능이 추가되었다.

2.1.4. Server

● Configuration Backup을 rollback하는 Rolling Patch 기능 추가

– Node Manager를 통해 도메인에 patch를 적용할 수 있는 기능으로 패치 적용, 제거, 패치정보 확인

(apply-patch/remove-patch/patch-info) 기능이 있다.

– 패치를 적용하거나 제거할 때 -rolling 옵션을 주면 서비스가 이중화되어있을 경우 장애없이 서비스를

할 수 있다.

– Rolling Patch 중 오류가 발생하는 경우 Rollback 기능이 있으며, CONTINUE, ROLLBACK, STOP 3

가지 옵션을 지원한다.

– WebAdmin에 Rolling Patch를 위한 화면이 추가되었다.

백업된 Configuration 목록에서 원하는 백업을 선택하여 선택한 백업으로 rollback할 수 있다.

(WebAdmin의 Lock을 얻은 뒤 작업해야 하며, 완료 후 Activate해 주어야 반영된다.)

– jeusadmin에도 Rolling Patch 관련 명령어가 추가되었다.

● Server를 Standby 상태까지만 부팅시키는 기능 추가

– 운영 중 새로운 서버를 추가할 때 추가된 서버가 RUNNING 상태까지 boot되면 바로 클라이언트의 요

청을 받기 때문에 오류가 발생할 수 있는데, 이러한 문제를 막기 위하여 Standby 상태까지만 booting

시키는 기능이 추가되었다(-standby 옵션).

– 이후 add-Application-target 명령으로 Application의 target에 신규 추가된 서버를 추가하고, Server를

start시키면 Application request를 실패없이 처리할 수 있다.

● Memory Monitor Service에서 JEUS가 ratio 이상 memory를 사용할 경우 HeapDump 생성 기능 추

– JEUS 내부에서 jmap 명령을 실행하여 HeapDump를 생성하는 명령으로 File 이름은 "HeapDump_연

월일시간.bin"으로 로그파일은 "$SERVER_HOME/logs"에 남긴다.

– IBM JDK에는 jmap 명령이 존재하지 않으므로 jvm-option에 필수적으로 -Xdump:heap:file 과 같은 프

로퍼티를 설정해 주어야만 HeapDump를 생성할 수 있다.

● WebAdmin background deploy 기능 추가

– Booting 속도 향상을 위하여 boot 시점에 fake WebAdmin을 deploy하고 background에서 정식 WebAd

min을 graceful redeploy로 기동하는 기능이 추가되었다.

● 관리자가 서버를 내리지 않고 WebAdmin의 접근을 제어할 수 있는 기능 추가

제2장 JEUS v7.0 Fix#1 5

Page 16: JEUS Release Note · 2019-04-09 · 관련 안내서 본 문서를 읽은 후에는 다음 안내서를 읽어보기를 권한다. 안내서 설명 jeus 6 서버에 대한 전반적인

– jeusadmin에서 disable-WebAdmin/enable-WebAdmin 명령을 수행할 때 동적으로 적용할 수 있는 기

능이 추가되었다.

● 서버의 CPU Monitoring Service 및 Process CPU Monitoring Service 추가

– Server의 CPU 및 Process별 CPU 사용률을 모니터링하는 기능이 추가되었다.

– 'jeus.server.cpumonitor.enabled=false'로 서버의 CPU 모니터링 사용 여부를 설정하고 'jeus.serv

er.cpumonitor.interval=60000'로 서버의 CPU 모니터링 주기를 설정한다.

– 'jeus.server.process.cpumonitor.enabled=false'로 현재 Process의 CPU 사용률에 모니터링 사용 여

부를 설정하고, 'jeus.server.process.cpumonitor.interval=20000'으로 모니터링 주기를 설정한다.

– 이 기능은 Sun JDK에서만 사용할 것을 권고한다.

● MS 기동시 MS를 기동하는 Java 명령어 앞에 옵션을 넣을 수 있는 기능 추가

– domain.xml의 domain/servers/server/user-interceptor/preceding-command에 설정하면 MS를 기동

할 때 맨 앞의 java 명령어 앞쪽에 옵션을 추가한다.

– preceding-command에 XXX를 추가한 경우 'XXX java ~~~' 형태로 명령어가 구성된다.

● JVMMBean을 통해 시스템 정보를 추가 제공하기 위하여 sys-info command 추가

– sys-info에서는 process, cpu, memory, jvm 정보를 조회할 수 있으며, open source인 SIGAR 라이브

러리를 활용하여 추가 정보를 제공한다.

● Production Mode 설정 기능 추가

– 개발 생산성, 성능, Memory leak 등에 영향을 줄 수 있는 기능을 분류하여 개발환경(Developnemt

Mode)과 운영환경(Production Mode)을 분리하는 기능이 추가되었다.

2.1.5. Web Engine

● jeusadmin에서 서버 주소 및 포트 번호 변경을 위한 명령어(modify-webtob-connector 및 modify-

tmax-connector)가 추가되었다.

● thread-info 명령에서 웹 애플리케이션 이름을 주면 해당 애플리케이션이 가지고 있는 Asynchronous

Processing을 위한 Thread Pool(async background thread pool, async dispatch thread pool)의

상태와 통계를 보여주는 기능이 추가되었다.

● Application에서 ThreadLocal 변수를 이용할 경우 Memory leak과 OOME를 막는 기능 추가

– Application에서 ThreadLocal 변수를 이용할 경우 발생 가능한 Memory leak (특히 ThreadLocal에서

ContextLoader나 WEBAPP instance를 잡고있는 경우 undeploy/deploy/reload를 수행할 때 Memory

leak 발생 가능)에 의하여 OOME가 생길 가능성이 커지는데, 이런 현상을 방지하는 기능을 추가하였

다.

– Web Engine 속성(<web-engine>/<properties>)에 key(jeus.servlet.prevent-forcibly-threadlocal-mem

oryleak), value(true/false) 형태로 설정한다.

6 JEUS Release Note

Page 17: JEUS Release Note · 2019-04-09 · 관련 안내서 본 문서를 읽은 후에는 다음 안내서를 읽어보기를 권한다. 안내서 설명 jeus 6 서버에 대한 전반적인

● jeusadmin에서 특정 Web Listener Thread Pool 전체의 Stack Trace를 확인할 수 있는 기능 추가

– jeusadmin에서 특정 Web Listener Thread Pool 전체의 Stack Trace를 확인할 수 있는 기능이 추가되

었다.

– 다음과 같이 사용할 수 있다.

strace -server [ServerName] -li [Listener-Name]

● Web Listener Thread Pool 전체에 대한 Interrupt 기능 추가

– interrupt-thread 명령에 -li 옵션을 제공해서 Web Listener Thread 전체에 interrupt를 걸 수 있는 기능

이 추가되었다.

● WebtoB로부터 전송받은 SSL 클라이언트 인증서 정보 제공 기능 추가

– WebtoB 4.1.5.2부터 추가되는 기능으로 WebtoB가 JEUS로 'WJP-SSL-SESSION-ID WJP-SSL-CIPHER

WJP-SSL-CIPHER-USEKEYSIZE WJP-SSL-클라이언트-CERT'라는 이름의 HTTP 헤더로 SSL 정보

를 보내주면 JEUS에서는 이를 읽어서 HttpServletRequest#getAttribute()로 제공한다.

● max-thread-active-time을 넘긴 Active Thread들에 대한 interrupt가 발생하는 경우 해당 Thread의

Stack Trace를 로그에 남기는 기능이 추가되었다.

2.1.6. Tool

● 기존의 서버 설정을 복사하여 새로운 서버를 작성하는 기능 추가

– Server name, node-name listen-address listen-port는 새로 입력하지 않으면 기존의 설정을 그대로

사용하여 boot할 때 오류가 발생할 수 있으며, name은 입력하지 않으면 자동으로 임의의 이름을 입

력해 준다.

● Web Engine 설정 추가/수정/삭제 명령어 추가

– 다음과 관련된 명령어들이 추가되었다.

• add/modify/remove 명령어 추가 : encoding, properties, response-header, cookie-policy 설정

• modify 명령어 추가 : jsp-engine 설정

• modify-web-engine-configuration option 추가 : default-error-page, attach-stacktrace-on-error, async-

timeout-min-thread 설정

● Ant Task 기능 추가

– Node Manager를 사용할 경우 Ant Task를 이용하여 DAS/MS를 Start/Shutdown하는 기능이 추가되

었다. Local/Remote 장비에 대하여 모두 수행 가능하다.

– Deployment 관련 Task(install, deploy, start, stop, undeploy, redeploy, uninstall, addtarget, remove

target)가 추가되었다.

● jeusadmin 명령어 추가

제2장 JEUS v7.0 Fix#1 7

Page 18: JEUS Release Note · 2019-04-09 · 관련 안내서 본 문서를 읽은 후에는 다음 안내서를 읽어보기를 권한다. 안내서 설명 jeus 6 서버에 대한 전반적인

– MS의 JVM Option을 추가/수정/삭제할 수 있는 명령을 추가하였다.

server/jvm-config/jvm-option에 설정되는 Option을 추가/삭제/수정할 수 있는 기능으로 "기존의 설정"

내용이 domain.xml의 jvm-option 태그 단위로 완전하게 일치하지 않으면 명령이 수행되지 않는다.

– JEUS Logger 사용 여부를 on/off하는 명령이 추가되었다.

● Independent MS에서 appinfo 확인 기능 추가

– MS가 INDEPENDENT Mode인 경우 MS에서도 DAS와 마찬가지로 Application-info 명령으로 appinfo

를 확인할 수 있는 기능이 추가되었다.

● appcompiler에서 EAR precompile할 때 EJB 또는 웹만을 선택할 수 있는 옵션 추가

– appcompiler에서 EAR precompile할 때 EAR 내의 EJB 또는 웹만을 선택하여 컴파일할 수 있는 기능

이 추가되었다.

– -ejbonly -webonly으로 EJB와 웹 모듈을 선택할 수 있다.

● appcompiler를 사용하여 JSP를 컴파일할 때 다수의 Thread를 이용하여 컴파일할 수 있는 기능 추가

– appcompiler를 사용해서 -j 옵션으로 JSP 파일들을 컴파일할 Thread 갯수를 조절하여 다수의 Thread

를 이용하여 컴파일할 수 있다..(기본값 : 1)

2.1.7. WebAdmin

● system-info command에 대한 monitoring page 추가

– CPU/Process/JEUS Memory/JEUS JVM 정보를 monitoring할 수 있다.

– 자동 refresh를 10s/30s/1m 간격으로 설정할 수 있다.

● domain 설정 변경 후 Activate할 때 변경 내용에 대한 comment 를 입력하는 기능이 추가되었

다.(<domain>/<description>)

● 환경 파일 export/import 기능 추가

– WebAdmin에서 현재 사용자가 보고 있는 domain.xml을 XML로 다운로드할 수 있는 export 기능과 사

용자가 수정한 domain.xml을 반영하는 Import 기능이 추가되었다. 단, Import 기능은 Lock & Edit 모

드에서만 사용 가능하다.

● File Navigation Tag 추가

– WebAdmin이 deploy된 서버의 System File을 선택할 수 있는 기능이 추가되었다.

● JMS Message View 기능 추가

– JMS Monitoring 기능 강화를 위하여 Message View 기능이 추가되었다.

– WebAdmin의 JMS Monitoring 화면에 메시지에 대한 view, edit, import, remove, move, export 기능을

제공한다.

8 JEUS Release Note

Page 19: JEUS Release Note · 2019-04-09 · 관련 안내서 본 문서를 읽은 후에는 다음 안내서를 읽어보기를 권한다. 안내서 설명 jeus 6 서버에 대한 전반적인

– Destination에 대한 view, edit, import, remove, move, export와 Produce/Consume에 대한 Suspend,

Resume 기능을 제공한다.

– Durable Subscriptions에 대한 view, remove, move, export, cluster 기능을 추가 제공한다.

– edit의 경우 messageType이 Text 인 경우만 제공한다.

● 권한에 따른 WebAdmin UI 접근 제어 기능 추가

– Role Permission 설정에 따라 WebAdmin UI 기능에 대한 접근을 제한하는 기능이 추가되었다.

– 접근제한 항목으로는 URL, 메인 메뉴, Sitemap이 있으며, 이 중 메인 메뉴는 설정된 권한에 따라 Login

할 때 일부 항목이 생략된다.

● Async Thread 모니터링 기능 추가

– WebAdmin에 Async Thread 모니터링 기능이 추가되었다.

2.1.8. WebService

● JAX-RS 관련 기능 추가

– JAX-RS를 사용하여 local interfaces를 사용하는 EJB를 RESTful View로 노출할 수 있는 기능이 추가

되었다.

– JAX-RS를 사용하여 no-interface EJB를 RESTful View로 노출할 수 있는 기능이 추가되었다.

– JAX-RS Resource에서 @javax.ejb.EJB injection을 사용할 수 있는 기능 추가

● Maven plugin 지원기능 추가

– JAX-WS tool인 wsimport, wsgen 명령을 Maven plugin을 이용해 실행할 수 있는 기능이 추가되었다.

● Serlvet 3.0 Asynchronous Servlet을 기반으로 Asychronous Web Services 지원기능이 추가되었

다.

2.2. 변경 기능본 절에서는 JEUS의 모듈별 변경 사항을 정리한다.

2.2.1. Deployment

● EJB, EAR graceful redeployment 지원

– Global ENV, Bean에 대한 Application 버전별 bind/lookup이 가능하다

– Old EJB에 대한 Stub을 들고 있는 클라이언트의 경우 Redeploy가 완료된 후부터는 New EJB에 대한

Stub을 다시 가져와 동작한다

제2장 JEUS v7.0 Fix#1 9

Page 20: JEUS Release Note · 2019-04-09 · 관련 안내서 본 문서를 읽은 후에는 다음 안내서를 읽어보기를 권한다. 안내서 설명 jeus 6 서버에 대한 전반적인

● undeploy의 기본 동작이 graceful undeploy로 변경되었다.

2.2.2. Domain (DAS)

● domain.xml의 백업파일 관리 정책 변경

– 기존에 domain.xml과 같은 위치에 백업 파일을 만들던 것을 '.history' 디렉터리 아래에 작성하도록 변

경되었다.

– 백업 파일의 이름이 'domain_yyyymmdd.xml'에서 'domain_yyyymmdd_HHMMSS.xml'로 변경되었다.

– 백업 파일의 개수를 제한할 수 있는 기능이 추가되었다.

DAS에만 설정하며 System Property로 'jeus.server.configfile.backup.size=50'와 같이 설정한다.

● Application의 resync 기능 개선

– 이미 deploy 된 Application의 파일 변경 여부를 확인하여 변경된 경우 redeploy하는 기능이 추가되었

다(MS가 INDEPENDENT Mode에서 DEPENDENT Mode로 변환되는 경우에도 동작한다).

– app resync할 때 failed Application과 state가 바뀐 Application, 이미 deploy되어 있는 Application에

대해서 Application 파일의 resync 작업을 진행한다.

2.2.3. EJB

● IIOP rmic 수행할 때 -vcompat option을 넣을 수 있는 기능 추가

– '-Djeus.ejb.compiler.rmic.vcompat=true'로 설정하면 컴파일할 때 -vcompat 옵션이 추가된다.

● DB Vendor Type에 TIBERO 추가

– jeus-ejb-dd Vendor Type에 TIBERO가 추가되었다.

2.2.4. JDBC

● 서버가 Cluster에 포함될 경우 Cluster에 등록된 데이터소스만을 사용하도록 기능 변경

– 서버가 Cluster에 속한 경우 서버에 설정된 데이터소스 설정은 무시되고 서버가 속한 Cluster에 설정

된 데이터소스만을 사용하도록 변경되었다.

– Cluster에서 빠져나올 경우 Cluster에 설정된 데이터소스 설정은 무시되고 서버에 설정된 데이터소스

설정만을 사용한다.

● 데이터소스를 설정할 때 기본 Binding 설정 변경

– 기존에는 Remote Bind가 기본 동작이었으나 Target 서버에 default로 Local bind하도록 변경되었다.

10 JEUS Release Note

Page 21: JEUS Release Note · 2019-04-09 · 관련 안내서 본 문서를 읽은 후에는 다음 안내서를 읽어보기를 권한다. 안내서 설명 jeus 6 서버에 대한 전반적인

– 'System Property jeus.jdbc.data-source-local-binding=false'로 설정하면 데이터소스를 기본으로 Remote

bind할 수 있다.

● JDBC/JCA Connection pool을 내부적으로 Group 단위로 관리하도록 변경

– 같은 DB 서버에 대하여 JDBC Connection Pool을 서로 다른 복수의 ID/PWD에 대한 그룹으로 관리

하도록 변경되었다.

– 그룹별 Connection 사용량에 따라 Connection Pool의 개수를 효율적으로 조정/관리하는 기능이 추가

되었다.

● Cluster 데이터소스의 Selector API 및 동작 방식 변경

– DataSourceSelector API를 interface로 새로 정의하였다.

– DataSourceSelector를 사용할 경우 Failover될 때 JEUS가 자체적으로 데이터소스를 선택하지 않고

DataSourceSelector에서 Select된 데이터소스를 사용하도록 변경되었다.

2.2.5. JMS

● JMS Failover 기능 향상

– JMS Failover가 n by m Active-Standby Failover 형태로 기능이 향상되었다.

– 기존의 Dedicated Active-Standby방식의 Failover를 확장하여 n by m의 자유로운 구성의 Failover를

지원한다.

– m = 0일 때 Active-Active Failover가 된다.

2.2.6. JNDI

● ClusterManager lock 개선

– 기존에는 JNDI Connection, Operation을 할 때마다 연결하려고 하는 서버가 Failed인지 아닌지를 확

인하는데 사용되는 모든 Method에 Synchronized가 설정되어 Lock이 광범위하게 잡히는 문제를 개

선하였다.

2.2.7. Security

● AES_128_CBC, AES_256_CBC cipher suite의 SSL Handshake 시점에 key size를 verification하

는로직이 추가되었다.

제2장 JEUS v7.0 Fix#1 11

Page 22: JEUS Release Note · 2019-04-09 · 관련 안내서 본 문서를 읽은 후에는 다음 안내서를 읽어보기를 권한다. 안내서 설명 jeus 6 서버에 대한 전반적인

2.2.8. Server

● start-domain, start-cluster, stop-domain, stop-cluster 명령이 concurrent하게 동작하도록 변경되

었다.

● boot-time deploy할 때 변경된 Application만 파일 전송 받도록 수정되었다.

2.2.9. Transaction

● tx-log-dir 기본경로명 변경

– <tm-config>/<tx-log-dir>의 설정이 기존의 ${SERVER_HOME}/.workspace/txlog에서 ${SERV

ER_HOME}/.workspace/tmlog로 최 하위 경로가 txlog에서 tmlog로 변경되었다.

– 경로에 포함되어 있는 ${SERVER_HOME}/.workspace/tmlog는 환경변수가 아닌 전체가 하나의 문자

열이기 때문에 실제 경로가 아닌 예약어이다.

따라서, tmlog가 쌓이는 경로를 사용자 임의의 경로로 옮기려고 한다면 전체 Full Path를 적어주어야

한다. ( 예 : /home/jeus/tmlog )

2.2.10. Web Engine

● ResourceServlet을 Spring mvc:default-servlet-handler에서 사용가능하도록 수정

– 기존의 WorkerServlet을 대체하는 기능으로, JEUS에서 제공하는 default servlet인

jeus.servlet.servlets.ResourceServlet을 Spring mvc:default-servlet-handler에 default-servlet-name

으로 설정해서 사용할 수 있다.

● Servlet Async Processing Timeout 기본값을 30초로 변경

– AsyncServlet이 실행되는 시간(avctive)이 Async Processing이고 이 시간까지 종료되지 않고 있으면

해당 Thread를 종료한다.

● add-webtob-connector 명령에 도메인 소켓 사용 관련 옵션(dsocket, wbhome, ipcport)이 추가되었

다.

● Web Listener의 설정에서 불필요하게 설정되었던 <scheme> 태그가 제거되었다.

● NIO를 사용하는 경우 HTTP, TCP, AJP Listener 요청 처리 큐 처리 방법 개선

– NIO를 사용(use-nio=true)하는 경우 HTTP, TCP, AJP Listener에서 요청 처리 큐가 꽉 차면 커넥션을

닫고, 서버 로그에 해당 사항을 WARNING 레벨로 남기도록 수정되었다.

● HTTP Listener의 keep-alive 설정 제거

– HTTP Listener의 keep-alive 설정이 connection-type 설정으로 대체되어 제거되었다.

● Stuck Thread를 체크하는 주기 설정 기능 추가

12 JEUS Release Note

Page 23: JEUS Release Note · 2019-04-09 · 관련 안내서 본 문서를 읽은 후에는 다음 안내서를 읽어보기를 권한다. 안내서 설명 jeus 6 서버에 대한 전반적인

– Stuck Thread 체크 주기를 설정하는 기능이 추가되었다. domain.xml의 <server>/<system-thread-

pool> 아래에 설정되며, 기본값은 5분이다.

● Web Container에서 사용하는 Thread Pool 구현체 변경에 따라 max-wait-queue 및 step 설정이 제거

되었다.

● Web Engine의 동적변경 가능한 설정이 추가

– Virtual Host 추가/삭제에 대한 동적 반영되었다.

– 추가된 Virtual Host의 host name 동적 추가 및 삭제의 동적 반영하도록 수정되었다.(삭제시 404에러

가 발생할 수 있다는 경고 메시지 출력)

– web-connections 설정 동적 변경이 확대되었다. (tcp, tmax 는 dispatch-config-class가로딩 가능한 경

우에만 동적변경가능)

– web-engine 설정 중에 동적변경 가능설정이 확대되었다.

- 새로운 Web Connection (단, TCP Listener, Tmax Connector 제외)

- Web Listener의 Thread Pool min/max 수정

- Web Engine의 모니터링 주기 수정

- Web Engine Accesslog on/off 및 로그 포맷 변경

● AJP13 SSL attribute를 지원하도록 수정

– Apache, modjk 등에 클라이언트 인증서 Export 설정을 할 경우 JEUS로 클라이언트 인증서 및 SSL

Cipher 등의 정보를 전달받을 수 있다.

● webtob-connector 설정 중 use-pipe 설정이 삭제

– webtob-connector 설정 중 use-pipe 설정을 삭제되었다. (domain-socket-address 설정이 존재하면

당연히 PIPE를 사용함)

● JSP 컴파일을 메모리 상에서 진행하도록 수정(in-memory jsp compilation)

– JSP 컴파일이 필요할 때 서비스 스레드에서 '.java', '.class' 파일을 생성하지 않고 메모리 상에서 JSP

파일을 클래스로 만들어서 서비스하도록 수정되었다.

– '.java', '.class' 파일은 필요한 경우가 있기 때문에 백그라운드 스레드를 이용해서 파일 시스템에 기록

한다. 단, JSP 파일에 대한 '.java' 컴파일이 실패했을 경우에는 서비스 스레드에서 .java 파일을 파일

시스템에 쓴다.

● 특정 Error Status에 대해서 응답할 때 Header에 connection: keep-alive를 추가해 주는 기능 추가

– jeus-web-dd.xml의 <keep-alive-error-response-codes> 태그에 원하는 status code를 ","로 구분하여

추가하면 설정된 status code를 응답할 때 "connection: keep-alive"를 추가하여 응답하는 기능이 추

가되었다.

● 2GB 이상의 데이터 전송을 지원하기 위하여 long type content-length를 사용하도록 수정

– Servlet 표준에서 int type의 content length를 지원하기 때문에 Servlet에서 content-length header 세

팅시에 2GB 이상의 데이터를 표현할 수 없는 문제가 있다.

제2장 JEUS v7.0 Fix#1 13

Page 24: JEUS Release Note · 2019-04-09 · 관련 안내서 본 문서를 읽은 후에는 다음 안내서를 읽어보기를 권한다. 안내서 설명 jeus 6 서버에 대한 전반적인

– 이를 해결하기 위하여 명시적인 content-length 설정을 통해서 2GB 이상의 데이터를 주고받을 수 있

도록 수정되었다.

2.2.11. Session Server

● Command에서 Option에 따른 오류를 로그로 출력하도록 변경

– Session 관련 Command에 잘못된 입력값이 들어온 경우 Command Exception으로 관리하고 입력값

이 무시되었다는 내용의 로그를 출력하도록 수정되었다.

● Session Manager Fail 후 백업 테이블을 재구성하기 전까지 delay를 설정하도록 수정

– Session Manager가 Fail된 이후 백업 테이블을 재구성하는 데까지의 시간을 설정하여 백업 서버가

없이 유지되는 시간을 최소화하도록 수정되었다.

– Cluster에 failover-delay, restart-delay로 초 단위로 설정한다.

2.2.12. Tool

● Server 관리 제어 명령을 서버 list로 수행할 수 있도록 변경

– start-server, stop-server 등 서버 관리 제어 명령을 서버 list 형태로 다수의 서버를 대상으로 수행할

수 있도록 변경되었다.

– concurrent start/stop/dump/gc/meminfo/resume/suspend 명령에 대하여 List 형태로 다수의 MS를 대

상으로 명령을 수행할 수 있다.

● jeusadmin one-step 명령어가 개선

– jeusadmin one-step 명령어를 사용할 때 한 번에 여러 개의 명령어을 사용할 수 있도록 수정되었다.

– jeusadmin의 Login 정보 이후의 실제 명령어 부분 전체를 큰따옴표(" ")로 둘러싼 뒤 개별 명령어 사

이를 세미콜론(;)으로 구분하여 다수의 명령어를 사용할 수 있다.

(예: jeusadmin -u jeus -p jeus "serverinfo;help deploy-Application" )

2.2.13. Transaction

● OTS 트랜잭션을 전파할 때 Timeout 시간 처리 방법이 변경

– OTS 트랜잭션이 전파될 때 -Djeus.tm.propagation.recalculated-timeout=true를 설정하면 active-

timeout을 소요된 시간만큼 감소시켜 넘겨주도록 변경되었다.

– 하위 호환성을 위하여 기본값은 false이다.

● Standalone 클라이언트에서 java:comp/UserTransaction를 다른 이름으로 lookup할 수 있도록 기능

이 개선

14 JEUS Release Note

Page 25: JEUS Release Note · 2019-04-09 · 관련 안내서 본 문서를 읽은 후에는 다음 안내서를 읽어보기를 권한다. 안내서 설명 jeus 6 서버에 대한 전반적인

– java:comp/UserTransaction을 타 WAS(Web Application Server)와 같이 별도의 이름(java:/UserTrans

action)으로 호출 가능하도록 하였고, 기존의 이름도 클라이언트에서 호출 가능하도록 허용한다.

2.2.14. WebAdmin

● Application 관리 기능에 대해서 복수의 Application이 대상이 되도록 변경

– Application 관리 기능이 복수의 Application에 대하여 동작하도록 수정되었다.

– 복수의 Application를 지원하는 명령은 start/stop/deploy/undeploy/install/uninstall 등이며, State가

INSTALLED인 경우 State가 INSTALLED인 다른 Application와는 동시 선택이 가능하지만 State가 다

른 Application과 함께 선택할 수 없다.

● 데이터소스 설정하는 경우 UI 편의성이 개선

– WebAdmin에서 데이터소스를 설정할 때 각종 정보를 직접 입력하지 않고 옵션들 중 선택하는 형태로

변경되었다.

2.2.15. CDI

● JSF에서 CDI를 사용할 수 있도록 수정되었다.

2.3. 버그 수정본 절에서는 JEUS의 모듈별 버그 수정사항을 정리한다.

2.3.1. Deployment

● Graceful Redeploy를 수행한 뒤 rollback하여 old Application으로 돌아간 경우 Application Path가

바뀌지 않아 재기동할 때 Old Application이 적용 안 되는 문제 수정

– Graceful Redeploy를 수행했다가 rollback할 경우 Application Path가 원복되도록 수정되었다.

– Graceful Redeploy를 수행하면 domain.xml에 Application 정보에 Application path가 new Application

으로 바뀌는데, rollback할 경우 Old path로 바꿔주어 Old Application이 수행되도록 수정되었다.

● Graceful Redeploy 이후 웹 애플리케이션 통계 정보를 확인할 수 없는 문제 수정

– Graceful Redeploy 실행 후 Old Application을 undeploy하면 jeusadmin에서 st -r 명령으로 확인해도

Application의 정보가 출력되지 않는 문제가 수정되었다.

제2장 JEUS v7.0 Fix#1 15

Page 26: JEUS Release Note · 2019-04-09 · 관련 안내서 본 문서를 읽은 후에는 다음 안내서를 읽어보기를 권한다. 안내서 설명 jeus 6 서버에 대한 전반적인

2.3.2. EJB

● EJB deploy할 때 클라이언트 View를 위한 jar 파일에 필요한 클래스들이 모두 포함되지 않는 문제 수

– EJB deploy할 때 클라이언트 view를 위한 jar 파일에 일부 클래스(특히 IIOP 관련 클래스들)가 포함되

지 않는 문제가 수정되었다.

– EJB 2.x 기준으로 EJB는 deploy가 성공될 때 클라이언트 view jar file 안에 Home, Remote Interface

및 RMI Stub 들만 생성되나, IIOP 통신을 위한 _IIOP Class 및 Tie Class 등이 필요하다(JEUS 5에서

는 제대로 포함되어 있었음).

– 'System Property jeus.ejb.compiler.rmic.enable=true'일 경우 예전처럼 rmic를 수행하여 Stub 관련 클

래스들을 generate 하도록 수정되었다.

2.3.3. Server

● Web Engine의 동적 설정 반영 사항을 서버의 Runtime 설정 정보에 업데이트하지 않는 문제 수정

– Web Engine의 동적 설정 반영사항(thread min, max 변경 등)이 Runtime 정보에 업데이트되지 않는

문제가 해결되었다.

2.3.4. Web Engine

● WebtoB에서 요청을 전달할 때 보내는 context path 속성을 무시 하도록 수정

– WebtoB에서 JEUS로 요청을 전달할 때 보내는 context path 속성 때문에 페이지 호출에 문제가 발생

하여 해당 속성을 무시하도록 수정하였다(JEUS 6.0 과 동일하게 동작하도록 수정됨).

● Default Servlet (ResourceServlet)에서 공백 문자가 있는 파일을 서비스하지 못하는 문제 수정

– Default Servlet (ResourceServlet)에서 공백문자(" ")가 있는 파일을 서비스하지 못하는 문제가 수정

되었다.

● Application 상태가 STOP일 경우 503 Error Page 처리가 되지 않고 NPE가 발생하는 문제 수정

– Application 상태가 STOP일 경우 설정된 Error Page가 없으면 503으로 응답하며, 설정된 Error Page

가 있는 경우는 Error Page로 이동하지 않고 NPE가 발생하는 문제가 수정되었다.

● Web Listener에 Server Listener의 read-timeout이 의도대로 적용되지 않는 문제 수정

– postdata-read-timeout 값이 설정되면 기존의 read-timeout 값이 설정된 postdata-read-timeout 값에

맞춰 변경되었다가 요청 종료 후 기존의 read-timeout 설정값으로 복원되어야 하는데, 복원되지 않던

문제가 해결되었다.

● ServletResponse.getCharacterEncoding()이 기본적으로 ISO-8859-1을 리턴하지 않는 문제 수정

16 JEUS Release Note

Page 27: JEUS Release Note · 2019-04-09 · 관련 안내서 본 문서를 읽은 후에는 다음 안내서를 읽어보기를 권한다. 안내서 설명 jeus 6 서버에 대한 전반적인

– Character Encoding이 설정되지 않은 경우 ServletResponse.getCharacterEncoding()이 ISO-8859-1

을 리턴하도록 수정되었다.

● http-listener의 postdata-read-timeout이 적용되지 않는 문제가 수정되었다.

● AJP13, WebtoB의 ServletRequest.getRemotePort() 구현 버그 수정

– ServletRequest.getRemotePort()이 기존에 -1을 리턴하던 것을 정상적인 Remote Port가 리턴되도록

수정하였다.

● Servlet Event Listener XXXDestroyed 이벤트 오류 수정

– ServletContextListener, ServletRequestListener, HttpSessionListener의 Destroy Event가 스펙에 맞

도록 Reverse Order로 발생하도록 수정되었다.

● HTTP Listener에서 max-keep-alive-request 지원 보완

– HTTP Listener가 Blocking I/O를 사용할 때 특정 클라이언트가 HTTP Thread를 독점하여 다른 Thread

의 요청을 처리하지 못하는 문제를 막기 위하여 최대 요청건수를 제한하도록 수정하였다.

2.3.5. Transaction

● OTS resource에 TX가 전파되었을 때 설정 값의 active Timeout을 설정해 주지 못하는 문제 수정

– OTS 트랜잭션이 전파될 때 domain.xml에 설정되어 있는 active-timeout 값이 아니라 default 값인 10

분으로 무조건 설정되는 문제가 수정되었다.

2.3.6. WebService

● java2wsdl tool에서 jaxrpc-mapping 파일이 생성되지 않는 문제 수정

– Linux 환경에서 Ant를 이용하여 java2wsdl를 실행할 때 jaxrpc-mapping file(mapping.xml)이 생성되지

않는 문제가 해결되었다.

● Message Serialization이 한 번 더 수행되면서 Message Serialization이 깨지는 문제 수정

– WebService Log를 FINEST로 설정할 경우 Message Serialization이 깨지면서 클라이언트 Handler가

정상 동작하지 않는 문제가 수정되었다.

● EJB-based JAX-WS에서 Service Endpoint Address 문제 수정

– jeus-webservices-dd.xml의 설정으로 Service Endpoint Address의 Context가 수정되지 않는 문제가

해결되었다.

2.3.7. CDI

● 웹 모듈에서 CDI Managed Bean Instance를 동작하지 않는 문제 수정

제2장 JEUS v7.0 Fix#1 17

Page 28: JEUS Release Note · 2019-04-09 · 관련 안내서 본 문서를 읽은 후에는 다음 안내서를 읽어보기를 권한다. 안내서 설명 jeus 6 서버에 대한 전반적인

– @Inject 과 같은 CDI Managed Bean Instance(annotation)가 웹 모듈에서 동작하지 않은 문제가 해결

되었다.

18 JEUS Release Note

Page 29: JEUS Release Note · 2019-04-09 · 관련 안내서 본 문서를 읽은 후에는 다음 안내서를 읽어보기를 권한다. 안내서 설명 jeus 6 서버에 대한 전반적인

제3장 JEUS v7.0 Fix#0

본 장에서는 JEUS v7.0 릴리즈에서 추가된 새로운 기능에 대해 간략히 설명한다.

3.1. 신규 기능JEUS 7에서는 Java EE 6의 주요 기능인 Meta Annotation과 Dependency Injection을 완벽히 지원함으로

써, 개발 생산성을 획기적으로 향상 시켰다. 또한 Java EE 6에서 향상된 여러 기술을 사용하여, 보다 안정

적인 환경을 제공한다.

3.1.1. Specification 변경

JEUS는 최신 버전 JEUS 7으로 발전하면서 많은 신기술과 새로운 스펙이 적용되었다. 특히 Java EE 6부

터 추가된 Annotation을 완벽히 지원해서, 개발 생산성을 획기적으로 향상시켰다.

다음은 JEUS 5에서부터 JEUS 7에 이르기까지의 적용되는 J2EE 스펙을 간단하게 보여준다. 스펙의 내용

에 따른 변경 사항에 대해서는 각각의 명시된 스펙을 참고한다.

JEUS 7JEUS 6JEUS 5Spec

Java EE 6Java EE 5J2EE 1.4J2EE

WebtoB 4.1WebtoB 4.1WebtoB

3.1.6

WebServer

1.0/1.11.0/1.11.0/1.1HTTP

1.11.11.1CGI

3.x/4.x/5.x3.x/4.x/5.x3.x/4.xPHP

ssl2/ssl3/tls1ssl2/ssl3/tls1ssl2/ssl3/tls1SSL

3.12.x/3.02.1EJB (Enterprise Java Beans)

지원지원지원RMI-IIOP

1.11.0.21.0.2JAF (JavaBeans Activation Framework)

1.11.11.1EJB to CORBA Mapping

1.61.51.5JCA (Java EE Connector Architecture)

1.11.11.1JMS (Java Message Service API)

1.11.0-Common Annotations for the Java Platform

2.01.0-JPA (Java Persistence API)

제3장 JEUS v7.0 Fix#0 19

Page 30: JEUS Release Note · 2019-04-09 · 관련 안내서 본 문서를 읽은 후에는 다음 안내서를 읽어보기를 권한다. 안내서 설명 jeus 6 서버에 대한 전반적인

JEUS 7JEUS 6JEUS 5Spec

1.41.41.3JavaMail API

1.11.11.0.1BJTA (Java Transaction API)

1.01.01.0JTS (Java Transaction Service)

1.2.11.2.11.2.1JNDI (Java Naming and Directory Interface)

1.0--CDI (Contexts and Depency Injection for Java. Web Beans)

1.0--Bean Validation

1.0--Managed Beans

1.1--Interceptors

2.22.12.0JSP

3.02.52.4Servlet

2.01.2-JSF (JavaServer Faces)

1.21.2-JSTL

1.01.01.0XSLT

4.03.03.0JDBC

지원지원지원IBM MQ

지원지원지원Sonic MQ

1.11.11.0J2EE Management

1.21.21.1J2EE Deployment API

1.0.11.0.11.0.1JAAS

1.31.11.0JACC

1.0--JASPIC

1.31.21.0Implementing Enterprise Web Services

1.11.11.0WS-I Basic Profile

1.11.0/1.11.0WS-Security

1.11.0-WS-Reliable Messaging

1.0--WS-Transaction

1.0--WS-Addressing

1.1/1.21.21.2SOAP

1.11.11.1WSDL

2.12.0-Web Service Metadata

1.31.31.1/1.2SAAJ

2.0/3.02.0/3.02.0/3.0UDDI

20 JEUS Release Note

Page 31: JEUS Release Note · 2019-04-09 · 관련 안내서 본 문서를 읽은 후에는 다음 안내서를 읽어보기를 권한다. 안내서 설명 jeus 6 서버에 대한 전반적인

JEUS 7JEUS 6JEUS 5Spec

1.11.11.1JAX-RPC

2.22.1-JAX-WS

1.1--JAX-RS

1.01.01.0JAXR

2.22.11.0JAXB

(JavaSE 6에

포함)

1.31.2JAXP

1.01.0-WS-Policy

1.21.2-WS-Security Policy

1.31.3-WS-Trust

1.31.3-WS-Secure Conversation

1.01.0-WS-Policy Attachment

(JavaSE 6에

포함)

1.0-StAX (Streaming API for XML)

지원지원지원OTS

지원지원지원Java IDL API

미지원지원지원IDE Tool

미지원미지원JEUSBuilderGUI Tool

WebAdminWebAdminWebAdminWeb Tool

Console Tool,

WebAdmin

Console

Tool, WebAd

min

Console

Tool, WebAd

min

Monitoring Tool

6.0(인증)5.0/6.01.4/5.0JDK

3.1.2. JEUS System

● 도메인 구조 도입

– 최대 관리 단위가 노드에서 도메인으로 확장되었다.

– 매니저 하나와 여러 개의 컨테이너로 구성되었던 노드가 최소인 동시에 최대의 관리 단위였으나, 여

러 개의 서버로 구성된 도메인이 최대 관리 단위가 되었다.

– 도메인 내에는 여러 서버를 관리하는 DAS(Domain Administration Server)라는 특별한 서버와, 실제

애플리케이션을 서비스하는 서버인 MS(Managed Server)가 포함된다. 자세한 내용은 “JEUS Domain

안내서”의 “제1장 소개”를 참조한다.

● Console 명령어 통합

제3장 JEUS v7.0 Fix#0 21

Page 32: JEUS Release Note · 2019-04-09 · 관련 안내서 본 문서를 읽은 후에는 다음 안내서를 읽어보기를 권한다. 안내서 설명 jeus 6 서버에 대한 전반적인

– 기존의 모든 console 명령어가 jeusadmin 으로 통합되었다. 자세한 내용은 "JEUS Reference Book"을

참조한다.

● 설정 통합

– 시스템 프로퍼티나 여러 개의 설정 파일로 흩어져 있던 설정을 domain.xml로 통합하였다. 따라서

jeusadmin이나 WebAdmin으로 모든 설정이 변경 가능하게 되었다.

– 서버 JVM에 적용하고자 하는 설정들도 domain.xml로 통합되면서 xml로 부터 JVM Option을 읽어 서

버 JVM에게 넘겨주는 Launcher라는 임시 프로세스가 도입되었다. 자세한 내용은 “JEUS Server 안

내서”의 “1.6. Launcher”를 참조한다.

● 디렉터리 구조 변경

– 도메인 구조 도입과 설정 통합으로 인해 디렉터리 구조가 변경되었다. 자세한 내용은 “JEUS Server

안내서”의 “1.5. 서버 디렉터리 구조”를 참조한다.

● 서버의 lifecycle 변경

– STANDBY 상태와 SUSPENDED 상태가 추가되었다.

– STANDBY 상태란 시작 중에 등록된 애플리케이션을 Distribute하던 중 실패한 것이 있어 'RUNNING'

상태로 이동하지 못하고 머무르는 상태이며, SUSPENDED 상태는 관리자가 의도적으로 모든 애플

리케이션을 정지하도록 Suspend를 수행한 상태를 말한다. 자세한 내용은 “JEUS Server 안내서”

의 “3.1.1. Managed Server의 Lifecycle”을 참조한다.

● 서버 비정상 종료시 SSH를 통해 재시작

– 도메인 구조가 도입되면서 같은 머신에 있던 매니저가 컨테이너를 재시작시켜주는 범위에서 벗어나

다른 머신에 존재하는 서버를 DAS가 재시작시켜줄 필요가 생겨 SSH를 이용하는 재시작 기능이 추

가되었다.

● 엔진별 시작/종료 제한

– 애플리케이션을 제대로 서비스 하기 위해서 필요한 엔진 서비스를 사용자가 판단하여 시작하거나 종

료하는 것 보다 서버가 필요한 엔진 서비스를 시작/종료하도록 변경되었다.

● 설정 자동 동기화

– 새로 추가된 도메인 범위내에 각 서버들의 설정이 자동으로 동기화된다.

– JEUS 6까지는 클러스터 내 노드들이 같은 설정을 가지기 위해 수동으로 설정을 동기화시켜야 되었

지만 JEUS 7은 DAS가 클러스터 뿐아니라 도메인 범위내 모든 서버의 설정을 자동으로 동기화시켜

준다. 자세한 설명은 “JEUS Domain 안내서”의 “1.3. 구성요소”를 참조한다.

● 동적 설정 변경 기능 추가

– JEUS 6까지는 설정을 변경한 후 이를 적용하기 위해서는 해당 노드를 재시작해야 했다. JEUS 7에서

는 서버의 재시작 없이 변경한 설정이 실시간으로 적용이 가능하다. 자세한 설명은 “JEUS Domain 안

내서”의 “제3장 도메인 설정변경”을 참조한다.

● 모니터링의 최대 단위 확장

22 JEUS Release Note

Page 33: JEUS Release Note · 2019-04-09 · 관련 안내서 본 문서를 읽은 후에는 다음 안내서를 읽어보기를 권한다. 안내서 설명 jeus 6 서버에 대한 전반적인

– JEUS 6까지 하나의 노드씩 모니터링을 따로 해야했으나 JEUS 7에서는 도메인 또는 클러스터 단위

로 여러 서버의 모니터링을 한 번에 가능해졌다.

● Thread Pool 통합

– 서버 내에서 서비스별로 각각 사용하던 Thread Pool 을 하나도 통합함으로써 Thread의 재사용율을

높이고, 또한 중요한 서비스가 다른 서비스로 인해 Thread를 할당 받지 못하는 경우를 대비하여 일정

개수를 먼저 점유할 수 있는 기능이 추가되었다.

3.1.3. Server

● DAS (Domain Admin Server), MS (Managed Server)의 도입

– JEUS 7부터는 manager, container의 개념이 사라지고 Domain 구조가 도입되었다.

– JEUS 6에서는 JEUS Manager와 Engine Container가 한 머신 안에서 관리가 되어야 했지만 Domain

구조를 도입하여 그러한 제약사항이 없어지면서 Domain을 관리하는 Server로 DAS를 도입하였다.

– JEUS 6의 Engine Container와 같이 실제 Application Service를 수행하는 Server는 MS라 한다. DAS

도 Application Service를 수행할 수 있으나 권장하지는 않는다.

– DAS는 Domain을 관리하기 때문에 MS의 서비스 외에 추가된 여러 서비스를 제공한다. 이러한 DAS

와 MS의 서비스의 자세한 내용은 “JEUS Server 안내서”의 “1.2. Domain Administration Serv

er(DAS)”,“JEUS Server 안내서”의 “1.3. Managed Server(MS)”를 참조한다.

● Launcher 도입

– JEUS 7부터 DAS와 MS server 모두 launcher를 통해 기동하게 된다.

– JEUS 6 까지는 JEUS Manager, Engine Container 가 물리적으로 같은 머신에 있어야 하는 제약이 있

었으나 JEUS 7부터는 그러한 제약이 사라지게 되었고, Launcher에서 Remote DAS의 설정 파일을

받아와서 Server를 구동시키게 된다. 자세한 내용은 “JEUS Server 안내서”의 “1.6. Launcher”를 참조

한다.

● Server의 State 관리 강화

– JEUS 6보다 Server의 State를 자세하게 관리하고 jeusadmin과 WebAdmin을 통해 사용자가 현재

State에 맞는 Action을 취할 수 있다. 자세한 내용은 “JEUS Server 안내서”의 “제3장 JEUS 서버 제어

및 모니터링”을 참조한다.

3.1.4. Domain

● 도메인 구조 도입

– JEUS 7에는 도메인 개념이 적용되어 여러 클러스터 및 수 많은 서버들을 통합적으로 관리할 수 있다.

도메인을 관리하는 서버를 DAS라고 하며, 실제 애플리케이션을 서비스하는 서버를 MS라고 한다.

제3장 JEUS v7.0 Fix#0 23

Page 34: JEUS Release Note · 2019-04-09 · 관련 안내서 본 문서를 읽은 후에는 다음 안내서를 읽어보기를 권한다. 안내서 설명 jeus 6 서버에 대한 전반적인

– JEUS를 설치하면 기본 도메인이 생성되고 DAS가 설정되며, 필요에 따라 도메인을 추가하거나 MS

를 추가하여 사용하도록 한다.

– 구조 변경에 따라 디렉터리 구조도 변경 되었으며, 도메인 구조에 대한 자세한 내용은 "JEUS Domain

안내서"를 참고한다.

● 도메인 설정 변경

– 도메인의 모든 설정은 관리의 주체인 DAS를 통하는 것을 기본으로 한다(XML을 직접 편집하는 것과

같이 DAS를 통하지 않은 설정 변경의 경우 정상 동작하지 않을 수 있음에 주의한다).

– 동시에 여러 명이 같은 설정을 편집하는 것을 막기 위해 DAS를 통하여 설정을 변경할 때에는 LOCK

을 얻어서 진행하도록 한다. 자세한 내용은 “JEUS Domain 안내서”의 “제3장 도메인 설정변경”을 참

고한다.

● 서버 상태 관리 및 제어

– 도메인에 속한 MS는 DAS를 통해 상태를 확인하고 서버를 종료하거나 시작하는 등의 제어가 가능하

다. 자세한 내용은 “JEUS Domain 안내서”의 “제4장 서버 Lifecycle”을 참고한다.

● 노드 매니저

– DAS가 SSH를 이용하여 MS를 실행할 수 있도록 하는 기능이다.

– 사전에 MS가 부팅되는 머신에 개인키를 이용한 SSH 접속이 가능하도록 설정되어 있어야 하며, 관련

정보를 DAS가 알 수 있도록 설정해 주어야 한다.

– 설정이 완료된 MS는 DAS에 명령을 내려 간편하게 부팅할 수 있게 되며, MS가 비정상 종료될 경우

DAS가 이를 감지하여 다시 부팅을 시도하게 된다.

3.1.5. Deployment

● Graceful undeploy / redeploy 지원

– undeploy 명령 중에 이미 처리중인 요청이 있으면 요청 처리를 완료하고 undeploy를 진행할 수 있는

Graceful undeployment 지원한다 (다양한 옵션 제공)

– 이미 디플로이한 애플리케이션을 서비스 중단없이 업그레이드를 해주는 Graceful redeployment 지

원한다. Standalone Web Module에 한해서만 Graceful redeployment 기능을 지원한다.

– 자세한 내용은 “JEUS Applications & Deployment 안내서”의 “제2장 Graceful Undeployment와 Rede

ployment”를 참고한다.

● DAS를 통하여 domain 환경의 deployment 관리

– application을 DAS로 upload하는 install 기능을 지원한다.

– 영구 디플로이(persistent deploy)를 기본으로 한다.

– Application 에 ID 를 부여해서 Domain 내의 유일성을 보장한다.

– Managed Server에서는 DAS로부터 application file을 동기화 한다.

24 JEUS Release Note

Page 35: JEUS Release Note · 2019-04-09 · 관련 안내서 본 문서를 읽은 후에는 다음 안내서를 읽어보기를 권한다. 안내서 설명 jeus 6 서버에 대한 전반적인

– Application Library를 domain 별로 설정(DOMAIN_HOME/lib/application) 가능하게 한다.

– DAS로 Application을 Install하지 않아도 deploy할 수 있도록 Domain에 Application Repository를 추

가하는 기능을 지원한다.

– Deploy 시 Absolute path를 주고 deploy할 수 있도록 하는 기능을 지원한다.(개발시점의 편의를 위해

지원하는 기능으로, 운영 환경에서는 사용을 권하지 않는다)

– Cluster를 Target 으로 deploy 기능을 지원한다.(All Target을 선택할 경우, DAS에도 Application이

Deploy되고, 명령에 일부 제약이 있으므로 운영환경에서는 사용을 권고하지 않는다)

– Application의 Start/Stop 이 실패한 경우 DAS에서Start/Stop 작업을 재시도한다..

● Deployment image 재활용

– Boot-time Deploy시 Packaged Application이 변경되지 않은 것으로 확인되면 이전 Deployment image

를 재활용한다.

3.1.6. WebAdmin

WebAdmin 은 전체적으로 신규개발 되었다.

● JEUS 7 Domain 구조 및 설정 변경 적용

– Domain 구조에 적합하게 모든 화면이 새로 작성되었다.

● Lock & Edit 지원

– Lock & Edit를 통한 편집 및 동적 변경을 지원한다.

● Web Console을 통한 console 명령 사용

– Web Console 기능을 통해서 jeusadmin의 일부 명령을 WebAdmin에서 바로 사용이 가능하다.

● 온라인 도움말 변경

– JEUS Manaual을 WebAdmin 상에서 확인이 가능하고 관련 페이지에 대한 매뉴얼을 직접 참고할 수

있다.

3.1.7. Web Engine

● New Specification

– JEUS 7 Web Engine은 새로은 Specification으로 Java Server Faces 2.0 (JSR314), Java Server Faces

2.1, Servlet 3.0(JSR315), JSP 2.2(JSR245), Expression Language 2.2(JSR245), Contexts and De

pendency Injection for the Java EE paltform(JSR299), Dependency Injection for Java(JSR330)을 지

원한다.

● JSP Graceful Reloading

제3장 JEUS v7.0 Fix#0 25

Page 36: JEUS Release Note · 2019-04-09 · 관련 안내서 본 문서를 읽은 후에는 다음 안내서를 읽어보기를 권한다. 안내서 설명 jeus 6 서버에 대한 전반적인

– NAS나 Remote 장비에 exploded 모드로 deploy하여 여러 웹 엔진에서 이를 공유하여 동일한 서비스

를 수행하는 경우, 부하상황에서 JSP가 수정되었을 경우, JSP 컴파일로 인한 Hang이 발생할 가능성

이 있다. 이 Hang 현상을 최소한으로 줄이기 위하여 한 웹 엔진에서만 변경된 JSP를 컴파일하고, 나

머지 웹 엔진은 컴파일이 끝날 때까지 기존의 컴파일된 것으로 서비스를 제공하는 기능이 추가되었

다. 자세한 설명은 “JEUS Web Engine 안내서”의 “4.3.3. JSP Graceful Reloading 기능”을 참조한다.

● WEB-INF/lib/*.jar!META-INF/resources 지원

– WEB-INF/lib/ 아래에 있는 jar 파일 중 META-INF/resources에 해당하는 내용들만 서버내부에 별도의

위치에 압축을 풀어놓고 해당 리소스를 서비스한다. ServletContext API에 정의한 대로 getRealPath(),

getResource(), getResourcePaths() API를 통해서 리소스를 얻을 수 있다. 이 기능은 jsp, image 등도

라이브러리로 제공하기 위한 것이다.

● 개발 타임 Servlet Class HotSwap

– 웹 애플리케이션 개발 시 Servlet 클래스의 변경이 자주 일어날 경우, 이 클래스를 반영하기 위해서

웹 애플리케이션을 재배치할 수 있으나, 이 과정은 웹 애플리케이션의 undeploy와 deploy가 일어나

는 것이라 시간이 걸린다. 이와 같은 작업이 반복될 경우 이 시간들의 합이 무시할 수 없게 된다. 이

시간을 줄이고자 JEUS 7에서는 간단한 Servlet 클래스의 변경의 경우 웹 엔진에서 변경된 Servlet 클

래스만을 동적으로 반영해주는 기능을 제공한다. 이 기능은 모든 형태의 변경에 대하여 지원되는 기

능이 아니므로 제약사항을 확인해서 사용해야하고, 운영환경에서는 사용하지 말아야 한다.

자세한 설명은 “JEUS Web Engine 안내서”의 “제8장 클래스 동적 반영”을 참조한다.

● 웹 공격 대응 기능

DDOS와 같은 웹 애플리케이션에 대한 악의적인 공격이 있을 경우에 대비하여, 시스템 관리자가 이들

공격에 대하여 웹 엔진에서 대응을하여 안정적인 서비스를 할 수 있는 기능을 제공한다.

크게 다섯 가지 방법으로 웹 공격에 대하여 대응할 수 있는 기능을 추가하였다.

– Post data size의 제한

– GET/POST 요청에 포함된 Parameter의 갯수를 제한

– 요청에 포함된 Header의 갯수를 제한

– Header 하나의 사이즈 제한

– Query String의 사이즈 제한

자세한 설명은 “JEUS Web Engine 안내서”의 “1.6.13. 웹 공격 대응 설정”을 참조한다.

● Graceful Redeployment of Standalone Web Module

– 현재 서비스 중인 애플리케이션의 중단없이 새로 redeploy한 애플리케이션으로 자연스럽게 서비스

를 제공하는 기능이다. 자세한 설명은 “JEUS Web Engine 안내서”의 “1.6.10. 로그 설정”을 참조한다.

● Common Log Format 지원

– Access Log의 포맷을 Common Log Format을 기본으로 지원한다. 하위호환을 위해 JEUS 6의 log

format도 지원한다. 자세한 설명은 “JEUS Web Engine 안내서”의 “1.6.10. 로그 설정”을 참조한다.

● Virtual Host별 Access Log 설정 추가

26 JEUS Release Note

Page 37: JEUS Release Note · 2019-04-09 · 관련 안내서 본 문서를 읽은 후에는 다음 안내서를 읽어보기를 권한다. 안내서 설명 jeus 6 서버에 대한 전반적인

– Virtual Host 별로 Access Log 설정이 추가되었다. 자세한 설명은 “JEUS Web Engine 안내서”의 “1.6.10.

로그 설정”을 참조한다.

● Web Admin enable/disable 기능

– Web Admin을 동적으로 enable/disable을 설정하는 기능이 추가되었다. 자세한 설명은 “JEUS Reference

Book”의 “4.2.3.7. disable-webadmin”을 참조한다.

● 웹 엔진 설정 동적 변경 기능

– 웹 엔진의 설정 중 동적 설정이 반영되는 기능이 추가되었다. 동적 반영이 가능한 설정은 web-engine.xsd

스키마상의 monitoring, threadpool의 min, max, webtob-threadpool의 number, access-log의 enable,

format, exclude-ext이다.

● Redirect Strategy

– javax.servlet.http.HttpServletResponse.sendRedirect(String location) API 사용시에 location을 절대

URL로 변환하는 과정의 정책을 적용할 수 있다. 자세한 설명은 “JEUS Web Engine 안내서”의 “3.3.6.

웹 보안 설정”을 참조한다.

3.1.8. Session Server

● Dynamic Configuration

– GMS도입으로 백업서버의 결정을 Static한 설정기반에서 현재 서버의 상황에 맞춰서 결정하는 기능

을 추가했다.

– NODE 정보를 고려하여 다른 Machine을 일차적 백업으로 결정한다.

참고

JEUS 6에서는 Static한 설정으로만 기동이 가능했다.

● Sticky Info Encoding

– 세션 쿠키에 첨부하던 Sticky정보를 Encoding하여 노출을 막았다.

참고

JEUS 6에서는 Node1_Container1 등의 정보가 노출되었다.

● 설정 간소화

– 단순 Cluster 설정만으로 세션 서버가 동작하도록 구성했다.

참고

JEUS 6에서는 한페이지가 넘어가는 설정으로 동작이 되었다. (분산식 세션 서버기준)

● Servlet 3.0지원

제3장 JEUS v7.0 Fix#0 27

Page 38: JEUS Release Note · 2019-04-09 · 관련 안내서 본 문서를 읽은 후에는 다음 안내서를 읽어보기를 권한다. 안내서 설명 jeus 6 서버에 대한 전반적인

– HttpOnly : 브라우저가 쿠키를 http 요청에만 사용하게끔 있게 하여 Script로 Cookie가 노출되지 않았

다.

3.1.9. EJB

● EJB 3.1 지원

● EJB codegen시 Compiler API 지원

EJB 2.x 코드 컴파일 시에는 항상 Java Compiler API를 사용하도록 수정하였다. 이를 이용하면 특정

JDK에 의존하지 않고, 또한 별도의 프로세스를 실행시키지도 않으면서 같은 VM에서 컴파일러를 수행

할 수 있어 컴파일 속도가 크게 향상된다. 만약 호환성에 문제가 있을시에 ' -Djeus.ejb.compiler.use-java-

compiler-api=false'으로 예전 방식을 사용할 수 있다.

3.1.10. JMS

● Message Global Ordering 기능 추가

– Queue에 produce되는 메시지에 대해서 JMS 1.1 스펙에서 정의하는 것 이상의 강력한 순서 보장 기

능을 제공한다.

– 단일 서버, 혹은 클러스터링 상황에서 메시지가 Queue에 produce된 순서대로 consume되는 것을 보

장한다.

● Message Group 기능 추가

– 특정 메시지들을 하나의 그룹으로 명시하면 해당 메시지들은 반드시 서버에 모두 produce된 다음에

하나의 클라이언트로 한 번에 전달되는 것을 보장한다.

– 개별적으로는 의미가 없고, 모두 모였을 때만 의미를 가지는 메시지들이 있을 때 사용할 수 있다.

● Message Sort 기능 지원

– Queue 혹은 Durable Subscription에 쌓여있는 메시지를 사용자가 명시한 특정한 키값에 대해서 정렬

해주는 기능을 한다.

● Message Bridge 기능 지원

– 전혀 다른 벤더, 다른 버전의 JMS Provider의 Destination간 메시지를 자동으로 전달해 주는 기능을

한다.

● Failover/Failback 기능 지원 (Active/Standby 방식의 Failover)

– Active 서버의 장애시 Standby 서버가 기동하여 서비스를 대신하고, Active 서버가 복구될 때 다시

Active 서버가 서비스를 이어서 한다.

● Clustering 기능

28 JEUS Release Note

Page 39: JEUS Release Note · 2019-04-09 · 관련 안내서 본 문서를 읽은 후에는 다음 안내서를 읽어보기를 권한다. 안내서 설명 jeus 6 서버에 대한 전반적인

– Connection 분산: Connection Factory가 클러스터 내의 서버들을 round-robin으로 선택하여 접속한

다.

– Message Starvation 해결: 메시지가 없는 서버에서 consume하려고 할 때 내부적으로 서버들간에 메

시지를 이동시켜서 클라이언트에게 전달할 수 있도록 한다.

3.1.11. WebService

● 신규 Spec 지원

– JAX-WS 2.2 지원

– JAXB 2.2 지원

– JAX-RS 1.1 지원

– Web Services for Java EE 1.3 지원

– WS-Addressing, WS-ReliableMessaing, WS-Security, WS-Policy 등 부가적인 WS 확장 Stack 지원

3.1.12. Tool

모든 명령어가 jeusadmin으로 통합되었다. JEUS 7에서 변경되는 구조에 맞춰 jeusadmin 과 콘솔 명령어

를 새롭게 구현하였다.

3.1.13. Security

● 명령어 실행 권한 부여 기능 추가

사용자 별로 콘솔 툴(jeusadmin) 명령어 실행 권한을 부여할 수 있는 기능이 추가되었다. 콘솔 툴에 존

재하는 명령어의 이름을 기준으로 권한 설정이 가능하며, 사용자는 권한이 존재하는 명령어만 실행 가

능하다. 자세한 설정 방법은 “JEUS Server 안내서”의 “6.6. 데이터소스 관련 설정 동적 변경”을 참고한

다.

3.1.14. JDBC

● domain architecture에 적합한 data source 관리 구조로 변경

– domain 구조로의 변경, manager / container 통합 등으로 기존의 data source 관리 구조에 변화가 생

겼다.

– 각 MS에서 그것에 등록된 data source를 관리하고 DAS는 MS와 연계하여 domain 범위에서 data

source 전체를 관리한다. 자세한 내용은 “JEUS Server 안내서”의 “6.3. 데이터소스 및 Connection

Pool 관리”를 참조한다.

제3장 JEUS v7.0 Fix#0 29

Page 40: JEUS Release Note · 2019-04-09 · 관련 안내서 본 문서를 읽은 후에는 다음 안내서를 읽어보기를 권한다. 안내서 설명 jeus 6 서버에 대한 전반적인

● JDBC data source 및 connection pool 설정에 대한 동적 변경

– JDBC data source 및 connection pool 설정에 대한 동적 변경을 지원한다.

– 설정 변경시 server 재기동 없이 runtime에 설정 변경 사항이 즉시 반영된다. 이는 jeusadmin과 We

bAdmin 모두에서 가능하다. 자세한 내용은 “JEUS Server 안내서”의 “6.6. 데이터소스 관련 설정 동적

변경”, “JEUS Server 안내서”의 “6.7. 클러스터 데이터소스 관련 설정 동적 변경”을 참조한다.

● JDBC 4.0 지원

– Java SE 6에는 JDBC spec.이 4.0으로 변경되었다.

– Java SE 6 환경에서 JEUS를 사용하는 경우 JDBC 4.0 드라이버를 사용할 수 있도록 하고 관련 기능

들을 지원한다.

3.1.15. JPA

● 신규 Spec 지원

– Java Persistence 2.0 지원 및 EclipseLink 2.3 제공한다. 자세한 내용은 "JEUS JPA 안내서"를 참조한

다.

3.1.16. JCA

● 신규 Spec 지원

– JCA 1.6 지원

3.2. 변경 기능본 절에서는 JEUS의 모듈별 설정의 변경 사항을 정리한다.

3.2.1. Web Engine

● http-listener, tcp-listener, ajp13-listener 가 네트워크 레이어의 서버 리스너를 사용하도록 변경

– 클라이언트로부터의 새로운 연결 및 요청 등을 통합 네트워크 레이어를 사용하도록 변경하였다. 이

에 따라 세 개의 리스너들은 별도의 네트워크 관련 설정을 하지 않고, server-listener-ref 설정을 통해

서 서버별 네트워크 리스너를 사용하도록 설정한다.

● 가상 호스트 변경 사항

– 존재하지 않는 가상 호스트를 타겟으로 디플로이할 경우 실패한다. 기존에는 알아서 기본 가상 호스

트를 사용하도록 했지만 이는 매우 모호한 동작이라고 판단하였다. 또한 똑같은 웹 애플리케이션을

여러 개의 가상 호스트에 디플로이 할 수 없다.

30 JEUS Release Note

Page 41: JEUS Release Note · 2019-04-09 · 관련 안내서 본 문서를 읽은 후에는 다음 안내서를 읽어보기를 권한다. 안내서 설명 jeus 6 서버에 대한 전반적인

● jeusadmin의 jspc 명령으로 대체

– 이미 디플로이된 웹 애플리케이션의 JSP 파일들을 미리 컴파일해두는 기능을 jeusadmin의 jspc 명령

으로 대체하였다.

● ResourceServlet을 web.xml servlet-mapping으로 매핑 가능하도록 제공

– Resource Servlet을 특정 URL로 매핑하여 서비스를 가능하도록 설정한다. 자세한 내용은 “JEUS Web

Engine 안내서”의 “3.3.5. 부가 기능 사용을 위한 설정”을 참조한다.

● 디플로이된 웹 애플리케이션의 정보 강화

– 디플로이된 웹 애플리케이션의 Servlet, Filter, Listener에 대해서 jeusadmin, 웹 어드민에서 자세하게

정보를 보여줄 수 있도록 지원한다. 자세한 내용은 “JEUS Reference Book”의 “4.2.6.3. application-

info”를 참조한다.

● AppCompiler에 의해 precompile 된 JSP 클래스들이 디플로이시 중복 copy되는 경우 방지

– AppCompiler에서 웹 모듈별로 생기는 .warjspwork 디렉터리 안에 .precompiled_result_file라는 별도

의 체크 파일을 만들어서 이 파일과 기존에 서버상에 가지고 있는 _generated_에 있는 체크 파일의

변경 시간을 비교해서 .warjspwork 디렉터리 안의 JSP 결과물들을 복사할지 결정하도록 변경한다.

이를 통해 컴파일 시간이 긴 경우에 시간차이로 인한 중복 copy등의 문제를 해결하였다.

3.2.2. Deployment

● Persistent Deploy를 기본으로 변경

deploy명령을 하면 runtime에 application이 deploy되고, 설정파일에도 deploy정보가 적혀 재부팅시에

도 application이 deploy될 수 있도록 한다

● 공유디스크에 존재하는 애플리케이션을 위한 deploy option 추가

애플리케이션 파일이 공유디스크에 존재하는 경우 불필요한 file 복사를 하지 않도록 deploy시 -shared

옵션을 줄 수 있다.

● Auto redeploy 기능 변경

domain 환경에서는 auto deploy를 지원하지 않는다.

● jeus-application.xsd 재정의

jeus-application.xsd은 domain.xml과 설정을 공유하지 않으며 jeus-application-dd.xml의 schema로서

만 사용된다.

3.2.3. Session Server

● 디폴트로 사용하던 세션서버를 중앙식에서 분산식으로 변경하여 OOM 발생 상황을 줄인다.

제3장 JEUS v7.0 Fix#0 31

Page 42: JEUS Release Note · 2019-04-09 · 관련 안내서 본 문서를 읽은 후에는 다음 안내서를 읽어보기를 권한다. 안내서 설명 jeus 6 서버에 대한 전반적인

3.2.4. Transaction Manager

● Transaction timeout 이후에 EJB 호출시 transaction propagation에러가 발생하도록 변경

– transaction timeout 발생 후 commit이 될 수 있는 문제 수정

– transaction timeout 발생 후에 JDBC connection을 계속 사용하거나, EJB transaction propagation이

이루어질 때 commit이 될 수 있는 문제를 수정하였다.

3.2.5. JMX

● JEUS 7에서 Manager와 Container 개념이 삭제됨에 따라 이를 관리하는 MBean들이 삭제되었으며, 새

롭게 도입된 도메인 구조에 맞는 MBean들이 새롭게 추가되었다. 각 MBean들에 대한 자세한 정보는

JEUS API javadoc를 참고한다.

● MBean ObjectName 형식이 변경되었다. JEUS 6에서는 ObjectName에는 관리 그룹인 Node를 나타내

는 JeusManager 키가 존재하였으나, JEUS 7에서는 JeusManager가 존재하지 않으므로 삭제되었다.

대신 도메인을 나타내는 J2EEDomain 키가 새롭게 추가되었다. ObjectName에 대한 자세한 사항은

“JEUS JMX 안내서”의 “3.4. MBean Object Names”을 참고한다.

3.2.6. Logging

● JEUS Logger의 default handler를 file handler로 변경

– JEUS Logger의 기본 핸들러를 file handler로 변경한다. 설정을 하지 않더라도 모든 log message는

기본 log file에 남는다.

– console handler는 설정할 수 없다. console화면에 JEUS log message를 출력하고 싶다면, JEUS를

부팅할 때 -verbose옵션을 주도록 변경되었다.

3.2.7. Security

● 도메인 구조에서의 보안 정책

– 도메인에 속한 모든 서버는 DAS가 갖고 있는 설정을 기준으로 보안 설정을 공유한다. 즉, 모든 서버

에서 같은 보안 서비스가 실행되며 사용자 계정 정보, 권한 설정 정보를 공유한다.

– 보안 시스템 설정에 대한 자세한 내용은 “JEUS Security 안내서”의 “제2장 보안 시스템 설정”을 참고

한다.

3.2.8. JNDI

● JNDI replication default값 false로 변경

32 JEUS Release Note

Page 43: JEUS Release Note · 2019-04-09 · 관련 안내서 본 문서를 읽은 후에는 다음 안내서를 읽어보기를 권한다. 안내서 설명 jeus 6 서버에 대한 전반적인

클러스터링 환경에서 바인드를 할 경우 모든 JNDIServer로 해당 객체가 복사되었지만 지금은 복사되지

않는다. -Djeus.jndi.jns.replicatebindings=true로 설정하면 복사가 된다.

● <export-cos-naming> element를 삭제

COSNamingService를 사용하려면 부팅시 별도의 설정이 필요했으나 지금은 필요한 시점에 서비스를

자동으로 제공한다.

3.2.9. JDBC

● Connection Pool 모니터링을 위한 jeusadmin 명령 통합

JDBC Connection Pool과 JCA Connection Pool의 제어 및 모니터링 명령을 통합하여 제공한다(jeusadmin

과 WebAdmin 모두) 자세한 내용은 “JEUS Server 안내서”의 “6.8. JDBC Connection Pool 모니터링”을

참조한다.

3.2.10. JCA

● 커넥터 리소스 설정을 각 모듈별 설정(jeus-connector-dd.xml)에서 domain.xml로 변경

resource adaptor module을 connector resource로서 등록하여 사용할 수 있다. 자세한 내용은 “JEUS

JCA 안내서”의 “제4장 리소스 어댑터”을 참고한다.

● Connection Pool 모니터링을 위한 jeusadmin 명령 통합

JDBC Connection Pool과 JCA Connection Pool의 제어 및 모니터링 명령을 jeusadmin과 WebAdmin에

서 통합하여 제공한다.

제3장 JEUS v7.0 Fix#0 33

Page 44: JEUS Release Note · 2019-04-09 · 관련 안내서 본 문서를 읽은 후에는 다음 안내서를 읽어보기를 권한다. 안내서 설명 jeus 6 서버에 대한 전반적인