8.2. JCA 사용 개요
JCA는 드라이버와 애플리케이션 서버 간에 양방향 통신을 추가하여 데이터베이스 드라이버 의 개념을 일반화합니다. 드라이버는 javax. resource.spi.ResourceAdapter 로 표시되는 리소스 어댑터 가 됩니다.
두 가지 중요한 인터페이스가 있습니다.
-
리소스 어댑터에서 구현하는
javax.resource.spi.ManagedConnectionFactory -
애플리케이션 서버에서 구현하는
javax.resource.spi.ConnectionManager.
ManagedConnectionFactory 인터페이스는 다음 두 가지 용도로 사용됩니다.
Object createConnectionFactory(ConnectionManager cxManager)메서드는 애플리케이션 코드에서 사용할 수 있는 지정된 EIS(또는 데이터베이스 또는 메시지 브로커)에 대한 연결 팩토리 를 생성하는 데 사용할 수 있습니다. 반환된오브젝트는 다음과 같습니다.-
일반적인
javax.resource.cci.ConnectionFactory(자세한 내용은 JCA 1.6, Chapter 17: Common Client Interface)를 참조하십시오. -
잘 알려진
javax.sql.DataSource또는javax.jms.ConnectionFactory와 같은 EIS 특정 연결 팩토리 이는pax-transx-jdbc및pax-transx-jms번들에서 사용하는 연결 팩토리 유형입니다.
-
일반적인
-
애플리케이션 서버에서 사용하는
javax.resource.spi.ManagedConnection ManagedConnectionFactory.createManagedConnection()메서드는 EIS/database/broker에 대한 실제 물리적 연결을 생성합니다.
ConnectionManager 는 애플리케이션 서버에서 구현하고 리소스 어댑터 에서 사용합니다. 먼저 QoS 작업(풀링, 보안, 트랜잭션 관리)을 수행하고 마지막으로 ManagedConnection 인스턴스를 생성하기 위해 리소스 어댑터 의 ManagedConnectionFactory 에 위임하는 애플리케이션 서버 입니다. 흐름은 다음과 같습니다.
-
애플리케이션 코드는
ManagedConnectionFactory.createConnectionFactory()에서 반환된 오브젝트를 사용하여 애플리케이션 서버에서 생성 및 노출된 연결 팩토리 를 사용합니다. 일반 CCI 인터페이스 또는javax.sql.DataSource일 수 있습니다. -
이 연결 팩토리 에서는 자체적으로 연결을 생성하지 않고
ConnectionManager.allocateConnection()에 위임하는 대신 리소스 어댑터(특정ManagedConnectionFactory)를 전달합니다. -
애플리케이션 서버에서 구현된
ConnectionManager는 지원 개체 를 생성하고, 트랜잭션, 풀링 등을 관리하며 결국 전달된ManagedConnectionFactory에서 물리적(관리) 연결을 가져옵니다. - 애플리케이션 코드는 결국 리소스 어댑터 의 특정 물리적 연결에 위임하는 애플리케이션 서버에서 생성한 래퍼/proxy인 연결을 가져옵니다.
다음은 애플리케이션 서버 가 EIS별로 연결된 비CCI 연결 팩토리 를 생성한 다이어그램입니다. 간단히 - EIS(here: database)에 대한 액세스는 javax.sql.DataSource 인터페이스를 사용하여 수행되며 드라이버의 작업은 물리적 연결을 제공하는 것입니다. 애플리케이션 서버는 풀링/거부/보안을 수행하는 프록시 내부(일반적으로) 내부로 래핑됩니다.
