プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle Stream Analyticsの管理
12cリリース(12.2.1.2.0)
E82643-01
目次へ移動
目次

前
前へ
次
次へ

12 JDBC

Oracle Stream Analyticsアプリケーションからリレーショナル・データベース・アクセスについてJava Database Connectivity (JDBC)を構成できます。

Oracle Stream Analyticsでは、JDBC 4.0がサポートされています。JDBCをダウンロードするには、http://java.sun.com/products/jdbc/download.htmlに移動します。

この章の内容は次のとおりです。

12.1 データベース・アクセス

JDBC APIでは、アプリケーションがJDBC APIをサポートするデータベース・サーバーや他のタイプの表形式リソースに接続し相互作用するための、ベンダーに依存しない標準的な方法が提供されます。

データベース・ドライバは、JDBC javax.sql.DataSourceインタフェースを実装して、データベース接続ファクトリを定義できます。アプリケーションはDataSourceオブジェクトを使用して、データベース接続(java.sql.Connection)を取得します。アプリケーションはSQLコマンドを送信し、結果を受信することで、接続を取得し、データ・リソースと相互作用します。

Oracle Stream Analyticsでは、JDBCドライバDataSourceオブジェクトをカプセル化し、あらかじめ決められた接続のプールを管理するDataSource分離が提供されます。また、Oracle WebLogic Server WLConnectionインタフェースでは、Oracleデータ・ソースへのアクセスおよび操作を可能にする方法も提供されます。詳細は、「Oracle Stream Analyticsデータ・ソース」を参照してください。

Oracle Stream Analyticsでは、Oracle 12c Thinドライバが提供されます。オプションで、独自のJDBCドライバを使用できます。「bootclasspathでのデータベース・ドライバへのアクセス」を参照してください。

12.1.1 Oracle JDBCドライバ

Oracle Stream Analyticsには、Java SE 7で使用するためのOracle 12c Thinドライバが含まれています。JDBC Thinドライバは、pure JavaのType IVドライバで、アプリケーションおよびアプレットで使用できます。プラットフォームに依存せず、クライアント側に追加のOracleソフトウェアは必要ありません。JDBC Thinドライバは、Oracle DatabaseにアクセスするためにSQL*Netを使用してサーバーと通信します。

Oracle 12c Thinドライバは次のJARファイルにあります。

/Oracle/Middleware/wlserver/modules/com.bea.oracle.ojdbc6_1.0.0.0_11-2-0-3-0.jar

詳細は、次を参照してください。

12.1.2 サポートされるデータベース

Oracle Stream Analyticsサーバーでは、使用するJDBCドライバのタイプによって、異なるデータベースがサポートされます。

Oracle JDBCドライバ

Oracle JDBCドライバを使用すると、Oracle Database 12cリリースにアクセスできます。「Oracle JDBCドライバ」を参照してください。

DataDirectのSQL Server Type 4 JDBCドライバ

MicrosoftのSQL Server Type 4 JDBCドライバを使用すると、次のSQL Serverデータベースにアクセスできます。

  • Microsoft SQL Server 2012

  • Microsoft SQL Server 2005

  • Microsoft SQL Server 2000

  • Microsoft SQL Server 2000 Desktop Engine (MSDE 2000)

  • Microsoft SQL Server 2000 Enterprise Edition (64ビット)

  • Microsoft SQL Server 7.0。

12.2 Oracle Stream Analyticsデータ・ソース

Oracle Stream Analytics DataSourceは、JDBC 4.0仕様をサポートするJDBCデータ・ソース接続プールの実装を提供します。

アプリケーションでは、標準APIのDataSource.getConnectionConnection.closeを使用して、データ・ソースにあるConnectionオブジェクトの予約と解放を行います。

図12-1は、データソース、接続プールおよびConnectionインスタンス間の関係を示します。

図12-1 Oracle Stream Analyticsデータ・ソース

図12-1の説明が続きます
「図12-1 Oracle Stream Analyticsデータ・ソース」の説明

次のいずれかの方法でリレーショナル・データベースにアクセスする場合は、Oracle Stream Analyticsサーバーのデフォルト・データ・ソースを使用するか、サーバーのconfig.xmlファイルで独自のOracle Stream Analytics DataSourceを構成する必要があります。Oracle Stream Analyticsスキーマ・リファレンスを参照してください。

  • Oracle CQLプロセッサのルールの場合

  • イベントの記録と再生

  • キャッシュ・ローダーまたはストアの場合

