데이터 액세스 애플리케이션 개발
데이터 액세스 애플리케이션을 사용하여 애플리케이션 지원 환경에서 사용할 수 있도록 외부 소스에서 데이터를 조작할 수 있습니다.
이 태스크 정보
- 표준 또는 확장 API 사용
- CMP(container-managed persistence) Bean 사용
- BMP(bean-managed persistence) Bean, 세션 Bean 또는 웹 컴포넌트 사용
- 서비스 데이터 오브젝트(SDO) 사용
프로시저
- 데이터 액세스 구현 방법을 결정하십시오.
EJB(Enterprise JavaBeans) 프로그래밍 모델은 구별되는 여러 서버측 컴포넌트 유형, 즉 엔티티, 세션, 메시지 구동 Bean 및 서블릿을 제공합니다. 이들 유형 중에 엔티티 Bean은 일반적으로 애플리케이션에서 비즈니스 컴포넌트를 모델링하는 데 사용됩니다. 엔티티 Bean에는 state와 behavior가 모두 있습니다.
엔티티 Bean의 상태는 지속적이고 데이터베이스에 저장됩니다. 엔티티 Bean에 변경을 수행할 때 해당 상태는 Bean을 표시하는 데이터베이스 레코드와 계속 동기화됩니다. EJB 모델은 두 가지 유형의 엔티티 Bean을 제공하고 이 두 가지 유형은 지속을 제공하는 데 사용하는 메커니즘이 다릅니다. 이 두 유형의 엔티티 Bean은 container-managed persistence(CMP) Bean과 bean-managed persistence(BMP) Bean입니다.
- BMP Bean의 경우 개발자가 코드를 수동으로 작성하여 Bean의 지속적 상태를 관리합니다.
- CMP Bean의 경우에는 EJB 컨테이너가 Bean의 지속적 상태를 관리합니다. 지속적 상태 관리는
복잡하고 어려운 태스크이며, CMP Bean을 사용하면 개발자는 지속 작동을 컨테이너에 위임하여 비즈니스 로직에
집중할 수 있습니다.
CMP Bean의 일반적인 예는 Customer, Account 등입니다. CMP Bean은 오브젝트이므로 해당 데이터(상태)는 필드 액세서를 사용하여 액세스됩니다. 예를 들면, Customer 엔티티 Bean은 name 및 phoneNumber와 같은 필드를 가질 수 있습니다. 이러한 데이터는 액세스 메소드 getName()/setName() 및 getPhoneNumber()/setPhoneNumber()를 사용하여 액세스됩니다. 개발자로서, 사용자는 이 데이터가 실제로 저장되고 백엔드 데이터베이스에서 검색되는 방법을 염두에 두지 않고 데이터의 무결성이 컨테이너에 의해 유지보수된다고 가정할 수 있습니다.
엔티티 Bean 개발에 대한 정보는 엔터프라이즈 Bean 개발 주제를 참조하십시오.팁:관계형 데이터베이스에 대한 애플리케이션 요청의 효율을 최대화하려면 BMP 및 CMP Bean 개발 시 SQLJ(Structured Query Language in Java™)의 사용을 고려하십시오. 이 옵션은 DB2® 데이터베이스에 액세스하기 위해 DB2 JDBC Universal 드라이버를 사용하는 애플리케이션에 사용 가능합니다.
이 드라이버 요구사항에 대한 유일한 예외는 DB2 for z/OS®에 액세스하는 SQLJ 기반 BMP Bean에 적용됩니다. 이 스키마에는 DB2 for z/OS 레거시 드라이버가 필요합니다(DB2 for z/OS 로컬 JDBC 제공자 RRS에 대해 필요).
또한 잠재적 성능 이점을 위해서는 커서 홀드 기능의 사용을 고려하십시오(세부사항은 JDBC 애플리케이션 커서 홀드 기능 지원 토픽을 참조하십시오.
관계형 데이터베이스에 대한 애플리케이션 요청의 효율성 최대화를 위해서는 커서 홀드 기능의 사용을 고려하십시오.
엔티티 Bean에 대한 대안은 데이터 애플리케이션 개발을 위한 통합 프레임워크인 서비스 데이터 오브젝트(SDO)를 사용하는 것입니다. SDO를 이용하면 데이터에 액세스하여 이를 사용하기 위해 기술 특정 API를 익힐 필요가 없습니다. 관계형 데이터베이스, 엔티티 EJB 컴포넌트, XML 페이지, 웹 서비스, Java 커넥터 아키텍처, JavaServer Pages 등을 포함한 여러 소스의 데이터에 대한 작업을 가능하게 하는 한 API인 SDO API만을 알고 있으면 됩니다.
- 자원 참조를 사용하여 데이터 소스 또는 연결 팩토리를
찾아보십시오. 자세한 정보는 관계형 액세스에 대한 자원 참조로
데이터 소스 찾아보기 주제를 참조하십시오. CMP Bean에 대해 작업하는 경우
이 단계를 수행하지 마십시오. EJB 컨테이너는 CMP Bean에 대해 이 프로세스를
핸들합니다.
WebSphere® Application Server에서 애플리케이션을 실행하려면 코드가 자원 참조를 사용하여 논리적으로 데이터 소스 또는 연결 팩토리를 이름 지정해야 합니다. 자원 참조를 실제 자원에 맵핑하는 것은 보통 어셈블리 시점에 수행됩니다. Application Server 관리자는 이들 자원을 구성합니다.
- 관계형 데이터베이스 액세스를 위해 관리자는 임베디드 WebSphere 관계형 자원 어댑터와 함께 작동하는 JDBC 제공자 및 연관된 데이터 소스를 구성합니다.
- 비관계형 데이터베이스 액세스를 위해 관리자는 애플리케이션 서버에 Java EE(Java Platform, Enterprise Edition) 커넥터 아키텍처(JCA) 자원 어댑터를 설치하고 연관된 연결 팩토리를 구성합니다.
일반 작업 컨텍스트 구현은 자원 어댑터가 실행을 위해 제품 작업 관리자에게 제출한 작업 인스턴스가 실행되는 컨텍스트를 제어할 수 있는 메커니즘을 자원 어댑터에 제공합니다. 자원 어댑터는 WorkContextProvider 인터페이스를 구현하는 작업 인스턴스를 제출하여 WebSphere Application Server에 다양한 유형의 컨텍스트를 전파할 수 있습니다. 그러면 Application Server가 전파된 컨텍스트 유형을 지원하는 경우 제공된 컨텍스트를 해당 실행 중 작업 인스턴스의 실행 컨텍스트로 설정합니다.
- 데이터 소스 또는 연결 팩토리에 대한 연결을 확보하십시오. 세부사항은
연결 라이프사이클 주제의 "연결 확보" 섹션을 참조하십시오. CMP Bean에 대해 작업하는 경우
이 단계를 수행하지 마십시오. EJB 컨테이너는 CMP Bean에 대해 이 프로세스를
핸들합니다.
EIS(Enterprise Information Systems)에 대한 관계형 및 프로시저 액세스를 위한 연결 관리 아키텍처는 Java EE 커넥터 아키텍처(JCA) 스펙을 기초로 합니다. Application Server 내의 연결을 풀링하고 관리하는 CM(Connection Manager)은 JCA 스펙에 의해 정의된 RA(resource adapter)와 JDBC 확장 스펙에 의해 정의된 데이터 소스 둘 다를 통해 얻은 연결을 관리할 수 있습니다.
스레드 ID를 사용하여 연결에 소유자를 지정하십시오. 자세한 정보는 스레드 ID 지원 사용 주제를 참조하십시오.
하위 주제
스레드 ID 지원 사용
스레드 ID 기능을 사용하여 처음 연결할 때 연결 소유자로 스레드 ID를 지정할 수 있습니다. 이 기능은 JCA(Java EE(Java Platform, Enterprise Edition) Connector Architecture) 자원 어댑터와 연결 소유권에 대한 스레드 ID 사용을 지원하는 RRA(Relational Resource Adapter) 래퍼 JDBC(Java Database Connectivity) 제공자에만 적용됩니다.MongoDB를 사용하는 Liberty 애플리케이션을 전체 프로파일로 이식
WebSphere Application Server 전체 프로파일에서 실행하도록 MongoDB를 사용하는 Liberty 애플리케이션을 이식할 수 있습니다.RAR 모듈에서 Bean 유효성 검증 사용
WebSphere Application Server는 JCA(Java Connector Architecture) 버전 1.6 스펙을 준수하여 RAR(resource archive) JavaBeans 제한조건을 유효성 검증합니다.RAR 모듈의 어노테이션에 대한 JCA 1.6 지원
JCA(Java Connector Architecture) 버전 1.6 스펙은 자원 아카이브(RAR) 모듈의 Java 어노테이션에 대한 지원을 추가합니다. 어노테이션은 모듈을 구성하는 클래스 파일에서 RAR 모듈에 대해 메타데이터 또는 구성 데이터를 지정하는 방법입니다.데이터 액세스 API에 대한 확장기능
단일 데이터 액세스 API가 사용자 애플리케이션의 전체 솔루션을 제공하지 않는 경우, WebSphere Application Server 확장기능을 사용하여 JCA 및 JDBC API 간 상호 운용성을 얻습니다.내보낸 테이블 데이터 정의 언어에서 데이터베이스 테이블 다시 작성
WebSphere Application Server 배치 도구가 CMP(Container-Managed Persistence) 엔터프라이즈 Bean을 포함하는 EJB jar 파일을 배치하는 경우, 대상 데이터베이스를 선택하고 해당 Table.ddl 파일을 작성합니다. 이 파일은 CMP Bean에 대한 데이터베이스 테이블을 생성하는 데 필요한 SQL 문을 포함합니다.컨테이너 관리 지속성 Bean 연관 기술
WebSphere Application Server는 EJB(Enterprise JavaBeans) 스펙에서 설정한 표준 이상의 CMP(Container-Managed Persistence) 서비스를 전달합니다.엔티티 Bean과 데이터 저장소 동기화 조작
환경 변수 또는 마커 인터페이스를 사용하여 특정 EJB(Enterprise JavaBeans) 유형이 각 findBy 호출에 앞서 상태를 지속적 스토리지와 동기화할 수 없음을 나타낼 수 있습니다.수정하지 않은 EntityBean 인스턴스에서 ejbStore 호출 피하기
EntityBean 인스턴스가 현재 트랜잭션 중에 수정되지 않은 경우 ejbStore 메소드 호출을 생략하도록 EntityBean 인스턴스를 구성할 수 있습니다.자원 참조 이점
WebSphere Application Server의 경우 코드가 JNDI(Java Naming and Directory Interface) 네임스페이스에서 직접 자원에 액세스하기 보다는 논리 이름을 통해 애플리케이션 서버 자원(예: 데이터 소스 또는 J2C 연결 팩토리)을 참조해야 합니다. 이러한 논리 이름을 자원 참조라고 합니다.Java EE 커넥터 아키텍처 커넥터를 사용하여 데이터 액세스
WebSphere Application Server의 Java EE 커넥터 아키텍처(JCA) 준수 애플리케이션에서 데이터에 액세스하기 위해 자원 어댑터와 연결 팩토리를 구성하고 사용하십시오.JDBC 애플리케이션 개발 팁
우수 사례를 사용하여 JDBC 조회의 효율성을 최대화하여, 잠재적으로 애플리케이션 성능을 늘릴 수 있습니다.JDBC 애플리케이션 커서 홀드 기능 지원
커서 홀드 기능은 관계형 데이터베이스로 JDBC 상호작용의 오버헤드를 줄일 수 있으므로 애플리케이션 성능을 늘리는 데 도움이 됩니다.데이터 액세스 Bean 유형
쉬운 데이터 액세스 프로그래밍을 위해 WebSphere Application Server는 사용자를 위해 JDBC(Java Database Connectivity) API의 많은 메소드를 구현하는 특별한 클래스 라이브러리를 제공합니다. 이 라이브러리는 본질적으로 서비스 데이터 오브젝트(SDO) 세트입니다.애플리케이션 클라이언트에서 데이터 액세스
Java EE(Java Platform, Enterprise Edition) 애플리케이션 클라이언트로부터 직접 데이터베이스에 액세스하기 위해, 클라이언트 배치 디스크립터에 구성된 자원 참조에서 javax.sql.DataSource 오브젝트를 검색합니다. 이 자원 참조는 클라이언트 애플리케이션에 대한 배치 디스크립터의 파트로서 구성되고 사전 구성된 데이터 소스 오브젝트에 참조를 제공합니다.서비스 데이터 오브젝트를 통한 데이터 액세스, API 버전 1.0 및 2.01
SDO(Service Data Objects) 프레임워크는 소스에 종속되지 않는 결과 세트를 제공하는 데이터 중심의 분리된 XML 통합 데이터 액세스 메커니즘입니다.데이터 액세스를 위한 Java Database Connectivity 데이터 중개자 서비스 사용
다음 단계는 DMS dataGraph를 인스턴스화하는 방법뿐 아니라 JDBC(Java Database Connectivity) 데이터 중개자 서비스(DMS)에 대한 메타데이터를 작성하는 방법에 대해 설명합니다.데이터 액세스를 위한 EJB 데이터 중개자 서비스 사용
다음 단계는 코드 샘플을 사용하여 EJB(Enterprise JavaBeans) 데이터 중개자 서비스(DMS) 메타데이터를 작성하는 방법의 간단한 인스턴스에 대해 설명합니다.사용자 정의 DataStoreHelper 클래스 개발
WebSphere 확장, GenericDataStoreHelper 클래스를 적용하여 Application Server가 지원하지 않는 데이터 소스에 대한 자신의 데이터 저장소 헬퍼를 작성합니다. 이 헬퍼 클래스로 JDBC 구성은 트랜잭션 중에 데이터베이스별 기능을 사용할 수 있습니다.MongoDB를 사용하는 Liberty 애플리케이션을 전체 프로파일로 이식
WebSphere Application Server 전체 프로파일에서 실행하도록 MongoDB를 사용하는 Liberty 애플리케이션을 이식할 수 있습니다.RAR 모듈에서 Bean 유효성 검증 사용
WebSphere Application Server는 JCA(Java Connector Architecture) 버전 1.6 스펙을 준수하여 RAR(resource archive) JavaBeans 제한조건을 유효성 검증합니다.RAR 모듈의 어노테이션에 대한 JCA 1.6 지원
JCA(Java Connector Architecture) 버전 1.6 스펙은 자원 아카이브(RAR) 모듈의 Java 어노테이션에 대한 지원을 추가합니다. 어노테이션은 모듈을 구성하는 클래스 파일에서 RAR 모듈에 대해 메타데이터 또는 구성 데이터를 지정하는 방법입니다.데이터 액세스 API에 대한 확장기능
단일 데이터 액세스 API가 사용자 애플리케이션의 전체 솔루션을 제공하지 않는 경우, WebSphere Application Server 확장기능을 사용하여 JCA 및 JDBC API 간 상호 운용성을 얻습니다.내보낸 테이블 데이터 정의 언어에서 데이터베이스 테이블 다시 작성
WebSphere Application Server 배치 도구가 CMP(Container-Managed Persistence) 엔터프라이즈 Bean을 포함하는 EJB jar 파일을 배치하는 경우, 대상 데이터베이스를 선택하고 해당 Table.ddl 파일을 작성합니다. 이 파일은 CMP Bean에 대한 데이터베이스 테이블을 생성하는 데 필요한 SQL 문을 포함합니다.컨테이너 관리 지속성 Bean 연관 기술
WebSphere Application Server는 EJB(Enterprise JavaBeans) 스펙에서 설정한 표준 이상의 CMP(Container-Managed Persistence) 서비스를 전달합니다.엔티티 Bean과 데이터 저장소 동기화 조작
환경 변수 또는 마커 인터페이스를 사용하여 특정 EJB(Enterprise JavaBeans) 유형이 각 findBy 호출에 앞서 상태를 지속적 스토리지와 동기화할 수 없음을 나타낼 수 있습니다.수정하지 않은 EntityBean 인스턴스에서 ejbStore 호출 피하기
EntityBean 인스턴스가 현재 트랜잭션 중에 수정되지 않은 경우 ejbStore 메소드 호출을 생략하도록 EntityBean 인스턴스를 구성할 수 있습니다.자원 참조 이점
WebSphere Application Server의 경우 코드가 JNDI(Java Naming and Directory Interface) 네임스페이스에서 직접 자원에 액세스하기 보다는 논리 이름을 통해 애플리케이션 서버 자원(예: 데이터 소스 또는 J2C 연결 팩토리)을 참조해야 합니다. 이러한 논리 이름을 자원 참조라고 합니다.Java EE 커넥터 아키텍처 커넥터를 사용하여 데이터 액세스
WebSphere Application Server의 Java EE 커넥터 아키텍처(JCA) 준수 애플리케이션에서 데이터에 액세스하기 위해 자원 어댑터와 연결 팩토리를 구성하고 사용하십시오.JDBC 애플리케이션 개발 팁
우수 사례를 사용하여 JDBC 조회의 효율성을 최대화하여, 잠재적으로 애플리케이션 성능을 늘릴 수 있습니다.JDBC 애플리케이션 커서 홀드 기능 지원
커서 홀드 기능은 관계형 데이터베이스로 JDBC 상호작용의 오버헤드를 줄일 수 있으므로 애플리케이션 성능을 늘리는 데 도움이 됩니다.데이터 액세스 Bean 유형
쉬운 데이터 액세스 프로그래밍을 위해 WebSphere Application Server는 사용자를 위해 JDBC(Java Database Connectivity) API의 많은 메소드를 구현하는 특별한 클래스 라이브러리를 제공합니다. 이 라이브러리는 본질적으로 서비스 데이터 오브젝트(SDO) 세트입니다.애플리케이션 클라이언트에서 데이터 액세스
Java EE(Java Platform, Enterprise Edition) 애플리케이션 클라이언트로부터 직접 데이터베이스에 액세스하기 위해, 클라이언트 배치 디스크립터에 구성된 자원 참조에서 javax.sql.DataSource 오브젝트를 검색합니다. 이 자원 참조는 클라이언트 애플리케이션에 대한 배치 디스크립터의 파트로서 구성되고 사전 구성된 데이터 소스 오브젝트에 참조를 제공합니다.서비스 데이터 오브젝트를 통한 데이터 액세스, API 버전 1.0 및 2.01
SDO(Service Data Objects) 프레임워크는 소스에 종속되지 않는 결과 세트를 제공하는 데이터 중심의 분리된 XML 통합 데이터 액세스 메커니즘입니다.데이터 액세스를 위한 Java Database Connectivity 데이터 중개자 서비스 사용
다음 단계는 DMS dataGraph를 인스턴스화하는 방법뿐 아니라 JDBC(Java Database Connectivity) 데이터 중개자 서비스(DMS)에 대한 메타데이터를 작성하는 방법에 대해 설명합니다.데이터 액세스를 위한 EJB 데이터 중개자 서비스 사용
다음 단계는 코드 샘플을 사용하여 EJB(Enterprise JavaBeans) 데이터 중개자 서비스(DMS) 메타데이터를 작성하는 방법의 간단한 인스턴스에 대해 설명합니다.사용자 정의 DataStoreHelper 클래스 개발
WebSphere 확장, GenericDataStoreHelper 클래스를 적용하여 Application Server가 지원하지 않는 데이터 소스에 대한 자신의 데이터 저장소 헬퍼를 작성합니다. 이 헬퍼 클래스로 JDBC 구성은 트랜잭션 중에 데이터베이스별 기능을 사용할 수 있습니다.


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tdat_impdatacc
파일 이름:tdat_impdatacc.html