JEUS EJB 안내서 

JEUS 8.5

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 this document may only be distributed 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. Nothing in this software document and agreement constitutes a transfer of intellectual property rights regardless of whether or not such rights are registered) or any rights to TmaxSoft trademarks, logos, or any other brand features.

This document is for information purposes only. The company assumes no direct or indirect responsibilities for the contents of this document, and does not guarantee that the information contained in this document satisfies certain legal or commercial conditions. The information contained in this document is subject to change without prior notice due to product upgrades or updates. The company assumes no liability for any errors in this document.

이 소프트웨어(JEUS®) 사용설명서의 내용과 프로그램은 저작권법과 국제 조약에 의해서 보호받고 있습니다. 사용설명서의 내용과 여기에 설명된 프로그램은 TmaxSoft Co., Ltd.와의 사용권 계약 하에서만 사용이 가능하며, 사용설명서는 사용권 계약의 범위 내에서만 배포 또는 복제할 수 있습니다. 이 사용설명서의 전부 또는 일부분을 TmaxSoft의 사전 서면 동의 없이 전자, 기계, 녹음 등의 수단을 사용하여 전송, 복제, 배포, 2차적 저작물작성 등의 행위를 하여서는 안 됩니다.

이 소프트웨어 사용설명서와 프로그램의 사용권 계약은 어떠한 경우에도 사용설명서 및 프로그램과 관련된 지적재산권(등록 여부를 불문)을 양도하는 것으로 해석되지 아니하며, 브랜드나 로고, 상표 등을 사용할 권한을 부여하지 않습니다. 사용설명서는 오로지 정보의 제공만을 목적으로 하고, 이로 인한 계약상의 직접적 또는 간접적 책임을 지지 아니하며, 사용설명서 상의 내용은 법적 또는 상업적인 특정한 조건을 만족시키는 것을 보장하지는 않습니다. 사용설명서의 내용은 제품의 업그레이드나 수정에 따라 그 내용이 예고 없이 변경될 수 있으며, 내용상의 오류가 없음을 보장하지 아니합니다.

Trademarks

JEUS® is registered trademark of TmaxSoft Co., Ltd.

JEUS®는 TmaxSoft Co., Ltd.의 등록 상표입니다.

Java and Solaris are registered trademarks of Oracle Corporation and its subsidiaries and affiliates.

Java, Solaris는 Oracle Corporation 및 그 자회사, 관계회사의 등록 상표입니다.

Microsoft, Windows, and Windows NT are registered trademarks or trademarks of Microsoft Corporation.

Microsoft, Windows, Windows NT는 Microsoft Corporation의 등록 상표 또는 상표입니다.

HP-UX is a registered trademark of Hewlett Packard Enterprise Company.

HP-UX는 Hewlett Packard Enterprise Company의 등록 상표입니다.

AIX is a registered trademark of International Business Machines Corporation.

AIX는 International Business Machines Corporation의 등록 상표입니다.

UNIX is a registered trademark of X/Open Company, Ltd.

UNIX는 X/Open Company, Ltd.의 등록 상표입니다.

Linux is a registered trademark of Linus Torvalds.

Linux는 Linus Torvalds의 등록 상표입니다.