DriverManagerなどのJDBCドライバのAPIをアプリケーション・コードで直接使用する場合、サーバーのconfig.xmlファイルにDataSourceを構成する必要はありません。

12.2.1 デフォルトのデータソースの構成

デフォルトでは、Oracle Stream Analyticsサーバーがローカルのトランザクション・マネージャを作成します。「JMX構成オブジェクト」の説明のように、トランザクション・マネージャは構成されたRMIオブジェクトに依存します。Oracle Stream Analyticsサーバーはシステムに複数のトランザクション・マネージャ・インスタンスが存在しないことを保証します。

Oracle Stream Analyticsサーバーを起動するとき、デフォルトでデータベースを利用できない場合、Oracle Stream Analyticsサーバー・データ・ソースは、接続が確立されるまで10秒ごとに再試行を繰り返します。再試行により、データベースが使用できないときのOracle Stream Analyticsサーバーの起動が可能になります。connection-pool-params要素のconnection-creation-retry-frequency-seconds子要素の値を指定することで、再試行間隔を変更できます。値ゼロは、接続の再試行を無効にします。

12.2.2 カスタムのデータソースの構成

Oracle Stream Analyticsサーバーのconfig.xmlファイルでは、実行時に作成されるデータ・ソースごとに、外部JDBCモジュール記述子を参照する構成要素が必要です。

構成ウィザードでOracle Stream Analyticsドメインを作成する場合は、必要に応じて、サポートされる2つのDataDirectのJDBCドライバのいずれかを使用するJDBCデータ・ソースを構成できます。この場合、ウィザードによってconfig.xmlファイルが更新されます。データ・ソースを構成するときは、接続先データベース、接続ユーザー名とパスワードなどの基本情報を指定します。

次の例に示すとおり、data-source要素を追加してconfig.xmlファイルを手動で更新することもできます。

<data-source>
    <name>rdbms</name>
    <data-source-params>
        <global-transactions-protocol>None</global-transactions-protocol>
    </data-source-params>
    <connection-pool-params>
        <test-table-name>SQL SELECT 1 FROM DUAL</test-table-name>
        <initial-capacity>5</initial-capacity>
        <max-capacity>10</max-capacity>
        <connection-creation-retry-frequency-seconds>
            60
        </connection-creation-retry-frequency-seconds>
    </connection-pool-params>
    <driver-params>
        <url>jdbc:oracle:thin:@localhost:5521:rdb</url>
        <driver-name>oracle.jdbc.OracleDriver</driver-name>
        <properties>
            <element><name>user</name><value>scott</value></element>
            <element><name>password</name><value>tiger</value></element>
        </properties>
        <use-xa-data-source-interface>true</use-xa-data-source-interface>
    </driver-params>
</data-source>
<transaction-manager>
    <name>TM</name>
    <rmi-service-name>RMI</rmi-service-name>
</transaction-manager>

データ・ソースは、ローカル・トランザクション・マネージャの可用性に依存します。デフォルトのOracle Stream Analyticsサーバー・トランザクション・マネージャに依存するか、例に示すとおり、config.xmltransaction-manager要素を使用して構成できます。「JMX構成オブジェクト」の説明のように、トランザクション・マネージャは構成されたRMIオブジェクトに依存します。

Oracle Stream Analyticsサーバーを起動するとき、デフォルトでデータベースを利用できない場合、Oracle Stream Analyticsサーバー・データ・ソースは、接続が確立されるまで10秒ごとに再試行を繰り返します。再試行により、データベースが使用できないときのOracle Stream Analyticsサーバーの起動が可能になります。例では、connection-pool-params要素のconnection-creation-retry-frequency-seconds子要素の値を指定して、config.xmlファイルで再試行間隔が変更されています。例の値は60秒です。

12.2.3 ネイティブJDBC接続の取得

Oracle WebLogic ServerのAPIリファレンスは、Oracleデータ・ソースの取得および操作方法を含むWLConnectionインタフェースを提供します。たとえば、次のJavaコードは、プールされた接続オブジェクトからネイティブOracleデータベース接続を取得します。

private DataSource ods;
private Connection wlConnection;
private OracleConnection connection;

