JEUS EJB 안내서 

JEUS v7.0 Fix#3

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 EJB 안내서 

발행일: 2014-08-29

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

안내서 버전: v2.1.5


내용 목차

안내서에 대하여
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 모듈 조립(Assembling)
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. JEUS RMI 설정
4.2.6. 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 사용 주의사항
10.3.1. Persistent Timer와 JDBC Connection
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. The EJBInstanceFinder Interface
B.3. The 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] Java 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] EJB 클러스터링 아키텍처
[그림 6.2] Session Router Config 설정 - 속성 설정
[그림 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에서의 등록 정보

표 목차

[표 4.1] JEUS EJB의 설정 가능한 특징들과 컴포넌트들
[표 4.2] ejb-jar.xml과 JEUS EJB DD 파일의 참조 태그와 관계
[표 5.1] Keystore와 Truststore 파일에 관련된 JVM –D 파라미터
[표 8.1] Entity Bean 종류의 설정
[표 8.2] 3가지 엔진 모드의 단점과 장점
[표 8.3] EmployeeBean Instance을 위한 EJB 필드들
[표 8.4] 결과 ResultSet
[표 8.5] Entity Bean 엔진 타입 선택과 클러스터링 사용 여부
[표 A.1] Tibero를 위한 EJB CMP 필드 - DB 컬럼 타입 매핑
[표 A.2] Oracle을 위한 EJB CMP 필드 - DB 컬럼 타입 매핑
[표 A.3] Sybase를 위한 EJB CMP 필드 - DB 컬럼 타입 매핑
[표 A.4] MSSQL을 위한 EJB CMP 필드 - DB 컬럼 타입 매핑
[표 A.5] DB2를 위한 EJB CMP 필드 - DB 컬럼 타입 매핑
[표 A.6] Cloudscape를 위한 EJB CMP 필드 - DB 컬럼 타입 매핑
[표 A.7] Informix를 위한 EJB CMP 필드 - DB 컬럼 타입 매핑

예 목차

[예 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] Java 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] <<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>>