Noto is a trademark of Google Inc. Noto fonts are open source. All Noto fonts are published under the SIL Open Font License, Version 1.1. (https://www.google.com/get/noto/)

Noto는 Google Inc.의 상표입니다. Noto 글꼴은 오픈 소스입니다. 모든 Noto 글꼴은 SIL Open Font License, 버전 1.1에 따라 게시됩니다. (https://www.google.com/get/noto/)

Other products and company names are trademarks or registered trademarks of their respective owners.

기타 모든 제품들과 회사 이름은 각각 해당 소유주의 상호, 상표, 또는 등록 상표입니다.

The names of companies, systems, and products mentioned in this manual may not necessarily be indicated with a trademark symbol (TM, ®).

본 사용설명서에 기재된 회사, 시스템, 제품 이름 등에 반드시 상표 표시 (TM, ®)를 하지는 않습니다.

안내서 정보

안내서 제목: JEUS EJB 안내서 

발행일: 2021-09-30

소프트웨어 버전: JEUS 8.5

안내서 버전: v2.1.1


내용 목차

안내서에 대하여
1. EJB 소개
1.1. 개요
1.2. 구성 요소
1.3. EJB 환경 및 설정
1.3.1. 디렉터리 구조
1.3.2. XML 설정 파일
1.3.3. 관련 툴
1.4. EJB 기본 설정
2. EJB 엔진
2.1. 개요
2.2. 주요 기능
2.3. EJB 엔진 디렉터리 구조
2.4. EJB 엔진 설정
2.4.1. Basic 설정
2.4.2. Active Management 설정
2.4.3. Timer Service 설정
2.5. 시스템 로그 설정
2.6. EJB 엔진 제어 및 모니터링
2.7. EJB 엔진 튜닝
2.7.1. Resolution 설정 튜닝
2.7.2. Fast Deploy
2.7.3. 최대 성능을 위한 시스템 로그 설정
2.7.4. Active Management 사용하지 않기
2.7.5. HTTP Invoke 모드 사용
3. EJB 모듈
3.1. 개요
3.2. EJB 모듈 관리
3.3. EJB 모듈 조립
3.3.1. EJB 클래스 컴파일
3.3.2. Deployment Descriptors(DD) 작성
3.3.3. EJB JAR 파일 패키징
3.4. EJB 모듈 Deploy
3.4.1. Deploy
3.4.2. Deploy된 EJB 모듈의 디렉터리 구조
3.5. EJB 모듈 제어 및 모니터링
3.5.1. EJB 모듈 제어
3.5.2. EJB 모듈 모니터링
4. EJB의 공통 특성
4.1. 개요
4.2. EJB 설정
4.2.1. 기본 환경설정
4.2.2. Thread Ticket 설정
4.2.3. External Reference 설정과 매핑
4.2.4. HTTP Invoke 환경설정
4.2.5. EJB 보안 설정
4.3. EJB 모니터링
4.4. EJB 튜닝
4.4.1. Thread Ticket Pool 설정 튜닝
5. EJB 상호 운용성 및 RMI/IIOP
5.1. 개요
5.1.1. 트랜잭션 상호 운용(OTS)
5.1.2. 보안 상호 운용(CSIv2)
5.2. 상호 운용 설정
5.2.1. COS Naming Service 설정
5.2.2. 상호 운용성 활성화 설정
5.2.3. CSIv2 보안 상호 운용 설정
5.2.4. EJB RMI/IIOP 설정
5.3. RMI/IIOP 클라이언트
5.3.1. JEUS Managed Server
5.3.2. 다른 벤더 WAS
5.3.3. Standalone 클라이언트
5.4. 알려진 문제점(Known Issues)
6. EJB 클러스터링
6.1. 개요
6.2. 주요 기능
6.2.1. Load Balancing
6.2.2. Failover(EJB 복구)
6.2.3. Idempotent 메소드를 통한 EJB 복구
6.2.4. Session Replication
6.3. EJB 클러스터링 설정
6.3.1. Annotation을 통한 클러스터링 설정
6.3.2. xml을 통한 클러스터링 설정
6.3.3. Stateful Session Bean의 클러스터링 설정
6.4. EJB Failover 제한
7. Session Bean
7.1. Stateless Session Bean
7.1.1. Thread Ticket Pool(TTP)과 Object Management
7.1.2. Web Service Endpoint
7.2. Stateful Session Bean
7.2.1. Thread Ticket Pool(TTP)과 Object Management
7.2.2. Pooling Session Bean
7.2.3. Bean Pool 설정
7.2.4. 세션 데이터 유지 메커니즘 설정
7.3. 공통 설정
7.3.1. Object Management 관련 설정
8. Entity Bean
8.1. 개요
8.2. 주요 기능
8.2.1. 공통 기능
8.2.2. BMP & CMP 1.1
8.2.3. CMP 1.1/2.0
8.2.4. CMP 2.0
8.3. Entity EJB 설정
8.3.1. 공통 설정
8.3.2. CMP 1.1/2.0
8.3.3. CMP 2.0
8.3.4. DB Insert Delay 설정(CMP Only)
8.4. Entity EJB 튜닝
8.4.1. 공통
8.4.2. BMP & CMP 1.1
8.4.3. CMP 1.1/2.0
8.4.4. CMP 2.0
8.5. 완전한 CMP 2.0 Entity Bean 예제
9. Message Driven Bean(MDB)
9.1. 개요
9.2. MDB 설정
9.2.1. 기본 환경설정
9.2.2. JMS 설정
9.2.3. JNDI SPI 환경설정
10. EJB Timer Service
10.1. Timer Service 설정
10.1.1. Persistent Timer Service 설정(EJB 엔진)
10.1.2. Persistent Timer 처리(jeus-ejb-dd.xml)
10.1.3. Cluster-Wide Timer Service 설정
10.2. Timer 모니터링
10.3. Timer Service 사용 주의사항
11. EJB 클라이언트
11.1. 개요
11.2. EJB 접근을 위한 클라이언트 프로그래밍
11.3. InitialContext 설정
11.3.1. JVM 속성을 이용한 Naming 속성값 설정
11.3.2. Hashtable을 이용한 Naming 속성 설정
12. 부가 기능
12.1. WorkArea 서비스
12.1.1. UserWorkArea 인터페이스
12.1.2. PropertyMode 타입
12.1.3. 예외
12.1.4. Nested UserWorkArea
12.1.5. UserWorkArea를 사용하는 응용 프로그램 개발
A. 기본 Java 타입과 DB 필드 매핑
A.1. 개요
A.2. Tibero 필드 - 컬럼 타입 매핑
A.3. Oracle 필드 - 컬럼 타입 매핑
A.4. Sybase 필드 - 컬럼 타입 매핑
A.5. MSSQL 필드 - 컬럼 타입 매핑
A.6. DB2 필드 - 컬럼 타입 매핑
A.7. Cloudscape 필드 - 컬럼 타입 매핑
A.8. Informix 필드 - 컬럼 타입 매핑
B. Instant EJB QL API Reference
B.1. 개요
B.2. EJBInstanceFinder Interface
B.3. EJBInstanceFinder Method
용어해설
색인

그림 목차

[그림 1.1] EJB 구현체의 주요 구성 요소
[그림 1.2] EJB 엔진 설정
[그림 2.1] EJB 엔진 디렉터리 구조
[그림 2.2] EJB 엔진 설정 - Basic 설정
[그림 2.3] EJB 엔진 설정 - Active Management 설정
[그림 3.1] EJB 모듈 관리 순서도
[그림 3.2] Jakarta EE EJB 모듈 JAR 파일의 구조
[그림 3.3] 애플리케이션 Deploy - 애플리케이션 목록 조회
[그림 3.4] 애플리케이션 Deploy - 속성 설정
[그림 3.5] 애플리케이션 Deploy - 결과
[그림 3.6] deploy된 EJB 모듈의 디렉터리 구조
[그림 3.7] Deploy된 애플리케이션 목록
[그림 3.8] 애플리케이션 Undeploy - 속성 설정
[그림 3.9] 애플리케이션 Undeploy - 결과
[그림 4.1] TTP 상태 전이도
[그림 5.1] 상호 운용성 활성화 설정
[그림 5.2] CSIv2 보안 상호 운용 설정 - Interop Ssl Config
[그림 6.1] 기본 클러스터링 아키텍처
[그림 6.2] EJB 3 stateless 클러스터링 아키텍처
[그림 7.1] Stateless Session Bean의 TTP과 Bean Pool
[그림 7.2] Stateful Session Bean의 Connection Pool과 TTP, Bean Pool
[그림 8.1] JEUS EJB 엔진에서 Entity Bean의 Object와 Instance 관리
[그림 8.2] ejbLoad() 주기적 호출 시나리오
[그림 8.3] EXCLUSIVE_ACCESS 모드의 시나리오
[그림 8.4] SINGLE_OBJECT 엔진 모드
[그림 8.5] MULTIPLE_OBJECT 엔진 모드
[그림 10.1] Persistent Timer Service 설정 - 기본 설정
[그림 10.2] Persistent Timer Service - 고급 선택사항
[그림 10.3] Cluster-Wide Timer Service 설정
[그림 10.4] Timer 모니터링
[그림 10.5] Timer 동작 취소
[그림 12.1] 중첩된 UserWorkArea에서의 등록 정보

예 목차

[예 1.1] XML 헤더 : <<domain.xml>>
[예 1.2] XML 헤더 : <<ejb-jar.xml >>
[예 1.3] XML 헤더 : <<jeus-ejb-dd .xml>>
[예 3.1] EJB 표준 DD : <<ejb-jar.xml>>
[예 3.2] JEUS EJB DD : <<jeus-ejb-dd.xml>>
[예 4.1] Stateful Session Bean class와 DD : <<CounterEJB.java>>
[예 4.2] Stateful Session Bean class와 DD : <<jeus-ejb-dd.xml>>
[예 4.3] BMP Bean 설정 : <<jeus-ejb-dd.xml>>
[예 4.4] External Reference를 JNDI로 매핑 : <<CounterEJB.java>>
[예 4.5] External Reference를 JNDI로 매핑 : <<ejb-jar.xml>>
[예 4.6] External Reference를 JNDI로 매핑 : <<jeus-ejb-dd.xml>>
[예 4.7] HTTP Invoke 환경설정 : <<jeus-ejb-dd.xml>>
[예 4.8] 역할 할당(Role Assignment) 설정 : <<jeus-ejb-dd.xml>>
[예 4.9] Run-as Identify 설정 : <<jeus-ejb-dd.xml>>
[예 4.10] 보안 설정 : <<CustomerBean.java>>
[예 4.11] 보안 설정 : <<EmployeeServiceBean.java>>
[예 4.12] 보안 설정 : <<ejb-jar.xml>>
[예 4.13] 보안 설정 : <<jeus-ejb-dd.xml>>
[예 4.14] 보안 설정 : <<accounts.xml>>
[예 5.1] EJB RMI/IIOP 설정 : <<jeus-ejb-dd.xml>>
[예 5.2] corbaname lookup 사용
[예 5.3] PROVIDER URL 사용
[예 5.4] Servelet EJB Injection
[예 5.5] RMI/IIOP EJB 매핑 : <<jeus-web-dd.xml>>
[예 5.6] Standalone 클라이언트 사용
[예 5.7] NullPointerException이 발생하는 경우
[예 6.1] Annotation을 통한 클러스터링 설정 : <<CounterEJB.java>>
[예 6.2] xml을 통한 클러스터링 설정 : <<jeus-ejb-dd.xml>>
[예 7.1] Bean Pool 설정 : <<jeus-ejb-dd.xml>>
[예 7.2] Object Management 설정 : <<jeus-ejb-dd.xml>>
[예 8.1] Oracle DB에서 Primary Key 생성 설정 : <<jeus-ejb-dd.xml>>
[예 8.2] MS SQL 서버에서 자동 Primary Key 생성 설정 : <<jeus-ejb-dd.xml>>
[예 8.3] Other DB의 자동 Primary Key 생성 설정 : <<jeus-ejb-dd.xml>>
[예 8.4] Entity EJB의 기본 공통 항목 설정 : <<jeus-ejb-dd.xml>>
[예 8.5] Object Management 관련 설정 : <<jeus-ejb-dd.xml>>
[예 8.6] ejbLoad()와 ejbStore() Persistence 최적화 설정 : <<jeus-ejb-dd.xml>>
[예 8.7] ejbLoad()와 ejbFind() CM Persistence 최적화 설정 : <<jeus-ejb-dd.xml>>
[예 8.8] DB 스키마 정보 설정 : <<jeus-ejb-dd.xml>>
[예 8.9] One-to-one/One-to-many Relationship 설정 : <<jeus-ejb-dd.xml>>
[예 8.10] Many-to-many Relationship Mapping 설정 : <<jeus-ejb-dd.xml>>
[예 8.11] Instant EJB QL 설정 : <<jeus-ejb-dd.xml>>
[예 8.12] XML DD 파일에 ">"와 "<" 문자 삽입 : <<ejb-jar.xml>>
[예 8.13] DB Insert Delay 설정 : <<jeus-ejb-dd.xml>>
[예 8.14] Remote Interface : <<Book.java>>
[예 8.15] Home Interface : <<BookHome.java>>
[예 8.16] Bean Implementation : <<BookEJB.java>>
[예 8.17] Jakarta EE EJB DD : <<ejb-jar.xml>>
[예 8.18] JEUS EJB DD : <<jeus-ejb-dd.xml>>
[예 9.1] 기본 환경설정 : <<jeus-ejb-dd.xml>>
[예 9.2] JMS 설정 : <<MyMDB.class>>
[예 9.3] JMS 설정 : <<jeus-ejb-dd.xml>>
[예 9.4] JNDI SPI 환경설정: <<jeus-ejb-dd.xml>>
[예 10.1] Persistent Timer의 처리 : <<jeus-ejb-dd.xml>>
[예 11.1] EJB 접근을 위한 클라이언트 프로그래밍 : <<HelloClient.java>>
[예 12.1] UserWorkArea 인터페이스
[예 12.2] UserWorkArea 액세스 : <<UserWorkAreaSampleSenderBean.java>>
[예 12.3] 새 UserWorkArea 시작 : <<UserWorkAreaSampleSenderBean.java>>
[예 12.4] WorkArea에 등록 정보 설정 : <<UserWorkAreaSampleSenderBean.java>>
[예 12.5] WorkArea에 설정된 등록 정보 가져오기 : <<UserWorkAreaSampleReceiverBean.java>>
[예 12.6] UserWorkArea 완료하기 : <<UserWorkAreaSampleSenderBean.java>>