6.3. JDBC 데이터 소스 구성

OSGi 트랜잭션 아키텍처에서 설명한 대로 일부 서비스는 OSGi 서비스 레지스트리에 등록되어야 합니다. 예를 들어 javax. Cryostat. UserTransaction 인터페이스를 사용하여 트랜잭션 관리자 인스턴스를 찾을 수 있는 것과 마찬가지로 javax. sql.DataSource 인터페이스를 사용하여 JDBC 데이터 소스에서 동일한 작업을 수행할 수 있습니다. 요구 사항은 다음과 같습니다.

  • 대상 데이터베이스와 통신할 수 있는 데이터베이스별 데이터 소스
  • 풀링 및 가능한 트랜잭션 관리(XA)를 구성할 수 있는 일반 데이터 소스

Fuse와 같은 OSGi 환경에서는 OSGi 서비스에 등록된 경우 애플리케이션에서 데이터 소스에 액세스할 수 있습니다. 기본적으로 다음과 같이 수행됩니다.

org.osgi.framework.BundleContext.registerService(javax.sql.DataSource.class,
                                                 dataSourceObject,
                                                 properties);
org.osgi.framework.BundleContext.registerService(javax.sql.XADataSource.class,
                                                 xaDataSourceObject,
                                                 properties);

이러한 서비스를 등록하는 방법은 다음 두 가지가 있습니다.

  • jdbc:ds-create Karaf console 명령을 사용하여 데이터 소스 게시. 구성 방법입니다.
  • 블루프린트, OSGi 선언 서비스(SCR) 또는 BundleContext.registerService() API 호출과 같은 메서드를 사용하여 데이터 소스 게시. 이 메서드에는 코드 및/또는 메타데이터가 포함된 전용 OSGi 번들이 필요합니다. 이 방법은 the_deployment method_입니다.