JEUS Server 안내서 

JEUS v6.0 Fix#9

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 SYMPHONY SOFTWARE1.1, TRILEAD-SSH2, Bouncy Castle, BSD, MIT, SIL OPEN FONT1.1

관련 상세한 정보는 제품의 다음의 디렉터리에 기재된 사항을 참고해 주십시오. : ${INSTALL_PATH}/lib/licenses

안내서 정보

안내서 제목: JEUS Server 안내서 

발행일: 2013-10-31

소프트웨어 버전: JEUS v6.0 Fix#9

안내서 버전: v2.1.4


내용 목차

안내서에 대하여
1. 소개
1.1. 구성 요소
1.2. 노드
1.2.1. 가상 노드
1.2.2. 노드 클러스터링(Node Clustering)
1.3. JEUS Manager
1.3.1. 공통 서비스
1.3.2. JEUS Manager의 Life Cycle
1.3.3. Base Port
1.4. 엔진 컨테이너
1.4.1. 엔진(Engine)
1.4.2. 주요 서비스
1.4.3. 엔진 컨테이너의 Life Cycle
1.4.4. Invocation Manager
1.4.5. 디폴트 엔진 컨테이너
1.4.6. JEUS Manager 감시 및 Self-Down 기능
1.5. Class Loader의 구조
1.5.1. Isolated Class Loader
1.5.2. Shared Class Loader
2. JEUS 설정
2.1. 개요
2.1.1. JEUS Manager의 설정
2.1.2. 실행 스크립트에 Java –D 파라미터 추가
2.2. 노드 설정
2.2.1. 기본 노드 설정
2.2.2. 가상 노드 설정
2.2.3. 노드 클러스터링 설정
2.3. 엔진 컨테이너 설정
2.3.1. 기본 설정
2.3.2. Invocation Manager 설정
2.3.3. 데이터베이스 매핑 설정
2.3.4. Lifecycle Method Invocation 설정
2.3.5. 기타 엔진 컨테이너 설정
2.4. 엔진 설정
2.4.1. 엔진 종류 설정
2.4.2. 웹 서버 엔진 설정
2.5. JEUS 튜닝 고려사항
3. JEUS 제어 및 모니터링
3.1. JEUS 제어 및 모니터링
3.1.1. JEUS Manager 기동과 종료
3.1.2. 노드 제어 및 모니터링
3.1.3. 엔진 컨테이너의 제어 및 모니터링
3.1.4. 엔진 제어 및 모니터링
3.2. Thread 모니터링 및 제어
3.2.1. Thread 모니터링
3.2.2. Thread 제어
4. JEUS 클러스터링
4.1. 클러스터링 종류
4.2. 노드 클러스터링
4.2.1. 노드 클러스터링 형성
4.2.2. 노드 클러스터링 상태 전이
4.2.3. 노드 클러스터링 동적 노드 추가
4.2.4. 백업 노드
4.3. 노드 클러스터링 설정
4.3.1. 노드 클러스터링 설정
4.3.2. 백업 노드 설정
4.4. 노드 클러스터링 컨트롤
5. Security 관리
5.1. 암호화된 패스워드 설정 방법
5.2. 비밀 키 파일 관리
5.2.1. 파일의 생성과 관리
5.2.2. 파일 보호 옵션과 JEUS 기동 방법
5.3. keystore/truststore 관리
5.4. 계정 관리 방법
6. JNDI Naming Server
6.1. 개요
6.2. 기본 개념과 구조
6.2.1. 기본 개념
6.2.2. JNDI Naming Server 아키텍처
6.2.3. JNDI 클러스터링
6.3. JNDI Naming Server 설정
6.3.1. JNSServer 설정
6.3.2. JNSLocal 설정
6.4. 클러스터링 환경에서 JNDI
6.4.1. Binding 옵션 설정
6.5. JNDI 프로그래밍
6.5.1. JEUS 환경설정
6.5.2. InitialContext를 위한 프로퍼티 설정
6.5.3. Context를 사용한 Named Object의 lookup
6.5.4. Named Object를 사용
6.5.5. Context 닫기
6.5.6. Context 생성
6.5.7. 원격으로 lookup 실행
7. External Resource
7.1. 리소스 종류
7.2. 리소스 설정
7.2.1. 데이터소스의 설정
7.2.2. 메일 소스의 설정
7.2.3. URL 소스의 설정
7.2.4. 외부 소스의 설정
7.2.5. JAXR 소스의 설정
8. DB Connection Pool과 JDBC
8.1. 개요
8.2. JDBC Connection Pool
8.2.1. Connection Pooling
8.2.2. 데이터소스
8.2.3. 클러스터 데이터소스 및 장애복구 기능
8.3. JDBC 데이터소스 설정
8.3.1. 데이터소스 관리
8.3.2. 기본 설정
8.3.3. Custom DB 속성 추가
8.3.4. Connection Pool 설정
8.3.5. 클러스터 데이터소스 설정
8.4. DB Connection Pool의 제어 및 모니터링
8.4.1. DB Connection Pool의 제어
8.4.2. DB Connection Pool의 모니터링
8.5. JEUS JDBC 프로그래밍
8.5.1. 간단한 JDBC 프로그래밍
8.5.2. 트랜잭션 프로그래밍 규칙
8.5.3. JDBC 드라이버의 커넥션 인스턴스를 얻고 싶을 때
8.5.4. Standalone 클라이언트에서의 Connection Pool
8.6. 글로벌 트랜잭션(XA)과 커넥션 공유
8.7. 복수 사용자에 대한 Connection Pooling 서비스 지원
9. 트랜잭션 매니저
9.1. 개요
9.1.1. 애플리케이션
9.1.2. JEUS 트랜잭션 매니저
9.1.3. 리소스 매니저
9.2. 서버 트랜잭션 매니저 설정
9.2.1. Worker Thread Pool 설정
9.2.2. 타임아웃 설정
9.2.3. 트랜잭션 매니저 용량 설정
9.2.4. Root Coordinator와 Sub Coordinator 관련 설정
9.2.5. 트랜잭션 Join 설정
9.3. 클라이언트 트랜잭션 매니저 설정
9.3.1. 트랜잭션 매니저 사용 유무 설정
9.3.2. 트랜잭션 매니저 타입 설정
9.3.3. 트랜잭션 매니저의 TCP Port 설정
9.3.4. Worker Thread Pool 설정
9.3.5. 타임아웃 설정
9.3.6. 트랜잭션 매니저 용량 설정
9.4. 트랜잭션 애플리케이션 작성
9.4.1. 로컬 트랜잭션
9.4.2. 클라이언트 관리 트랜잭션
9.4.3. Bean 관리 트랜잭션
9.4.4. 컨테이너 관리 트랜잭션
9.4.5. 트랜잭션 매니저 사용하기
9.5. 트랜잭션의 복구
9.5.1. 트랜잭션 복구 과정
9.5.2. 복구 관련 로그 파일 및 설정
9.5.3. 리소스 매니저 장애
10. 세션 서버
10.1. 개요
10.2. 중앙 세션 서버
10.2.1. 중앙 세션 서버의 개념
10.2.2. 중앙 세션 서버의 설정
10.2.3. 중앙 세션 서버의 튜닝
10.2.4. JEUS 5에서 JEUS 6로 설정 변환
10.3. 분산 세션 서버
10.3.1. 분산 세션 서버의 개념
10.3.2. 분산 세션 서버의 설정
10.3.3. JEUS 5에서 JEUS 6로 설정 변환
11. Logging
11.1. 개요
11.2. JEUS 로거 기본 구조
11.2.1. 기본 로거 파일 위치
11.2.2. 로그 포맷
11.2.3. 로거 리스트
11.2.4. 사용자 로거
11.2.5. 로그 메시지 모듈 이름
11.3. JEUS Logging 설정
11.3.1. 로거 설정
11.3.2. 로그 파일 Rotation 설정
11.3.3. 표준 출력과 표준 에러를 로그 형식으로 출력 설정
11.3.4. 동적으로 Logging 레벨 설정
11.3.5. 프로퍼티 설정
A. JEUS에서 사용하는 Port
A.1. 서버 Port
B. JDBC Datasource 구성 예제
B.1. 개요
B.2. Oracle Thin(Type 4) 구성 예제
B.2.1. Oracle Thin Connection Pool Datasource
B.2.2. Oracle Thin XA Datasource
B.2.3. java.util.Properties 설정 예제 with Oracle ASO
B.3. Oracle OCI (Type 2) 구성 예제
B.3.1. Oracle OCI Connection Pool DataSource
B.4. DB2 구성 예제
B.4.1. DB2 Type 4(JCC) Connection Pool Datasource
B.4.2. DB2 Type 4(JCC) XA Datasource
B.4.3. DB2 Type 2(JCC) XA Datasource
B.5. Sybase 구성 예제
B.5.1. Sybase jConnect 5.x Connection Pool Datasource
B.5.2. Sybase jConnect 6.x XA Datasource
B.6. MSSQL 구성 예제
B.6.1. MSSQL 2005 Connection Pool Datasource
B.7. Informix 구성 예제
B.7.1. Informix Connection Pool Datasource
B.8. Tibero 구성 예제
B.8.1. Tibero Connection Pool Datasource
B.9. MySQL 5.x 구성 예제
B.9.1. MySQL Connector/J Connection Pool Datasource
C. standard.property
C.1. 프로퍼티 레퍼런스
용어해설
색인

