Oracle Event Processingアプリケーションからのリレーショナル・データベース・アクセスのためにJava Database Connectivity (JDBC)を構成できます。
Oracle Event Processingでは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 Event Processingでは、JDBCドライバDataSource
オブジェクトをカプセル化し、あらかじめ決められた接続のプールを管理するDataSource
分離が提供されます。また、Oracle WebLogic Server WLConnection
インタフェースでは、Oracleデータ・ソースへのアクセスおよび操作を可能にする方法も提供されます。詳細は、「Oracle Event Processingデータ・ソース」を参照してください。
Oracle Event Processingでは、Oracle 12c Thinドライバが提供されます。オプションで、独自のJDBCドライバを使用できます。「bootclasspathでのデータベース・ドライバへのアクセス」を参照してください。
Oracle Event Processingには、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 Event Processingサーバーでは、使用する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 Event Processing DataSource
は、JDBC 4.0仕様をサポートするJDBCデータ・ソース接続プールの実装を提供します。
アプリケーションでは、標準APIのDataSource.getConnection
とConnection.close
を使用して、データ・ソースにあるConnection
オブジェクトの予約と解放を行います。
図12-1は、データソース、接続プールおよびConnection
インスタンス間の関係を示します。
次のいずれかの方法でリレーショナル・データベースにアクセスする場合は、Oracle Event Processingサーバーのデフォルトのデータ・ソースを使用するか、サーバーのconfig.xml
ファイルで独自のOracle Event Processing DataSource
を構成する必要があります。Oracle Event Processingスキーマ・リファレンスを参照してください。
Oracle CQLプロセッサのルール
の場合
イベントの記録と再生
キャッシュ・ローダーまたはストアの場合
DriverManager
などのJDBCドライバのAPIをアプリケーション・コードで直接使用する場合、サーバーのconfig.xml
ファイルにDataSource
を構成する必要はありません。
デフォルトでは、Oracle Event Processingサーバーがローカルのトランザクション・マネージャを作成します。「JMX構成オブジェクト」の説明のように、トランザクション・マネージャは構成されたRMIオブジェクトに依存します。Oracle Event Processingサーバーはシステムに複数のトランザクション・マネージャ・インスタンスが存在しないことを保証します。
Oracle Event Processingサーバーを起動したときにデータベースが使用できない場合、デフォルトでは、Oracle Event Processingサーバー・データ・ソースは接続が作成されるまで10秒ごとに再試行します。再試行により、データベースが使用できないときのOracle Event Processingサーバーの起動が可能になります。connection-pool-params
要素のconnection-creation-retry-frequency-seconds
子要素の値を指定することで、再試行間隔を変更できます。値ゼロは、接続の再試行を無効にします。
Oracle Event Processingサーバーのconfig.xml
ファイルでは、実行時に作成されるデータ・ソースごとに、外部JDBCモジュール記述子を参照する構成要素が必要です。
構成ウィザードでOracle Event Processingドメインを作成する場合は、必要に応じて、サポートされる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 Event Processingサーバー・トランザクション・マネージャに依存するか、例に示すとおり、config.xml
のtransaction-manager
要素を使用して構成できます。「JMX構成オブジェクト」の説明のように、トランザクション・マネージャは構成されたRMIオブジェクトに依存します。
Oracle Event Processingサーバーを起動したときにデータベースが使用できない場合、デフォルトでは、Oracle Event Processingサーバー・データ・ソースは接続が作成されるまで10秒ごとに再試行します。再試行により、データベースが使用できないときのOracle Event Processingサーバーの起動が可能になります。例では、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 Event Processingにインストール済で使用可能です。
Oracle JDBCドライバを使用したデータベースへのアクセスの構成:
サーバーのconfig.xml
ファイルでデータ・ソースを構成します。
Oracle Event Processingサーバーのconfig.xml
ファイルを構成ウィザードを使用して更新する場合、スタンドアロンサーバー・ドメインの作成を参照してください。
Oracle Event Processingサーバーのconfig.xml
ファイルを手動で更新する場合、カスタムのデータ・ソースの構成を参照してください。
Oracle JDBCドライバのurl
要素の形式は次のとおりです。「カスタムのデータソースの構成」も参照してください。
<url>jdbc:oracle:thin:@HOST
:PORT
:SID
</url>
Oracle Event Processingが実行中の場合は、新しいデータ・ソース情報を読み込むために再起動します。
詳細は、「サーバーの起動と停止」を参照してください。
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 Event Processingにバンドルされているバージョン以外のOracle DatabaseドライバまたはDataDirectドライバのバージョン、またはOracle DatabaseドライバまたはDataDirectドライバ以外のデータベース・ドライバを使用する必要があることがあります。
この手順は、bundlerユーティリティを使用してドライバに対するOSGiバンドルを作成してOracle Event Processingサーバー上にデプロイする方法です。
必要に応じて、独自の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 Event Processingサーバーのconfig.xml
ファイルを構成ウィザードを使用して更新する場合、スタンドアロンサーバー・ドメインの作成を参照してください。
Oracle Event Processingサーバーのconfig.xml
ファイルを手動で更新する場合、カスタムのデータ・ソースの構成を参照してください。
Oracle Event Processingが実行中の場合は、新規のjava
オプションとデータ・ソース情報を読み込むために再起動します。
詳細は、「サーバーの起動と停止」を参照してください。