wlConnection = ods.getConnection();
connection = (OracleConnection) ((WLConnection) wlConnection)
.getVendorConnection();

注意:

作業が完了したらプールされた接続を閉じ、プールされた接続を閉じた後はネイティブ接続オブジェクトを使用しないでください。

12.3 Oracle JDBCドライバを使用したデータベースへのアクセスの構成

この項では、Oracle JDBCドライバを使用したデータベースへのアクセスを構成する手順を説明します。

Oracle JDBCドライバはOracle Stream Analyticsでインストールされて使用可能です。

Oracle JDBCドライバを使用したデータベースへのアクセスの構成:

  1. サーバーのconfig.xmlファイルでデータ・ソースを構成します。

    1. Oracle Stream Analyticsサーバーのconfig.xmlファイルを構成ウィザードを使用して更新する場合、「スタンドアロンサーバー・ドメインの作成」を参照してください。

    2. Oracle Stream Analyticsサーバーのconfig.xmlファイルを手動で更新する場合は、カスタム・データ・ソース構成を参照してください。

      Oracle JDBCドライバのurl要素の形式は次のとおりです。「カスタムのデータソースの構成」も参照してください。

      <url>jdbc:oracle:thin:@HOST:PORT:SID</url>
      
  2. Oracle Stream Analyticsが実行中の場合は、新規のデータ・ソース情報を読み込むために再起動します。

    詳細は、「サーバーの起動と停止」を参照してください。

12.4 Microsoft SQL Server JDBCドライバを使用したデータベース・アクセスの構成

Microsoft SQL server JDBCドライバでデータ・ソースにアクセスするには、次のようにwlsqlserv.jarおよびfmwgenerictoken.jarファイルを-Xbootclasspathに追加します。

-Xbootclasspath/a:/Oracle/Middleware/my_oep/oracle_common/modules/datadirect/wlsqlserver.jar:/Oracle/Middleware/my_oep/oracle_common/modules/datadirect/fmwgenerictoken.jar

-Xbootclasspath/a:/Oracle/Middleware/oracle_common/modules/datadirect/wlsqlserver.jar:/Oracle/Middleware/oracle_common/modules/datadirect/fmwgenerictoken.jar

次のSQLサーバー・データ・ソース構成をconfig.xmlファイルに追加します。

<data-source>
  <name>ds-sqlserver-datadirect-driver</name>
  <data-source-params>
    <jndi-names />
    <global-transactions-protocol>OnePhaseCommit
    </global-transactions-protocol>
  </data-source-params>
  <connection-pool-params>
   <credential-mapping-enabled></credential-mapping-enabled>
   <test-table-name>SQL SELECT 1</test-table-name>
   <initial-capacity>5</initial-capacity>
   <max-capacity>20</max-capacity>
   <capacity-increment>1</capacity-increment>
  </connection-pool-params>
  <driver-params>
    <use-xa-data-source-interface>true</use-xa-data-source-interface>
    <driver-name>weblogic.jdbc.sqlserver.SQLServerDriver</driver-name>
    <url>
 jdbc:weblogic:sqlserver://hostname:port;databaseName=fmwcerts;SelectMethod=cursor
    </url>
    <properties>
      <element>
        <value>sa</value>
        <name>user</name>
      </element>
      <element>
        <value>{AES}XcrEKM8RegvOT3jZ4d46WQ==</value>
        <name>password</name>
      </element>
    </properties>
  </driver-params>
</data-source>

12.5 異なるデータベース・ドライバまたはドライバ・バージョンへのアクセスの構成

場合によっては、Oracle Stream Analyticsにバンドルされているバージョン以外のOracle DatabaseドライバまたはDataDirectドライバのバージョン、またはOracle DatabaseドライバまたはDataDirectドライバ以外のデータベース・ドライバを使用する必要があることがあります。

12.5.1 bundler.shを使用して構築されるアプリケーション・ライブラリを使用したデータベース・ドライバへのアクセス