그림 목차

[그림 1.1] JEUS의 구성 요소
[그림 1.2] 4개를 연결한 JEUS 클러스터링
[그림 1.3] JEUS Manager의 상태 전이도
[그림 1.4] 엔진 컨테이너의 상태 전이도
[그림 1.5] Manager 감시의 상태전이
[그림 1.6] Isolated Class Loader 계층 구조
[그림 1.7] Shared Class Loader 계층 구조
[그림 2.1] JEUSMain.xml 위치
[그림 2.2] JEUS 엔진들의 디렉터리 구조
[그림 4.1] 3개의 노드와 설정 파일(JEUSMain.xml)을 포함한 JEUS 클러스터링
[그림 4.2] 노드 클러스터링 장애
[그림 4.3] 클러스터링의 상태 전이
[그림 4.4] JEUS 클러스터에 새로운 JEUS 노드(D)의 동적 추가
[그림 6.1] JNSServer와 JNSLocal의 관계
[그림 6.2] 클러스터링 환경에서 JEUS JNDI 아키텍처
[그림 6.3] Replicate Bind
[그림 6.4] Cache Bind
[그림 6.5] Local Bind
[그림 8.1] JEUS의 Connection Pooling
[그림 8.2] RAC에서 클러스터 데이터소스 Failover 기능
[그림 9.1] Root Coordinator와 Sub Coordinator의 관계 예제
[그림 9.2] 단순화한 트랜잭션 복구 과정
[그림 10.1] 세션 서버의 구조
[그림 10.2] 분산 세션 서버를 이용한 세션 클러스터링 구조
[그림 10.3] 분산 세션 서버 내부 구조
[그림 10.4] 분산 세션 서버에 의한 fail-over 구조
[그림 10.5] 분산 세션 서버의 백업 선택 알고리즘

