JEUS

Similar documents
JEUS

Tmax

Microsoft Word - AnyLink Introduction v3.2.3.doc

개발및운영 Tibero DB Link (Tibero To Oracle) - Local 방식

개요오라클과티베로에서 JDBC 를통해접속한세션을구분할수있도록 JDBC 접속시 ConnectionProperties 를통해구분자를넣어줄수있다. 하나의 Node 에다수의 WAS 가있을경우 DB 에서 Session Kill 등의동작수행시원하는 Session 을선택할수있다.

마리오와 소닉 리우 올림픽™

Tibero

인디쓔피-IOM핸돜벁닄큐1014pdf, page Preflight ( IOM핸돜벁닄큐__1014 )

API 매뉴얼

untitled

Intro to Servlet, EJB, JSP, WS

Chap7.PDF

DBMS & SQL Server Installation Database Laboratory

[JEUS 7] eclipse plug-in 연동 1. 개요 Eclipse 와 JEUS 7 연동시필요한 plug-in 제공및환경설정에관한가이드제공하여 Eclipse 에서 JEUS 7 기동및 종료테스트할수있는방법을기술하였습니다. 2. Plug-in 설치 2.1 [Step

- JPA를사용하는경우의스프링설정파일에다음을기술한다. <bean id="entitymanagerfactory" class="org.springframework.orm.jpa.localentitymanagerfactorybean" p:persistenceunitname=

untitled

개발및운영 Tibero Perl 연동

Spring Boot/JDBC JdbcTemplate/CRUD 예제

untitled

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

No Slide Title

개발및운영 Eclipse 를이용한 ANT 활용방법

Tibero

튜닝및모니터링 HP JVM 튜닝옵션

FY2005 LIG


윈백및업그레이드 Tibero Flashback 가이드

untitled

FileMaker 15 ODBC 및 JDBC 설명서

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

untitled

untitled

untitled

초보자를 위한 ADO 21일 완성

APOGEE Insight_KR_Base_3P11

I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r

Interstage5 SOAP서비스 설정 가이드

Copyright 2012, Oracle and/or its affiliates. All rights reserved.,.,,,,,,,,,,,,.,...,. U.S. GOVERNMENT END USERS. Oracle programs, including any oper

2012-민간네트워크-05_중국

FileMaker ODBC 및 JDBC 가이드

uFOCS

Chapter 1

PowerPoint 프레젠테이션

#KM560

Hardware Manual TSP100

Portal_9iAS.ppt [읽기 전용]

DocsPin_Korean.pages

Copyrights and Trademarks Autodesk SketchBook Mobile (2.0.2) 2013 Autodesk, Inc. All Rights Reserved. Except as otherwise permitted by Autodesk, Inc.,

Microsoft PowerPoint - 10Àå.ppt

ez-shv manual

문서 템플릿

목차 1. 노드매니저종류 Java Type SSH Type 노드설정파일및로깅 nodes.xml jeusnm.properties <servername>.properties...

[Brochure] KOR_TunA

10.ppt

Web Application Hosting in the AWS Cloud Contents 개요 가용성과 확장성이 높은 웹 호스팅은 복잡하고 비용이 많이 드는 사업이 될 수 있습니다. 전통적인 웹 확장 아키텍처는 높은 수준의 안정성을 보장하기 위해 복잡한 솔루션으로 구현

API 매뉴얼

J2EE & Web Services iSeminar

본문서는 초급자들을 대상으로 최대한 쉽게 작성하였습니다. 본문서에서는 설치방법만 기술했으며 자세한 설정방법은 검색을 통하시기 바랍니다. 1. 설치개요 워드프레스는 블로그 형태의 홈페이지를 빠르게 만들수 있게 해 주는 프로그램입니다. 다양한 기능을 하는 플러그인과 디자인

PowerPoint 프레젠테이션

Tibero

목차 JEUS EJB Session Bean가이드 stateful session bean stateful sample 가이드 sample source 결과확인 http session에

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

JEUS 소개

CD-RW_Advanced.PDF

설치및환경설정 Tibero tbprobe 사용법과원격지포트체크

MS-SQL SERVER 대비 기능

Spring Data JPA Many To Many 양방향 관계 예제

H122_E.book

@OneToOne(cascade = = "addr_id") private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a

리눅스설치가이드 3. 3Rabbitz Book 을리눅스에서설치하기위한절차는다음과같습니다. 설치에대한예시는우분투서버 기준으로진행됩니다. 1. Java Development Kit (JDK) 또는 Java Runtime Environment (JRE) 를설치합니다. 2.

< FC8A8C6E4C0CCC1F620B0B3B9DF20BAB8BEC8B0A1C0CCB5E5C3D6C1BE28C0FAC0DBB1C7BBE8C1A6292E687770>

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins

Linux 권장커널파라미터 1. 커널파라미터별설명및설정방법 1.1 nofile ( max number of open files ) 설명 : 지원되는열린파일수를지정합니다. 기본설정이보통대부분의응용프로그램에대해충분합니다. 이매개 변수에설정된값이너무낮으면파일열기오류, 메모리

강의 개요

#KM-340BL

C# Programming Guide - Types

삼성955_965_09

PowerChute Personal Edition v3.1.0 에이전트 사용 설명서

#KM-235(110222)

#DPK5(PB)(9.8.19)

rv 브로슈어 국문

슬라이드 제목 없음

목차 1. 개요 개요 연동테스트홖경 PowerBuilder Connection Tibero ODBC Driver 설정 PowerBuilder Connection 설정 Tiber

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

1217 WebTrafMon II

설치및환경설정 JEUS Thread State Notify 설정

Microsoft Word _whitepaper_latency_throughput_v1.0.1_for_

09 강제근로의 금지 폭행의 금지 공민권 행사의 보장 중간착취의 금지 41 - 대판 , 2006도7660 [근로기준법위반] (쌍용자동차 취업알선 사례) 11 균등대우의 원칙 43 - 대판 , 2002도3883 [남녀고용평등법위

Getting Started Guide

JVM 메모리구조

Backup Exec

C++ Programming

비디오 / 그래픽 아답터 네트워크 만약에 ArcGolbe를 사용하는 경우, 추가적인 디스크 공간 필요. ArcGlobe는 캐시파일을 생성하여 사용 24 비트 그래픽 가속기 Oepn GL 2.0 이상을 지원하는 비디오카드 최소 64 MB 이고 256 MB 이상을 메모리

단계

Windows 8에서 BioStar 1 설치하기

목차 1. 제품 소개 특징 개요 Function table 기능 소개 Copy Compare Copy & Compare Erase

쉽게 풀어쓴 C 프로그래밊

Cache_cny.ppt [읽기 전용]

02 C h a p t e r Java

교육2 ? 그림

Transcription:

JEUS JPA 안내서 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 Legend All TmaxSoft Software (JEUS ) and documents are protected by copyright laws and the Protection Act of Com puter Programs, 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 This product includes open source software developed and/or licensed by "OpenSSL", "RSA Data Security, Inc.", "Apache Foundation", and "Jean-loup Gailly and Mark Adler". Information about the aforementioned and the related open source software can be found in the "${INSTALL_PATH}/license/oss_licenses" directory. 본제품은 OpenSSL, RSA Data Security, Inc., Apache Foundation 및 Jean-loup Gailly와 Mark Adler 에의해개발또는라이선스된오픈소스소프트웨어를포함합니다. 관련상세정보는제품의디렉터리 ${IN STALL_PATH}/license/oss_licenses 에기재된사항을참고해주십시오. 안내서정보안내서제목 : JEUS JPA 안내서발행일 : 2011-11-04 소프트웨어버전 : JEUS v6.0 Fix #8 안내서버전 : v2.1.3

내용목차 안내서에대하여... ix 제1장 소개... 1 제2장 프로바이더설정... 3 2.1. 데이터베이스설정... 3 2.1.1. 사용환경별설정... 3 2.1.2. 데이터베이스타입설정... 5 2.1.3. 스키마자동생성설정... 6 2.2. Caching... 7 2.3. Query 힌트... 9 2.4. Logging 설정... 10 제3장 프로바이더변경... 11 3.1. Persistence 프로바이더변경... 11 3.2. 사용가능한 Persistence 프로바이더... 12 용어해설... 13 색인... 15 JEUS iii

표목차 [ 표 2.1] Java SE 모드데이터베이스프로퍼티... 4 [ 표 2.2] toplink.target-데이터베이스프로퍼티... 5 [ 표 2.3] Java Type to SQL Type Mappings... 6 JEUS v

예목차 [ 예 2.1] Java EE 모드에서데이터베이스설정예... 3 [ 예 2.2] Java SE 모드에서데이터베이스설정예... 4 [ 예 2.3] 데이터베이스타입설정예... 5 [ 예 2.4] Query 힌트사용예제... 9 [ 예 3.1] Persistence 프로바이더변경예... 11 JEUS vii

안내서에대하여 안내서의대상 본안내서는 JEUS 에서 Java Persistence API 를이용하여개발하고자하는개발자를대상으로하고있다. 안내서의전제조건 본안내서를원활하게이해하기위해서는다음과같은사항을미리알고있어야한다. JEUS 소개 JEUS 설치및시작하기 안내서의제한조건 본안내서에서는 Java EE 와 Java 스펙에대한것은설명하지않고, JEUS 관련내용만설명한다. 안내서구성 본안내서는총 3개의장으로구성되어있다. 제1장소개 JPA와 JEUS에대해설명한다. 제2장프로바이더설정 JEUS의기본프로바이더의설정에대해설명한다. 제3장프로바이더변경 JEUS의기본프로바이더를변경하는방법에대해설명한다. 안내서에대하여 ix

안내서규약 표기 <<AaBbCc123>> <Ctrl>+C [Button] 진하게 " "( 따옴표 ) ' 입력항목 ' 하이퍼링크 > +---- ---- 참고주의 [ 그림 1.1] [ 표 1.1] AaBbCc123 의미프로그램소스코드의파일명 Ctrl과 C를동시에누름 GUI의버튼또는메뉴이름강조다른관련안내서또는안내서내의다른장및절언급화면 UI에서입력항목에대한설명메일계정, 웹사이트메뉴의진행순서하위디렉터리또는파일있음하위디렉터리또는파일없음참고또는주의사항주의할사항그림이름표이름 Java 코드, XML 문서 [ command argument ] < xyz > 옵션파라미터 < 와 > 사이의내용이실제값으로변경됨선택사항. 예 ) A B: A나 B 중하나파라미터등이반복되어서나옴 x JEUS JPA 안내서

시스템사용환경 본안내서는모든예제와환경구성을 Microsoft Windows 의스타일을따랐다. UNIX와같은다른환경에서작업하는사람은몇가지사항만고려하면별무리없이사용할수있다. 대표적인것이디렉터리구분자인데, Windows 스타일인 \ 를 UNIX 스타일인 / 로바꿔서사용하면무리가없다. 이외에환경변수도 UNIX 스타일로변경해서사용하면된다. 그러나 Java 표준을고려해서문서를작성했기때문에, 대부분의내용은동일하게적용된다. 관련안내서 안내서 JEUS 소개 JEUS 설치및시작하기 JEUS Server 안내서 설명 JEUS 6 서버에대한전반적인소개와 JEUS의아키텍처를포함하여각구성요소들에대해설명한안내서이다. JEUS에대한소개와설치및시작방법에대해기술한안내서이다. JEUS 시스템과서버의개요와시스템관리를위한안내서이다. 참고자료 Java EE 5 Tutorial, Part 4: Java Persistence http://www.oracle.com/technetwork/java/javaee/documentation/tutorials-137605.html Pro EJB 3 Java Persistence API, Mike Keith and Merrick Schincariol, Apress Enterprise JavaBeans 3.0 5th ed., Bill Burke and Richard Monson-Haefel, O Reilly Mastering Enterprise JavaBeans 3.0 3rd ed., Rima Patel Sriganesh, Gerald Brose, Micah Silverman, Wiley Sun Microsystems, Inc. 의 EJB 3.0 Specification - Java Persistence API 1.0 안내서에대하여 xi

연락처 Korea TmaxSoft Co., Ltd 272-6, Seohyeon-dong, Bundang-gu, Seongnam-si, Gyeonggi-do, 463-721 South Korea Tel: +82-31-8018-1000 Fax: +82-31-8018-1115 Email: info@tmax.co.kr 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: info@tmaxsoft.com 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: info@tmaxsoft.co.jp Web (Japanese): http://www.tmaxsoft.co.jp xii JEUS JPA 안내서

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: info.cn@tmaxsoft.com Web (Chinese): http://www.tmaxsoft.com.cn 안내서에대하여 xiii

제 1 장소개 Java Persistence API( 이하 JPA) 는관계형데이터베이스에접근하기위한표준 ORM 기술을제공하며, 기존에 EJB에서제공되던 CMP Entity Bean을대체하는기술이다. JEUS는 JPA 스펙의기능을모두지원한다. JPA는 JSR 220에서정의된 EJB 3.0 스펙의일부로정의가되어있지만, JPA는 EJB 컨테이너에의존하지않으며 EJB, 웹모듈및 Java SE Standalone 클라이언트에서모두사용이가능하다. 또한, JPA 는사용자가원하는 Persistence 프로바이더 (Provider) 구현체를선택해서사용할수있다. JEUS 에서는기본적으로 GlassFish 프로젝트의 TopLink Essentials 구현체를제공한다. 그리고 Fix#7부터는 TopLink 를기반으로오픈소스화한 EclipseLink 구현체를시스템라이브러리로제공하고있다. 그리고필요에따라다른구현체를선택해서사용할수있다. 이에대한자세한사항은 3.1. Persistence 프로바이더변경 을참고한다. 실제 JPA를사용할때는 JPA 스펙에서제공하는기본적인 API나설정과프로바이더의특성을함께고려해야한다. 특히, Caching과같은것은중요한특성으로이를모르고애플리케이션을개발하면원하는결과를얻지못할수도있다. 따라서, JPA를환경에따라적절하게구성해서개발해야한다. 이러한것들은앞으로다양한패턴을통해소개될것이므로 GlassFish 프로젝트나 TopLink JPA 사이트를계속참조하기를권장한다. GlassFish 프로젝트 http://glassfish.dev.java.net TopLink JPA Resources http://www.oracle.com/technology/products/ias/toplink/jpa/resources-index.html 본안내서는 JEUS 의기본프로바이더인 TopLink Essentials 를 JEUS 에서사용하는데필요한설정에대 해서만설명한다. JPA 기술자체나프로그래밍방법에대해서는다루고있지않기때문에이에대해서는 본안내서의참고자료부분을참고한다. 제 1 장소개 1

제 2 장프로바이더설정 본장에서는 JEUS 의기본프로바이더인 TopLink Essentials 에대한설정을설명한다. 이러한설정은 JPA 스펙에서정의되지않는기능을구현하기위해필요한부분으로, 각애플리케이션에맞게정확하게설정 되어야한다. 2.1. 데이터베이스설정 사용환경, 데이터베이스타입에따른데이터베이스설정과자동으로데이터베이스스키마를생성하는설 정에대해설명한다. 2.1.1. 사용환경별설정 사용환경에따라데이터베이스의설정방법이달라진다. Java EE 환경 여기에서 Java EE 환경 ( 혹은모드 ) 이라고하는것은 JPA가 JEUS의컨테이너에서사용될때를의미한다. 즉, 웹모듈이나, EJB 모듈, 애플리케이션클라이언트모듈에서 JPA를사용할때이를 Java EE 모드에서사용한다고말한다. 사용할데이터베이스대상에대한설정은 persistence.xml Descriptor에설정한다. 이때, 사용할트랜잭션의종류에따라서 <jta-data-source> 와 <non-jta-data-source> 값을설정한다. 글로벌트랜잭션을사용하는경우 <transaction-type> 의값을 JTA로지정하고, <jta-data-source> 에해당 Data Source의 JNDI 이름을설정한다. 로컬트랜잭션을사용하는경우 <transaction-type> 의값을 RESOURCE_LOCAL로설정하고 <non-jta-data-source> 에해당 Data Source의 JNDI 이름을설정한다. [ 예 2.1] Java EE 모드에서데이터베이스설정예 <?xml version="1.0" encoding="utf-8"?> <persistence xmlns="http://java.sun.com/xml/ns/persistence"> <persistence-unit name="em" transaction-type="jta"> <jta-data-source>jdbc/mydb</jta-data-source> </persistence-unit> </persistence> 제 2 장프로바이더설정 3

참고 1. Java EE 환경에서는 <transaction-type> 값을지정하지않을경우, 기본적으로 JTA 트랜잭션으로설정한다. 2. JEUS에서 DB 데이터소스를설정하는방법은 JEUS Server 안내서 의 8.3. JDBC 데이터소스설정 을참고한다. Java SE 환경 Java SE 환경 ( 혹은모드 ) 은 Java EE 컨테이너에서사용하지않는경우이다. 예를들어 Java stand-alone 클라이언트와같은환경에서사용하는경우를말한다. 이때는로컬트랜잭션만사용할수있으며, 사용되는데이터베이스의 JDBC 설정을프로퍼티로설정해야한다. 다음의예제와같이 <transaction-type> 의값을 RESOURCE_LOCAL로설정한다. [ 예 2.2] Java SE 모드에서데이터베이스설정예 <?xml version="1.0" encoding="utf-8"?> <persistence xmlns="http://java.sun.com/xml/ns/persistence"> <persistence-unit name="em" transaction-type="resource_local"> <properties> <property name="toplink.jdbc.driver" value="org.apache.derby.jdbc.clientdriver"/> <property name="toplink.jdbc.url" value="jdbc:derby://localhost:1527/testdb"/> <property name="toplink.jdbc.user" value="app"/> <property name="toplink.jdbc.password" value="app"/> </properties> </persistence-unit> </persistence> 다음은프로퍼티값에대한설명이다. [ 표 2.1] Java SE 모드데이터베이스프로퍼티 프로퍼티값 toplink.jdbc.driver toplink.jdbc.url toplink.jdbc.user toplink.jdbc.password 설명대상데이터베이스의 JDBC 드라이버클래스이름이다. 대상데이터베이스의 JDBC URL이다. 대상데이터베이스의사용자명이다. 대상데이터베이스의패스워드이다. 4 JEUS JPA 안내서

2.1.2. 데이터베이스타입설정 기본적으로해당데이터베이스타입을 JDBC 커넥션정보를통해자동으로감지한다. 하지만, 자동감지기능이제대로동작하지않거나, 별도의다른데이터베이스를사용하는경우라면 toplink.target-database 프로퍼티를설정할수있다. 참고 데이터베이스타입은 JDBC 드라이버의 DatabaseMetaData.getDatabaseProductName() 을이용하 여, 데이터베이스벤더이름을 regular expression 으로비교하는방식을사용한다. [ 예 2.3] 데이터베이스타입설정예 <?xml version="1.0" encoding="utf-8"?> <persistence xmlns="http://java.sun.com/xml/ns/persistence"> <persistence-unit name="em"> <jta-data-source>jdbc/mydb</jta-data-source> <properties> <property name="toplink.target-database" value="db2"/> </properties> </persistence-unit> </persistence> 다음은지원되는데이터베이스타입값에대한설명이다. [ 표 2.2] toplink.target- 데이터베이스프로퍼티 값 Auto Attunity Cloudscape DB2 DB2Mainframe DBase Derby HSQL Informix JavaDB MySQL4 Oracle PointBase 설명 (Default) 자동감지 Attunity DBMS Cloudscape DBMS IBM DB2 DBMS IBM DB2 Mainframe DBMS DBase DBMS Apache Derby DBMS HSQL DBMS Informix DBMS JavaDB DBMS MySQL DBMS Oracle DBMS PointBase DBMS 제 2 장프로바이더설정 5

값 PostreSQL SQLAnyWhere SQLServer Sybase TimesTen Customized class name 설명 PostreSQL DBMS SQLAnywhere DBMS Microsoft SQLServer DBMS Sybase DBMS Oracle Timesten DBMS 기본적으로지원되지않는 DBMS를추가할때사용한다. 기본적으로지원되지않는 DBMS 의경우별도로 DBMS 지원기능을구현하여사용할수있다. 이때는해 당클래스이름을지정하면된다. 이에대한자세한정보는본안내서의참고자료부분을참고한다. 2.1.3. 스키마자동생성설정 자동으로 DB 스키마를생성하는기능을이용하는경우설정한다. 이를이용하면애플리케이션을디플로이할때 DB 테이블및제약사항 (Constraints) 을자동으로생성한다. 관련된프로퍼티설정은다음과같다. toplink.ddl-generation 스키마 DDL(Data Descriptor Language) 을어떤식으로생성할지설정한다. 옵션 none create-tables drop-and-create-tables 설명아무것도하지않는다. ( 기본값 ) 존재하지않는테이블을생성하며, 기존테이블은그대로남겨둔다. 기존에존재하는테이블을삭제하고다시생성한다. DDL 을생성할때기본적으로다음과같이 Java 타입을해당데이터베이스 SQL 타입에맞게생성한다. [ 표 2.3] Java Type to SQL Type Mappings Java Type Derby, Oracle DB2 Sybase SQLServer MySQL JavaDB, Cloudscape boolean, SMALLINT NUMBER(1) SMALLINT BIT BIT TINYINT(1) Boolean int, Integer INTEGER NUMBER(10) INTEGER INTEGER INTEGER INTEGER long, Long BIGINT NUMBER(19) INTEGER NUMER NUMER BIGINT IC(19) IC(19) float, Float FLOAT NUMER FLOAT FLOAT(16) FLOAT(16) FLOAT IC(19,4) 6 JEUS JPA 안내서

Java Type Derby, Oracle DB2 Sybase SQLServer MySQL JavaDB, Cloudscape double, Dou FLOAT NUMER FLOAT FLOAT(32) FLOAT(32) DOUBLE ble IC(19,4) short, Short SMALLINT NUMBER(5) SMALLINT SMALLINT SMALLINT SMALLINT byte, Byte SMALLINT NUMBER(3) SMALLINT SMALLINT SMALLINT SMALLINT ja DECIMAL NUMBER(38) DECIMAL(15) NUMER NUMER DECIMAL(38) va.lang.num IC(38) IC(28) ber java.math.big BIGINT NUMBER(38) BIGINT NUMER NUMER BIGINT Integer IC(38) IC(28) ja DECIMAL NUMBER(38) DECIMAL(15) NUMER NUMER DECIMAL(38) va.math.bigdec IC(38) IC(28) imal ja VAR VAR VAR VAR VAR VAR va.lang.string CHAR(255) CHAR(255) CHAR(255) CHAR(255) CHAR(255) CHAR(255) char, Charac CHAR(1) CHAR(1) CHAR(1) CHAR(1) CHAR(1) CHAR(1) ter byte[], Byte[], BLOB(64000) LONG RAW BLOB(64000) TEXT TEXT TEXT(64000) java.sql.blob char[], Char CLOB(64000) LONG CLOB(64000) TEXT TEXT TEXT(64000) acter[], ja va.sql.clob java.sql.date DATE DATE DATE DATETIME DATETIME DATE java.sql.time TIME DATE TIME DATETIME DATETIME TIME ja TIMESTAMP DATE TIMESTAMP DATETIME DATETIME DATETIME va.sql.times tamp 2.2. Caching JPA에서는기본적으로 Persistence Context라고하는 1st-level Caching을지원하고있다. 하지만, 일반적으로 Persistence Context는트랜잭션별로새로생성되기때문에 (Extended Persistence Context는이에해당하지않음 ) 트랜잭션간에 Caching을지원하지않는다. 이를보완하기위해 TopLink Essentials에서는 2nd-level Caching 기능을제공한다. 2nd-level Caching은 EntityManagerFactory 레벨에서지원되기때문에, 동일한 EntityManagerFactory에서생성된모든 EntityManager의경우이공유 Cache를사용하게된다. 즉, Persistence Context에없는 제 2 장프로바이더설정 7

Entity를가져올때 2nd-level Caching을참고하여존재하는경우에이를가져온다. 따라서반복적인 Read 작업의경우성능향상을가져오게된다. Caching에관련된옵션은다음을참고한다. toplink.cache.type.default Caching 방식을설정한다. 옵션 Full HardWeak SoftWeak Weak NONE 설명객체를 Hard reference로 Caching한다. 따라서 Entity가삭제되기전까지항상 Cache에존재하게된다. Weak와유사하며, 자주사용되는객체는 Hard reference로 Caching한다. Weak와유사하며, 자주사용되는객체는 Soft reference로 Caching한다. 자주사용되는객체는메모리가부족할때사라진다. ( 기본값 ) 객체를 Weak reference로 Caching한다. Garbage Collection(GC) 이되면사라진다. 객체를 Cache에저장하지않는다. 사용을권장하지않으며 Caching 기능을이용하고싶지않다면, toplink.cache.shared.xxx 프로퍼티를설정하기를권장한다. toplink.cache.size.default Cache에저장될최대객체수를설정한다. ( 기본값 : 1000) toplink.cache.shared.default 공유 Cache를사용할지여부를설정한다. 옵션 true 설명 객체가공유 Cache 에저장된다. 모든 EntityManager 는 Caching 을사용하게된다. ( 기본값 ) false 객체가공유 Cache 에저장되지않는다. 따라서, EntityManager 별로 Cache 를공유하지 않는다. 이를사용하면 2nd-level Caching 을하지않는효과가있다. toplink.cache.type.<entity> Entity 별로 Caching을하는방식을지정한다. <ENTITY> 는 Entity 이름혹은 fully-qualified 클래스이름이될수있다. 해당 Entity와관계를가지는모든 Entity는같은설정을가져야한다. toplink.cache.type.default [8] 의값설명과동일하다. toplink.cache.size.<entity> Entity 별로 Cache 사이즈를지정한다. <ENTITY> 는 Entity 이름혹은 fully-qualified 클래스이름이될수있다. toplink.cache.size.default [8] 의값설명과동일하다. toplink.cache.shared.<entity> 8 JEUS JPA 안내서

Entity 별로공유 Cache 를사용할지를지정한다. <ENTITY> 는 Entity 이름혹은 fully-qualified 클래스이 름이될수있다. 해당 Entity 와관계를가지는모든 Entity 는동일한설정을가져야한다. toplink.cache.shared.default [8] 의값설명과동일하다. 주의 2nd-level Caching이사용될때주의할것은외부애플리케이션에의해혹은직접데이터베이스의데이터를변경하는경우해당내용이 Caching에반영되지않는다는점이다. 이런경우, 데이터베이스의최신값이아닌 Caching된값이리턴되기때문에애플리케이션에이를고려해야한다. Caching 옵션을애플리케이션환경을고려하여적절히설정하거나, EntityManager.refresh(), toplink.refresh Query 힌트혹은 locking(pessimistic/optimistic) 등을사용하여이런문제를피할수있다. 2.3. Query 힌트 Query 힌트는 Query 객체를사용할때프로바이더에서제공하는기능을사용할수있도록한다. Query 힌트는다음예제와같이 Query를실행할때설정할수도있고, Named Query를사용하는경우 @QueryHint Annotation을사용하여지정할수도있다. [ 예 2.4] Query 힌트사용예제 List employees = em.createquery("select e FROM Employee e WHERE e.name = :name").setparameter("name", name).sethint("toplink.refresh", true).getresultlist(); 제공하는 Query 힌트는다음과같다. toplink.pessimistic-lock SELECT 할때 Pessimistic Locking 을사용할지여부를설정한다. 옵션 NoLock Lock NoLockWait 설명사용하지않는다. ( 기본값 ) SELECT... FOR UPDATE 문을이용해 Locking을한다. SELECT... FOR UPDATE NO WAIT 문을이용해 Locking을한다. toplink.refresh 데이터베이스에서최신값을가져와 Caching 을업데이트할지여부를설정한다. 옵션 true 설명 최신값을가져오고 Caching 을업데이트한다. 제 2 장프로바이더설정 9

옵션 false 설명 Cache 에있는값을사용한다. ( 기본값 ) 2.4. Logging 설정 좀더자세한로그를보고싶다면 Logging 레벨을설정할수있다. 기본적으로 Logging 레벨은 JEUS 서버에전체적으로적용되는레벨 ( 기본적으로 INFO) 을따르게되지만, 이를 Persistence Unit별로변경할경우 toplink.logging.level 프로퍼티로설정할수있다. Logger의경우 Java EE 모드에서는기본적으로 JEUS에서제공되는 Logger(JEUS Logger) 를사용하게되며, Java SE 모드에서는 standard output으로출력되는 DefaultLogger를사용하게된다. 이를변경하려면 toplink.log ging.logger 프로퍼티로설정할수있다. 다음은설정에대한자세한설명이다. toplink.logging.level Logging 레벨을지정한다. OFF: Logging을하지않는다. SEVERE WARNING INFO( 기본값 ) CONFIG FINE: SQL 관련정보를보고싶다면, 이레벨로설정한다. FINER FINEST toplink.logging.logger 사용할 Logger를지정한다. 옵션 JEUSLogger DefaultLogger JavaLogger Custom class name 설명 JEUS에서제공되는 Logger이다. (Java EE 모드인경우기본값 ) 기본 standard output Logger이다. (Java SE 모드인경우기본값 ) java.util.logging Logger이다. 별도의 Logger를구현한경우지정한다. 참고 TopLink Essentials 에대한자세한설정은 TopLink JPA Extensions Reference 를참고한다. http://www.oracle.com/technology/products/ias/toplink/jpa/resources/toplink-jpa-extensions.html 10 JEUS JPA 안내서

제 3 장프로바이더변경 본장에서는 JEUS 의기본프로바이더를변경하는방법에대해서설명한다. 3.1. Persistence 프로바이더변경 JEUS에서기본적으로제공되는프로바이더 (TopLink Essentials) 가아닌다른프로바이더를사용하려면 JPA 스펙에따라서이를지원한다. 먼저필요한라이브러리들을 JEUS_HOME\lib\application에복사하거나또는각애플리케이션별로패키징한다. 그리고해당프로바이더클래스이름을 persistence.xml의 <provider> 값에설정하면, Persistence Unit 별로설정한프로바이더를사용하게된다. 프로바이더클래스이름과관련프로퍼티값들도각프로바이더별로다르므로해당문서를참고하여설정해야한다. 예를들어, Hibernate를사용하는경우다음과같이설정한다. [ 예 3.1] Persistence 프로바이더변경예 <?xml version="1.0" encoding="utf-8"?> <persistence xmlns="http://java.sun.com/xml/ns/persistence"> <persistence-unit name="em"> <provider>org.hibernate.ejb.hibernatepersistence</provider> <jta-data-source>jdbc/mydb</jta-data-source> <properties> <!-- add Hibernate properties here --> </properties> </persistence-unit> </persistence> JEUS 6 Fix#7부터시스템라이브러리 (JEUS_HOME/lib/system/eclipselink.jar) 로 EclipseLink를제공하고있다. 만약 EclipseLink를사용하려면 <provider> 값으로 org.eclipse.persistence.jpa.persistenceprovider 를설정한다. 위와같이 Persistence Unit별로프로바이더를변경할수도있지만, JEUS의디폴트프로바이더를변경할수도있다. JEUS를구동시킬때시스템프로퍼티 jeus.persistence.defaultprovider를해당프로바이더클래스이름으로설정하면프로바이더가지정되지않는모든 Persistence Unit의경우해당디폴트프로바이더를사용하게된다. 참고 JEUS 시스템프로퍼티설정은 "JEUS Server 안내서 " 나 "JEUS Reference Book" 을참고한다. 제 3 장프로바이더변경 11

3.2. 사용가능한 Persistence 프로바이더 다른 Persistence 프로바이더에대해서는다음의각사이트를참고한다. EclipseLink http://www.eclipse.org/eclipselink Hibernate EntityManager http://www.hibernate.org OpenJPA http://openjpa.apache.org BEA Kodo http://www.bea.com 12 JEUS JPA 안내서

용어해설 글로벌트랜잭션여러 XA 자원 ( 데이타베이스 ) 들을포괄하는트랜잭션을말한다. 분산트랜잭션이라고도고하며, 보통 2 Phase Commit을통해트랜잭션을단일성을보장한다. 로컬트랜잭션글로벌트랜잭션과달리하나의자원에만범위를가지는트랜잭션을말한다. EJB Enterprise Java Beans이다. EntityManager javax.persistence.entitymanager 객체이다. EntityManagerFactory javax.persistence.entitymanagerfactory 객체이다. JPA Java Persistence API 약자이다. named query Java Persistence API에서 XML Descriptor나 Annotation으로지정된 Query이다. ORM Object Relational Mapping 약어이다. persistence 프로바이더 Java Persistence API를지원하는구현체이다. persistence context Java Persistence API에서현재관리되고있는 Entity Instance의집합이다. persistence unit Java Persistence API에서관리되는논리적인단위로, Entity 클래스와매핑정보를포괄한다. 용어해설 13

색인 Symbols 2nd-level Caching, 7 C Caching, 7 L Logger, 10 P Persistence Provider, 1, 11 Persistence 프로바이더, 3 T toplink.cache.shared.<entity>, 8 toplink.cache.shared.default, 8 toplink.cache.size.<entity>, 8 toplink.cache.size.default, 8 toplink.cache.type.<entity>, 8 toplink.cache.type.default, 8 toplink.ddl-generation, 6 toplink.jdbc.driver, 4 toplink.jdbc.password, 4 toplink.jdbc.url, 4 toplink.jdbc.user, 4 toplink.logging.level, 10 toplink.logging.logger, 10 toplink.pessimistic-lock, 9 toplink.refresh, 9 색인 15