6.3. JDBC データソースの設定

OSGi トランザクションアーキテクチャー で説明されているように、一部のサービスを OSGi サービスレジストリーに登録する必要があります。javax.transaction.UserTransaction インターフェイスなどを使用してトランザクションマネージャーインスタンスを 検索 (ルックアップ) できるのと同様に、javax.sql.DataSource インターフェイスを使用して JDBC データソースで同じことができます。要件は以下のとおりです。

  • ターゲットデータベースと通信できるデータベース固有のデータソース
  • プーリングやトランザクション管理 (XA) を設定できる汎用データソース

OSGi 環境では、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);

このようなサービスを登録する方法は 2 つあります。

  • jdbc:ds-create Karaf コンソールコマンドを使用してデータソースを公開します。これは、設定メソッド です。
  • Blueprint、OSGi Declarative Services (SCR)、または BundleContext.registerService() API 呼び出しなどの方法を使用してデータソースを公開します。この方法では、コードやメタデータを含む専用の OSGi バンドルが必要です。これは the_deployment method_ です。