표 목차

[표 C.1] 프로퍼티 레퍼런스

예 목차

[예 2.1] JEUS Manager의 설정 : <<JEUSMain.xml>>
[예 2.2] 노드 설정 : <<JEUSMain.xml>>
[예 2.3] 기본 노드 설정 : <<JEUSMain.xml>>
[예 2.4] 가상 노드 설정 : <<vhost.properties>>
[예 2.5] 엔진 컨테이너 설정 : <<JEUSMain.xml>>
[예 2.6] 엔진 컨테이너 기본 설정 : <<JEUSMain.xml>>
[예 2.7] Invocation Manager 설정 : <<JEUSMain.xml>>
[예 2.8] Database Mapping 설정 : <<JEUSMain.xml>>
[예 2.9] Lifecycle Method Invocation 설정 : <<JEUSMain.xml>>
[예 2.10] <<LifeCycleTester.java>>
[예 2.11] 기타 엔진 컨테이너 설정 : <<JEUSMain.xml>>
[예 2.12] 엔진 종류 설정 : <<JEUSMain.xml>>
[예 4.1] 노드 클러스터링의 설정 1 : <<JEUSMain.xml>>
[예 4.2] 노드 클러스터링의 설정 2 : << JEUSMain.xml>>
[예 4.3] 백업 노드 설정 1 : << JEUSMain.xml>>
[예 4.4] 백업 노드 설정 2 : << JEUSMain.xml>>
[예 5.1] 암호화된 문자열 패스워드 설정 : <<accounts.xml>>
[예 5.2] 암호화된 문자열 패스워드 설정 : <<JEUSMain.xml>>
[예 5.3] 암호화된 문자열 패스워드 설정 : <<WEBMain.xml>>
[예 5.4] <<accounts.xml>>
[예 6.1] Naming server 설정 : <<JEUSMain.xml>>
[예 6.2] Server-side JNSLocal 설정 : <<JEUSMain.xml>>
[예 7.1] 리소스 설정 : <<JEUSMain.xml>>
[예 7.2] URL 소스의 설정 : <<JEUSMain.xml>>
[예 7.3] JMS 소스 설정 : <<JEUSMain.xml>
[예 7.4] JAXR 소스의 설정 : <<JEUSMain.xml>
[예 8.1] JDBC 데이터소스 설정 : <<JEUSMain.xml>>
[예 8.2] ds-accounts.properties
[예 8.3] Custom DB 속성 추가 : <<JEUSMain.xml>>
[예 8.4] Connection Pool 설정 : <<JEUSMain.xml>>
[예 8.5] jeus.jdbc.connectionpool.JEUSConnectionChecker
[예 8.6] <dba-timeout> 설정
[예 8.7] 클러스터 데이터소스 설정 : <<JEUSMain.xml>>
[예 8.8] 자동으로 Failback 설정 : <<JEUSMain.xml>>
[예 8.9] jeus.jdbc.helper.DataSourceSelector
[예 8.10] foo.bar.SampleDataSourceSelector
[예 8.11] <<JEUSMain.xml>>
[예 9.1] <<JEUSMain.xml>>
[예 9.2] Worker Thread Pool 설정 : <<JEUSMain.xml>>
[예 9.3] 타임아웃 설정 : <<JEUSMain.xml>>
[예 9.4] 트랜잭션 매니저 용량 설정 : <<JEUSMain.xml>>
[예 9.5] <<Client.java>>
[예 9.6] <<Client.java>>
[예 9.7] <<ProductManagerEJB.java>>
[예 9.8] <<Client.java>>
[예 9.9] <<ProductManagerEJB.java>>
[예 9.10] <<Client.java>>
[예 9.11] <<ProductManagerEJB.java>>
[예 9.12] <<JEUSMain.xml>>
[예 10.1] 중앙 세션 서버 기본 설정 : <<JEUSMain.xml>>
[예 10.2] 노드 클러스터링과 세션 클러스터링 설정 : <<JEUSMain.xml>>
[예 10.3] 노드 johan : <<JEUSMain.xml>>
[예 10.4] 노드 johan1 : <<JEUSMain.xml>>
[예 10.5] 각 노드들의 웹 컨테이너 공통 : <<WEBMain.xml>>
[예 10.6] 노드 johan과 johan1의 공통 : <<JEUSMain.xml>>
[예 10.7] 분산 세션 서버의 설정 : <<JEUSMain.xml>>
[예 10.8] 분산 세션 서버 기본 설정 : <<JEUSMain.xml>>
[예 10.9] 세부 분산 세션 서버 설정 : <<JEUSMain.xml>>
[예 10.10] <<JEUSMain.xml>>
[예 10.11] <<JEUSMain.xml>>
[예 11.1] 로그 메시지 출력
[예 11.2] 로거 설정 : <<JEUSMain.xml>>
[예 11.3] 로그 파일 Rotation 설정 : <<JEUSMain.xml>>
[예 11.4] 표준 출력과 표준 에러를 JEUS 로그 형식으로 출력 : <<JEUSMain.xml>>
[예 B.1] <<JEUSMain.xml>>
[예 B.2] <<JEUSMain.xml>>
[예 B.3] <<JEUSMain.xml>>
[예 B.4] <<JEUSMain.xml>>
[예 B.5] <<JEUSMain.xml>>
[예 B.6] <<JEUSMain.xml>>
[예 B.7] <<JEUSMain.xml>>
[예 B.8] <<JEUSMain.xml>>
[예 B.9] <<JEUSMain.xml>>
[예 B.10] <<JEUSMain.xml>>
[예 B.11] <<JEUSMain.xml>>
[예 B.12] <<JEUSMain.xml>>
[예 B.13] <<JEUSMain.xml>>