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-jdbcpax-transx-jms 번들에서 사용하는 연결 팩토리 유형입니다.
  • 애플리케이션 서버에서 사용하는 javax.resource.spi.ManagedConnection ManagedConnectionFactory.createManagedConnection() 메서드는 EIS/database/broker에 대한 실제 물리적 연결을 생성합니다.

ConnectionManager애플리케이션 서버에서 구현하고 리소스 어댑터 에서 사용합니다. 먼저 QoS 작업(풀링, 보안, 트랜잭션 관리)을 수행하고 마지막으로 ManagedConnection 인스턴스를 생성하기 위해 리소스 어댑터ManagedConnectionFactory 에 위임하는 애플리케이션 서버 입니다. 흐름은 다음과 같습니다.

  1. 애플리케이션 코드는 ManagedConnectionFactory.createConnectionFactory() 에서 반환된 오브젝트를 사용하여 애플리케이션 서버에서 생성 및 노출된 연결 팩토리 를 사용합니다. 일반 CCI 인터페이스 또는 javax.sql.DataSource 일 수 있습니다.
  2. 연결 팩토리 에서는 자체적으로 연결을 생성하지 않고 ConnectionManager.allocateConnection() 에 위임하는 대신 리소스 어댑터(특정 ManagedConnectionFactory)를 전달합니다.
  3. 애플리케이션 서버에서 구현된 ConnectionManager지원 개체 를 생성하고, 트랜잭션, 풀링 등을 관리하며 결국 전달된 ManagedConnectionFactory 에서 물리적(관리) 연결을 가져옵니다.
  4. 애플리케이션 코드는 결국 리소스 어댑터 의 특정 물리적 연결에 위임하는 애플리케이션 서버에서 생성한 래퍼/proxy인 연결을 가져옵니다.

다음은 애플리케이션 서버 가 EIS별로 연결된 비CCI 연결 팩토리 를 생성한 다이어그램입니다. 간단히 - EIS(here: database)에 대한 액세스는 javax.sql.DataSource 인터페이스를 사용하여 수행되며 드라이버의 작업은 물리적 연결을 제공하는 것입니다. 애플리케이션 서버는 풀링/거부/보안을 수행하는 프록시 내부(일반적으로) 내부로 래핑됩니다.

diag d19ebefefdbf2bac343521fa48cab709