この手順は、bundlerユーティリティを使用してドライバに対するOSGiバンドルを作成してOracle Stream Analyticsサーバー上にデプロイする方法です。

  1. bundler.shスクリプトを実行して、ドライバを含むOSGiバンドルを作成します。

    bundler.shスクリプトは、/Oracle/Middleware/my_oep/oep/binディレクトリにあります。次の例はbundler.shコマンドライン・オプションのリストを示しており、表12-1でそれらを説明しています。

    注意:

    bundler.sh (bundler.cmdではない)に対するWindowsサポートはありません。

    bundler.sh
        -source <jar> 
        -name <name> 
        -version <version> 
        [-factory <class>+] 
        [-service <interface>+] 
        [-stagedir <path>] 
        [-targetdir <path>] 
    

    表12-1 bundler.shコマンド・ライン・オプション

    引数 説明

    -source

    バンドルするソースJARファイルのパス。

    -name

    バンドルのシンボリック名。ターゲットJARファイル名のルートは名前の値から導出されています。

    -version

    バンドル・バージョン番号。すべてのエクスポートされたパッケージは、この値のバージョン属性で修飾されます。ターゲットJARファイル名には、バージョン番号が含まれています。

    -factory

    OSGiサービスとしてインスタンス化および登録される1つ以上のファクトリ・クラスのスペース区切りリストを指定するオプションの引数。各サービスは、OSGiサービス・レジストリに名前(-name)とバージョン(-version)プロパティとともに登録されます。

    -service

    各ファクトリ・オブジェクト・サービス登録のオブジェクト・クラスとして使用する1つ以上のJavaインタフェースのスペース区切りリストを指定するオプションの引数。インタフェース名を指定していない場合、または指定したインタフェース数がファクトリ・クラス数と一致していない場合、各ファクトリ・オブジェクトはファクトリ・クラス名で登録されます。

    -stagedir

    ターゲットJARファイル作成時の一時ファイルの書込み先を指定するオプションの引数。

    デフォルト: ./bundler.tmp

    -targetdir

    生成されたバンドルJARファイルの場所を指定するオプションの引数。

    デフォルト: 現在の作業ディレクトリ(.)

    次の例は、bundler.shを使用してOracle JDBCドライバのOSGiバンドルを作成する方法を示します。

    bundler.sh \
        -source /scratch/drivers/com.bea.oracle.ojdbc6_1.0.0.0_11-2-0-3-0.jar \
        -name oracle12c \
        -version 12.1.3 \
        -factory oracle.jdbc.xa.client.OracleXADataSource oracle.jdbc.OracleDriver \
        -service javax.sql.XADataSource java.sql.Driver \
        -targetdir /scratch/stage
    

    ソースJARは、C:\driversディレクトリにあるOracleドライバです。生成されたバンドルJARの名前は、-name-version引数の連結で、C:\stageディレクトリに作成されます。バンドルJARには、次の例に示すファイルが含まれます。

    1465 Thu Jun 29 17:54:04 EDT 2006 META-INF/MANIFEST.MF
    1540457 Thu May 11 00:37:46 EDT 2006 ccom.bea.oracle.ojdbc6_1.0.0.0_
      11-2-0-3-0.jar
    1700 Thu Jun 29 17:54:04 EDT 2006 com/bea/core/tools/bundler/Activator.class
    

    コマンドライン・オプションは、バンドルがアクティブ化されたときにOSGiサービスとしてインスタンス化および登録する2つのファクトリ・クラスがあることを指定し、次の表に示すとおり、それぞれが別々のオブジェクト・クラスの下にあります。

    表12-2 ファクトリ・クラスおよびサービス・インタフェース

    ファクトリ・クラス サービス・インタフェース

    oracle.jdbc.xa.client.OracleXADataSource

    javax.sql.XADataSource

    oracle.jdbc.OracleDriver

    java.sql.Driver

    各サービス登録は、nameプロパティをoracle12cに、versionプロパティを値12cに設定して行われ、次の例は、サービスの登録を示すOracle Stream Analyticsサーバー・ログ・メッセージを示します。

    ...
    INFO: [Jun 29, 2006 5:54:18 PM] Service REGISTERED: { version=12c, name=oracle12c, objectClass=[ javax.sql.XADataSource ], service.id=23 }
    INFO: [Jun 29, 2006 5:54:18 PM] Service REGISTERED: { version=12c, name=oracle12c, objectClass=[ java.sql.Driver ], service.id=24 }
    INFO: [Jun 29, 2006 5:54:18 PM] Bundle oracle12c STARTED
    ...
  2. Oracle Stream Analyticsサーバー・ライブラリ拡張ディレクトリに、バンドルJARをコピーします。

    Oracle Stream Analyticsアプリケーションはドライバを含むアプリケーション・ライブラリであるため、それをOracle Stream Analyticsサーバー・ライブラリ拡張ディレクトリにコピーします。デフォルトでは、ライブラリ拡張ディレクトリは、/Oracle/Middleware/user_projects/domains/<domainname>/ <servername>/modules/ext/にあります。

  3. Oracle Stream Analyticsサーバーのconfig.xmlファイルで、次の例が示すとおり、使用するドライバ・バージョンに対するカスタムdata-source要素を作成し、driver-params子要素を追加します。

    詳細は、「サーバー構成ファイル」を参照してください。

        <driver-params>
          <url>jdbc:oracle:thin:@lcw2k18:1531:lcw101</url>
          <driver-name>oracle.jdbc.xa.client.OracleXADataSource</driver-name
          <properties>
            <element>
              <name>user</name>
              <value>scott</value>
            </element>
            <element>
              <name>password</name>
              <value>{3DES}EoIfSBMhnW8=</value>
            </element>
            <element>
              <name>com.bea.core.datasource.serviceName</name>
              <value>oracle12c</value>
            </element>
            <element>
              <name>com.bea.core.datasource.serviceVersion</name>
              <value>12.1.3</value>
            </element>
            <element>
              <name>com.bea.core.datasource.serviceObjectClass</name>
              <value>javax.sql.XADataSource</value>
            </element>
          </properties>
          <use-xa-data-source-interface>true</use-xa-data-source-interface>
        </driver-params>
    

    表12-1では、関連プロパティを説明します。

    表12-3 driver-paramsプロパティ

    プロパティ 説明

    com.bea.core.datasource.serviceName

    serviceName登録プロパティの値を指定します。

    ActivatorクラスのNAMEプロパティに一致する必要があります。

    com.bea.core.datasource.serviceVersion

    serviceVersion登録プロパティの値を指定します。

    ActivatorクラスのVERSIONプロパティに一致する必要があります。

    com.bea.core.datasource.serviceObjectClass

    OSGIサービス登録のインタフェース名を指定します。

  4. Oracle Stream Analyticsサーバーを停止し、起動します。

    詳細は、「サーバーの起動と停止」を参照してください。

