Oracle Stream Analyticsアプリケーションからリレーショナル・データベース・アクセスについてJava Database Connectivity (JDBC)を構成できます。
Oracle Stream Analyticsでは、JDBC 4.0がサポートされています。JDBCをダウンロードするには、http://java.sun.com/products/jdbc/download.html
に移動します。
この章の内容は次のとおりです。
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でのデータベース・ドライバへのアクセス」を参照してください。
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
詳細は、次を参照してください。
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。
Oracle Stream Analytics DataSource
は、JDBC 4.0仕様をサポートするJDBCデータ・ソース接続プールの実装を提供します。
アプリケーションでは、標準APIのDataSource.getConnection
とConnection.close
を使用して、データ・ソースにあるConnection
オブジェクトの予約と解放を行います。
図12-1は、データソース、接続プールおよびConnection
インスタンス間の関係を示します。
次のいずれかの方法でリレーショナル・データベースにアクセスする場合は、Oracle Stream Analyticsサーバーのデフォルト・データ・ソースを使用するか、サーバーのconfig.xml
ファイルで独自のOracle Stream Analytics DataSource
を構成する必要があります。Oracle Stream Analyticsスキーマ・リファレンスを参照してください。
Oracle CQLプロセッサのルール
の場合
イベントの記録と再生
キャッシュ・ローダーまたはストアの場合
DriverManager
などのJDBCドライバのAPIをアプリケーション・コードで直接使用する場合、サーバーのconfig.xml
ファイルにDataSource
を構成する必要はありません。
デフォルトでは、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
子要素の値を指定することで、再試行間隔を変更できます。値ゼロは、接続の再試行を無効にします。
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.xml
のtransaction-manager
要素を使用して構成できます。「JMX構成オブジェクト」の説明のように、トランザクション・マネージャは構成されたRMIオブジェクトに依存します。
Oracle Stream Analyticsサーバーを起動するとき、デフォルトでデータベースを利用できない場合、Oracle Stream Analyticsサーバー・データ・ソースは、接続が確立されるまで10秒ごとに再試行を繰り返します。再試行により、データベースが使用できないときのOracle Stream Analyticsサーバーの起動が可能になります。例では、connection-pool-params
要素のconnection-creation-retry-frequency-seconds
子要素の値を指定して、config.xml
ファイルで再試行間隔が変更されています。例の値は60秒です。
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();
注意:
作業が完了したらプールされた接続を閉じ、プールされた接続を閉じた後はネイティブ接続オブジェクトを使用しないでください。
この項では、Oracle JDBCドライバを使用したデータベースへのアクセスを構成する手順を説明します。
Oracle JDBCドライバはOracle Stream Analyticsでインストールされて使用可能です。
Oracle JDBCドライバを使用したデータベースへのアクセスの構成:
サーバーのconfig.xml
ファイルでデータ・ソースを構成します。
Oracle Stream Analyticsサーバーのconfig.xml
ファイルを構成ウィザードを使用して更新する場合、「スタンドアロンサーバー・ドメインの作成」を参照してください。
Oracle Stream Analyticsサーバーのconfig.xml
ファイルを手動で更新する場合は、カスタム・データ・ソース構成を参照してください。
Oracle JDBCドライバのurl
要素の形式は次のとおりです。「カスタムのデータソースの構成」も参照してください。
<url>jdbc:oracle:thin:@HOST
:PORT
:SID
</url>
Oracle Stream Analyticsが実行中の場合は、新規のデータ・ソース情報を読み込むために再起動します。
詳細は、「サーバーの起動と停止」を参照してください。
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>
場合によっては、Oracle Stream Analyticsにバンドルされているバージョン以外のOracle DatabaseドライバまたはDataDirectドライバのバージョン、またはOracle DatabaseドライバまたはDataDirectドライバ以外のデータベース・ドライバを使用する必要があることがあります。
この手順は、bundlerユーティリティを使用してドライバに対するOSGiバンドルを作成してOracle Stream Analyticsサーバー上にデプロイする方法です。
必要に応じて、独自のJDBCドライバにアクセスするためにbootclasspathを使用できます。
かわりに、「bundler.shを使用して構築されるアプリケーション・ライブラリを使用したデータベース・ドライバへのアクセス」で説明されているように、アプリケーション・ライブラリを使用することをお薦めします。
構成するドメインのサーバー・ディレクトリに移動します。
デフォルトでは、サーバー・ディレクトリは/Oracle/Middleware/my_oep/user_projects/domains/<domainname/<servername>/
にあります。
テキスト・エディタで、使用しているプラットフォーム向けの起動スクリプトを開きます。
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
サーバーのconfig.xml
ファイルでデータ・ソースを構成します。
Oracle Stream Analyticsサーバーのconfig.xml
ファイルを構成ウィザードを使用して更新する場合、「スタンドアロンサーバー・ドメインの作成」を参照してください。
Oracle Stream Analyticsサーバーのconfig.xml
ファイルを手動で更新する場合は、カスタム・データ・ソース構成を参照してください。
Oracle Stream Analyticsが実行中の場合は、新規のjava
オプションとデータ・ソース情報を読み込むために再起動します。
詳細は、「サーバーの起動と停止」を参照してください。