12.5.2 bootclasspathでのデータベース・ドライバへのアクセス

必要に応じて、独自のJDBCドライバにアクセスするためにbootclasspathを使用できます。

かわりに、「bundler.shを使用して構築されるアプリケーション・ライブラリを使用したデータベース・ドライバへのアクセス」で説明されているように、アプリケーション・ライブラリを使用することをお薦めします。

  1. 構成するドメインのサーバー・ディレクトリに移動します。

    デフォルトでは、サーバー・ディレクトリは/Oracle/Middleware/my_oep/user_projects/domains/<domainname/<servername>/にあります。

  2. テキスト・エディタで、使用しているプラットフォーム向けの起動スクリプトを開きます。

  3. wlevs.jarファイルを実行するJavaコマンドに-Xbootclasspath/aオプションを追加し、使用するJDBCドライバのフル・パス名を-Xbootclasspath/aオプションに設定します。

    たとえば、Windows Oracle Thinドライバを使用するには、すべてを1行にして次のように起動スクリプトでjavaコマンドを更新します。

    %JAVA_HOME%\bin\java -Dwlevs.home=%USER_INSTALL_DIR% -Dbea.home=%BEA_HOME%  
    -Xbootclasspath/a:\Oracle\Middleware\my_oep\oep\bin\com.bea.oracle.ojdbc14_10.2.0.jar 
    -jar "%USER_INSTALL_DIR%\bin\wlevs_3.0.jar" -disablesecurity %1 %2 %3 %4 %5 %6 
    
  4. サーバーのconfig.xmlファイルでデータ・ソースを構成します。

    1. Oracle Stream Analyticsサーバーのconfig.xmlファイルを構成ウィザードを使用して更新する場合、「スタンドアロンサーバー・ドメインの作成」を参照してください。

    2. Oracle Stream Analyticsサーバーのconfig.xmlファイルを手動で更新する場合は、カスタム・データ・ソース構成を参照してください。

  5. Oracle Stream Analyticsが実行中の場合は、新規のjavaオプションとデータ・ソース情報を読み込むために再起動します。

    詳細は、「サーバーの起動と停止」を参照してください。