この章の内容は次のとおりです。
Oracle CEPでは、リレーショナル・データベースへのアクセスのために(http://java.sun.com/products/jdbc/download.html#corespec30
を参照してください) Java Database Connectivity (JDBC) 3.0がサポートされています。
JDBC API (http://java.sun.com/javase/technologies/database/index.jsp
を参照してください)では、APIをサポートするデータベース・サーバーや他のタイプの表形式リソースに接続し相互作用するための、ベンダーに依存しない標準的なメカニズムが提供されます。JDBC javax.sql.DataSource
インタフェースは、ドライバで実装されるデータベース接続ファクトリを指定します。DataSource
オブジェクトのインスタンスは、アプリケーションがデータベース接続(java.sql.Connection
のインスタンス)を取得するために使用されます。接続が取得されると、アプリケーションはSQLコマンドを送信し、結果を受信することで、リソースと相互作用します。
Oracle CEPでは、次のJDBCドライバが提供されます。
Oracle 11.2 thinドライバ(13.1.1項「Oracle JDBCドライバ」を参照してください)
DataDirectのSQL Server Type 4 JDBCドライバ(13.1.2項「SQL Server用のDataDirectのType 4 JDBCドライバ」を参照してください)
オプションで、独自のJDBCドライバを使用できます(13.5.3項「bootclasspathを使用したデータベース・ドライバへのアクセス方法」を参照してください)。
Oracle CEPは、JDBCドライバDataSource
オブジェクトをカプセル化するDataSource
抽象を提供し、前に確立されている接続のプールも管理します。Oracle WebLogic Server WLConnectionインタフェースは、Oracleデータ・ソースのアクセスおよび操作に役立つ方法を提供します。詳細は、13.2項「Oracle CEPデータソースの説明」を参照してください。
Oracle CEPには、次のJARファイルにパッケージされたOracle 11.2 Thinドライバが含まれます。
ORACLE_CEP_HOME
/modules/com.bea.oracle.ojdbc5_1.0.0.0_11-2-0-0.jar
: Java SE 5で使用する場合。
ORACLE_CEP_HOME
/modules/com.bea.oracle.ojdbc6_1.0.0.0_11-2-0-0.jar
: Java SE 6で使用する場合。
JDBC Thinドライバは、pure JavaのType IVドライバで、アプリケーションおよびアプレットで使用できます。プラットフォームに依存せず、クライアント側に追加のOracleソフトウェアは必要ありません。JDBC Thinドライバは、Oracle DatabaseにアクセスするためにSQL*Netを使用してサーバーと通信します。
詳細は、次を参照してください:
Oracle CEPでは、SQL ServerデータベースへのJDBCアクセスのパフォーマンスを高めるDataDirectのタイプ4 JDBCドライバが提供されます。タイプ4 JDBCドライバはJava環境にあわせて最適化されているので、Javaテクノロジを組み込んだり、既存システムの機能およびパフォーマンスを拡張したりできます。
DataDirectのOracle CEPタイプ4 JDBCドライバは、以下のような特長を持つ実績のあるドライバです。
パフォーマンス指向のエンタープライズ向け機能をサポート(分散トランザクション、SavePoint、複数のオープン結果セット、パラメータ・メタデータなど)。
Java EE Compatibility Test Suite (CTS)で認定済み。業界最大のJDBCテスト・スイートにより検証済みです。
JDBCアプリケーションのテストおよびデバッグ用ツールを装備。
詳細は、次を参照してください:
Oracle CEPサーバーでは、使用するJDBCドライバのタイプによって、異なるデータベースがサポートされます。
Oracle JDBCドライバを使用して、次のOracleデータベースにアクセスできます。
Oracleデータベース11gリリース2 (11.2)
詳細は、13.1.1項「Oracle JDBCドライバ」を参照してください。
DataDirectのSQL Serverタイプ4 JDBCドライバを使用して、次のSQL Serverデータベースにアクセスできます。
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
詳細は、13.1.2項「DataDirectのSQL Server用のType 4 JDBCドライバ」を参照してください。
Oracle CEP DataSource
は、Java Database Connectivity (JDBC 3.0)仕様をサポートするJDBCデータソース接続プールの実装を提供します。アプリケーションでは、標準APIのDataSource.getConnection
とConnection.close
を使用して、データソースにあるConnection
オブジェクトの予約と解放を行います。
図13-1は、データソース、接続プールおよびConnection
インスタンス間の関係を示します。
リレーショナル・データベースにアクセスする場合は、Oracle CEPサーバーのデフォルトのデータソースを使用するかサーバーのconfig.xml
ファイルで独自のOracle CEP DataSource
を構成します。
Oracle CQLプロセッサのルール
の場合
『Oracle Complex Event Processing開発者ガイドfor Eclipse』のOracle CQLプロセッサ表ソースの構成に関する項を参照してください。
EPLプロセッサのルール
の場合。
『Oracle Complex Event Processing開発者ガイドfor Eclipse』のEPLプロセッサの構成に関する項を参照してください。
イベントの記録と再生
『Oracle Complex Event Processing開発者ガイドfor Eclipse』の永続イベント・ストアでのイベントの格納に関する項を参照してください。
キャッシュ・ローダーまたはストアの場合
次を参照してください。
『Oracle Complex Event Processing開発者ガイドfor Eclipse』のOracle CEPローカル・キャッシュ・ストアの構成に関する項
『Oracle Complex Event Processing開発者ガイドfor Eclipse』のOracle Coherenceキャッシュ・ローダーまたはストアの構成に関する項
DriverManager
などのJDBCドライバのAPIをアプリケーション・コードで直接使用する場合、サーバーのconfig.xml
ファイルにDataSource
を構成する必要はありません。
詳細は、次を参照してください:
デフォルトでは、Oracle CEPサーバーがローカルのトランザクション・マネージャを作成します。12.2.2項「rmi構成オブジェクト」の説明のように、トランザクション・マネージャは構成されたRMIオブジェクトに依存します。Oracle CEPサーバーはシステムに複数のトランザクション・マネージャ・インスタンスが存在しないことを保証します。
Oracle CEPサーバーの起動時にデータベースが使用できない場合、デフォルトで、Oracle CEPサーバー・データソースは接続が作成できるまで10秒ごとに再試行します。この結果、Oracle CEPサーバーは、データベースが使用できない場合も、正常に起動されます。connection-pool-params
要素connection-creation-retry-frequency-seconds
子要素を使用してOracle CEPサーバーconfig.xml
ファイルでの再試行の間隔を変更することができます。この要素の値をゼロに設定すると、接続の再試行が無効になります。
詳細は、13.2.2項「カスタム・データ・ソースの構成」を参照してください。
Oracle CEPサーバーのconfig.xml
ファイルでは、実行時に作成されるデータソースごとに、外部JDBCモジュール記述子を参照する構成要素が必要です。
この項では、カスタム・データソースを構成する方法を説明します。デフォルト・データソースの構成の詳細は、13.2.1項「デフォルト・データソースの構成」を参照してください。
構成ウィザードを使用してOracle CEPドメインを作成する場合は、必要に応じて、DataDirectの2つのJDBCドライバのいずれかを使用するJDBCデータソースを構成できます(この構成を行った場合は自動的にconfig.xml
ファイルが更新されます)。接続先データベース、接続ユーザー名とパスワードなどの基本情報を指定してデータソースを構成します。構成ウィザードを使用してドメインの既存のサーバーを更新し、新しいデータソースを追加することもできます。
詳細は、次を参照してください:
『Oracle Complex Event Processing管理者ガイド』のOracle CEPスタンドアロン・サーバー・ドメインの作成と更新に関する項
『Oracle Complex Event Processing管理者ガイド』のOracle CEPマルチサーバー・ドメインの作成と更新に関する項
また、例13-1で示すように、data-source
要素を追加してconfig.xml
ファイルを手動で更新することもできます。
例13-1 Oracle CEPサーバー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 CEPサーバー・トランザクション・マネージャに依存するか、config.xml
のtransaction-manager
要素を使用して構成できます。例13-1を参照してください。一方、トランザクション・マネージャは、構成されたRMIオブジェクトに依存します。12.2.2項「rmi構成オブジェクト」を参照してください。
Oracle CEPサーバーを起動するときにデータベースが使用できない場合、デフォルトで、Oracle CEPサーバー・データソースが接続を作成できるまで10秒ごとに再試行します。この結果、Oracle CEPサーバーは、データベースが使用できない場合も、正常に起動されます。connection-pool-params
要素connection-creation-retry-frequency-seconds
子要素を使用してOracle CEPサーバーconfig.xml
ファイルでの再試行の間隔を変更することができます。例13-1を参照してください。この要素の値をゼロに設定すると、接続の再試行が無効になります。
data-source
要素の子要素の詳細なリスト(特に、connection-pool-params
およびdata-source-params
要素)は、『Oracle Complex Event Processing開発者ガイドfor Eclipse』のサーバー構成XSDスキーマ: wlevs_server_config.xsdに関する項を参照してください。
JDBCに影響するセキュリティ構成タスクの詳細は、10.8.3「JDBCセキュリティの構成」を参照してください。
『Oracle Fusion Middleware 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 CEPで自動的にインストールされて使用可能です。詳細は、13.1.1項「Oracle JDBCドライバ」を参照してください。
Oracle JDBCドライバを使用してデータベースへのアクセスを構成するには:
サーバーのconfig.xml
ファイルでデータソースを構成します。
構成ウィザードを使用してOracle CEPサーバーconfig.xml
ファイルを更新する場合、『Oracle Complex Event Processing管理者ガイド』のOracle CEPスタンドアロンサーバー・ドメインの作成と更新に関する項を参照してください。
Oracle CEPサーバーconfig.xml
ファイルを手動で更新する場合、13.2.2項「カスタムのデータソースの構成」を参照してください。
注意: Oracle JDBCドライバのurl 要素は次の形式です。
<url>jdbc:oracle:thin:@ |
Oracle CEPが実行中の場合は、新しいデータソース情報を読み込むために再起動します。
詳細は、1.5.4項「Oracle CEPサーバーの起動と停止」を参照してください。
SQL Server用のDataDirectのType 4 JDBCドライバはOracle CEPで自動的にインストールされ使用可能です。詳細は、13.1.2項「SQL Server用のDataDirectのType 4 JDBCドライバ」を参照してください。
Data Directのタイプ4 JDBCドライバを使用したデータベースへのアクセスを構成するには:
サーバーのconfig.xml
ファイルでデータソースを構成します。
構成ウィザードを使用してOracle CEPサーバーconfig.xml
ファイルを更新する場合、『Oracle Complex Event Processing管理者ガイド』のOracle CEPスタンドアロンサーバー・ドメインの作成と更新に関する項を参照してください。
Oracle CEPサーバーconfig.xml
ファイルを手動で更新する場合、13.2.2項「カスタムのデータソースの構成」を参照してください。
注意: DataDirectのタイプ4 JDBCドライバのurl 要素は次の形式です。
<url>jdbc:weblogic:sqlserver:// |
Oracle CEPが実行中の場合は、新しいデータソース情報を読み込むために再起動します。
詳細は、1.5.4項「Oracle CEPサーバーの起動と停止」を参照してください。
必要に応じて、Oracle CEPにバンドルされているバージョン以外のOracleデータベース・ドライバまたはデータ・ダイレクト・ドライバのバージョン、またはOracleデータベース・ドライバまたはデータ・ダイレクト・ドライバ以外のデータベース・ドライバを使用する必要がある場合があります。
ここでは、以下の項目について説明します。
13.5.1項「bundler.shを使用して構築されるアプリケーション・ライブラリを使用したデータベース・ドライバへのアクセス方法」: この方法をお薦めします。データベース・ドライバに対してOSGiバンドルを作成する必要があります。
13.5.2項「Oracle CEP IDE for Eclipseを使用して構築されるアプリケーション・ライブラリを使用したデータベース・ドライバへのアクセス方法」: この方法をお薦めします。データベース・ドライバに対してOSGiバンドルを作成する必要があります。
アクティベータの実装を手動で構成する場合は、このオプションを使用します。
13.5.3項「bootclasspathを使用したデータベース・ドライバへのアクセス方法」: これは、オプションの方法です。データベース・ドライバに対してOSGiバンドルを作成する必要はありません。
この手順は、bundlerユーティリティを使用してドライバに対するOSGiバンドルを作成してOracle CEPサーバー上にデプロイする方法です。
これはお薦めの方法です。アクティベータの実装を手動で構成する場合は、13.5.2項「Oracle CEP IDE for Eclipseによってビルドされたアプリケーション・ライブラリを使用したデータベース・ドライバにアクセスする方法」を参照してください。
詳細は、『Oracle Complex Event Processing開発者ガイドfor Eclipse』のアプリケーション・ライブラリの作成に関する項を参照してください。
bundler.shを使用して構築されるアプリケーション・ライブラリを使用してデータベース・ドライバにアクセスするには:
『Oracle Complex Event Processingスタート・ガイド』の開発環境の設定に関する項で説明されているように、環境を設定します。
bundler.sh
スクリプトを実行して、ドライバを含むOSGiバンドルを作成します。
bundler.sh
スクリプトは、ORACLE_CEP_HOME
/ocep_11.1/bin
ディレクトリにあります。ORACLE_CEP_HOME
は、Oracle CEPサーバーのインストール先のディレクトリです。
例13-2は、bundler.sh
コマンド・ライン・オプションを示し、表13-1は、これらのオプションを説明します。
例13-2 bundler.shコマンド・ライン・オプション
bundler.sh -source <jar> -name <name> -version <version> [-factory <class>+] [-service <interface>+] [-stagedir <path>] [-targetdir <path>]
表13-1 bundler.shコマンド・ライン・オプション
引数 | 説明 |
---|---|
|
バンドルするソースJARファイルのパス。 |
- |
バンドルのシンボリック名。ターゲットJARファイル名のルートは名前の値から導出されています。 |
- |
バンドル・バージョン番号。すべてのエクスポートされたパッケージは、この値のバージョン属性で修飾されます。ターゲットJARファイル名には、バージョン番号が含まれています。 |
- |
OSGiサービスとしてインスタンス化および登録される1つ以上のファクトリ・クラスのスペース区切りリストを指定するオプションの引数。各サービスは、OSGiサービス・レジストリに名前( |
- |
各ファクトリ・オブジェクト・サービス登録のオブジェクト・クラスとして使用する1つ以上のJavaインタフェースのスペース区切りリストを指定するオプションの引数。インタフェース名を指定していない場合、または指定したインタフェース数がファクトリ・クラス数と一致していない場合、各ファクトリ・オブジェクトはファクトリ・クラス名で登録されます。 |
|
ターゲットJARファイル作成時の一時ファイルの書込み先を指定するオプションの引数。 デフォルト: |
|
生成されたバンドルJARファイルの場所を指定するオプションの引数。 デフォルト: 現在の作業ディレクトリ( |
例13-3は、bundler.sh
を使用してOracle JDBCドライバ用のOSGiバンドルを作成する方法を示します。
例13-3 Bundlerユーティリティの使用
bundler.sh \ -source C:\drivers\com.oracle.ojdbc14_11.2.0.jar \ -name oracle11g \ -version 11.2.0 \ -factory oracle.jdbc.xa.client.OracleXADataSource oracle.jdbc.OracleDriver \ -service javax.sql.XADataSource java.sql.Driver \ -targetdir C:\stage
ソースJARは、C:\drivers
ディレクトリにあるOracleドライバです。生成されたバンドルJARの名前は、-name
と-version
引数(oracle10g_11.2.0.jar
)の連結で、C:\stage
ディレクトリに作成されます。バンドルJARには、例13-4に示すファイルがあります。
例13-4 バンドルJARコンテンツ
1465 Thu Jun 29 17:54:04 EDT 2006 META-INF/MANIFEST.MF 1540457 Thu May 11 00:37:46 EDT 2006 com.oracle.ojdbc14_11.2.0.jar 1700 Thu Jun 29 17:54:04 EDT 2006 com/bea/core/tools/bundler/Activator.class
コマンド・ライン・オプションによって、バンドルがアクティブ化のときにOSGiサービスとしてインスタンス化および登録される2つのファクトリ・クラスがあることを指定します。表13-2で示すように、各ファクトリ・クラスは別々のオブジェクト・クラスにあります。
表13-2 ファクトリ・クラスおよびサービス・インタフェース
ファクトリ・クラス | サービス・インタフェース |
---|---|
|
|
|
|
各サービスは、name
プロパティをoracle11g
に設定し、version
プロパティを11.2.0
の値で登録します。例13-5は、サービスの登録を示すOracle CEPサーバー・ログ・メッセージです。
例13-5 サービス登録ログ・メッセージ
... INFO: [Jun 29, 2006 5:54:18 PM] Service REGISTERED: { version=11.2.0, name=oracle11g, objectClass=[ javax.sql.XADataSource ], service.id=23 } INFO: [Jun 29, 2006 5:54:18 PM] Service REGISTERED: { version=11.2.0, name=oracle11g, objectClass=[ java.sql.Driver ], service.id=24 } INFO: [Jun 29, 2006 5:54:18 PM] Bundle oracle11g STARTED ...
Oracle CEPサーバー・ライブラリ拡張ディレクトリに、バンドルJARをコピーします。
Oracle CEPアプリケーションは、ドライバを含むアプリケーション・ライブラリであるため、DOMAIN_DIR
/
servername
/modules/ext
ディレクトリというOracle CEPサーバー・ライブラリ拡張ディレクトリにコピーします。DOMAIN_DIR
は、/oracle_cep/user_projects/domains/mydomain
などのドメイン・ディレクトリであり、servername
は、myserver
などのサーバー・インスタンスです。例:
c:\oracle_cep\user_projects\domains\mydomain\myserver\modules\ext
詳細は、『Oracle Complex Event Processing開発者ガイドfor Eclipse』のライブラリ拡張ディレクトリに関する項を参照してください。
Oracle CEPサーバーのconfig.xml
ファイルで、使用するドライバ・バージョンに対するカスタムdata-source
要素を作成し、driver-params
子要素を追加します(例13-6を参照してください)。詳細は、1.3.1項「Oracle CEPサーバー構成ファイル」を参照してください。
例13-6 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>oracle11g</value> </element> <element> <name>com.bea.core.datasource.serviceVersion</name> <value>11.2.0</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>
表13-4では、関連プロパティを説明します。
表13-3 driver-params子要素プロパティ
プロパティ | 説明 |
---|---|
|
|
|
|
|
OSGIサービス登録のインタフェース名を指定します。 |
詳細は、13.2.2項「カスタム・データ・ソースの構成」を参照してください。
Oracle CEPサーバーを停止および開始します。
詳細は、1.5.4項「Oracle CEPサーバーの起動と停止」を参照してください。
この手順は、Oracle CEP IDE for Eclipseを使用してドライバに対するOSGiバンドルを作成してOracle CEPサーバー上にデプロイする方法です。
これはお薦めの方法です。アクティベータの実装を手動で構成する場合は、13.5.1項「bundler.shによってビルドされたアプリケーション・ライブラリを使用したデータベース・ドライバにアクセスする方法」を参照してください。
詳細は、『Oracle Complex Event Processing開発者ガイドfor Eclipse』のアプリケーション・ライブラリの作成に関する項を参照してください。
Oracle CEP IDE for Eclipseで構築されるアプリケーション・ライブラリを使用してデータベース・ドライバにアクセスするには:
Oracle CEP IDE for Eclipseを使用して、新しいOracle CEPプロジェクトを作成します。
詳細は、『Oracle Complex Event Processing開発者ガイドfor Eclipse』のOracle CEPプロジェクトの作成に関する項を参照してください。
プロジェクト・フォルダを右クリックして、「新規」>「フォルダ」を選択します。
「フォルダ名」フィールドにlib
と入力し、「終了」をクリックします。
Oracle CEP IDE for Eclipseの外で、JDBC JARファイルをlib
フォルダにコピーします。
Oracle CEP IDE for Eclipse内で、lib
フォルダを右クリックして、「リフレッシュ」を選択します。
図13-2に表示されているように、JARファイルがlib
フォルダに表示されます。
srcディレクトリを右クリックして、「新規」>「クラス」を選択します。
図13-3で示すように、Javaクラスダイアログが表示されます。
表13-4で示すように、新規Javaクラスダイアログを構成します。
表13-4 新規Javaクラス・パラメータ
パラメータ | 説明 |
---|---|
「パッケージ」 |
パッケージの名前。たとえば、 |
「名前」 |
クラスの名前。たとえば、 |
その他のパラメータはデフォルト値のままにします。
「終了」をクリックします。
新規のJavaクラスがプロジェクトに追加されます。
例13-7で示すように、実装するためにJavaクラスを編集します。
JDBCドライバの既存のバージョンを差し代えるように、NAME
およびVERSION
を設定します。この例では既存のバージョンは、次のとおりです。
oracle10g
10.0.0
既存のバージョンを差し代えるために、MyActivator
クラスではこれらの値を次の値に設定します。
oracle11g
11.2.0
例13-7 MyActivatorクラスの実装
package com.foo; import java.util.Dictionary; import java.util.Properties; import javax.sql.XADataSource; import java.sql.Driver; import org.osgi.framework.BundleActivator; import org.osgi.framework.BundleContext; import org.osgi.framework.ServiceRegistration; public class MyActivator implements BundleActivator { private static final String NAME="oracle11g"; private static final String VERSION="11.2.0"; private String[] factories = {"oracle.jdbc.xa.client.OracleXADataSource","oracle.jdbc.OracleDriver"}; private String[] interfaces= {"javax.sql.XADataSource","java.sql.Driver"}; private ServiceRegistration[] serviceRegistrations = new ServiceRegistration[factories.length]; public void start(BundleContext bc) throws Exception { Dictionary props = new Properties(); props.put("name", NAME); props.put("version", VERSION); for (int i=0; i<factories.length; i++) { Object svc = bc.getBundle().loadClass(factories[i]).newInstance(); serviceRegistrations[i] = bc.registerService(interfaces[i], svc, props); } } public void stop(BundleContext bc) throws Exception { for (int i=0; i<serviceRegistrations.length; i++) { serviceRegistrations[i].unregister(); } } }
META-INF/MANIFEST.MF
ファイルを右クリックして、次で開く>プラグイン・マニフェスト・エディタを選択します。
図13-4で示すように、マニフェスト・エディタが表示されます。
「ランタイム」タブをクリックします。
図13-5で示すように、「ランタイム」タブが表示されます。
「クラスパス」ペインで、「追加」をクリックします。
図13-6で示すように、JAR選択ダイアログが表示されます。
libディレクトリを展開して、使用するデータベース・ドライバJARファイルを選択します。
「OK」をクリックします。
「依存関係」タブをクリックします。
図13-7で示すように、「依存関係」タブが表示されます。
インポートされたパッケージペインで、「追加」をクリックします。
図13-8で示すように、パッケージ選択ダイアログが表示されます。
エクスポートされたパッケージフィールドで、org.osgi.framework
を入力します。
図13-8で示すように、リスト・ボックスには、その接頭辞の付いているすべてのパッケージが表示されます。
リスト・ボックスでorg.osgi.framework
を選択して、「OK」をクリックします。
MANIFEST.MFタブをクリックします。
図13-9で示すように、MANIFEST.MF
タブが表示されます。
例13-8で示すように、データベース・ドライバJARを一時ディレクトリに解凍します。
例13-9で示すように、データベース・ドライバJAR MANIFEST.MF
ファイルを開いて、Export-Packageエントリをコピーし、マニフェスト・エディタに貼り付けます。
例13-9 マニフェスト・エディタへのエクスポート・パッケージの追加
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %project.name
Bundle-SymbolicName: JDBCDriver
Bundle-Version: 1.0.0
Bundle-Localization: bundle
Bundle-Vendor: %project.vendor
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Bundle-ClassPath: .
Import-Package: com.bea.wlevs.configuration;version="11.1.1.4_0", ...
Export-Package: oracle.core.lmx;version=1.0.0.0_11-1-0-7,oracle.core.l
vf;version=1.0.0.0_11-1-0-7,oracle.jdbc;version=1.0.0.0_11-1-0-7,orac
le.jdbc.aq;version=1.0.0.0_11-1-0-7,oracle.jdbc.connector;version=1.0
.0.0_11-1-0-7,oracle.jdbc.dcn;version=1.0.0.0_11-1-0-7,oracle.jdbc.dr
iver;version=1.0.0.0_11-1-0-7,oracle.jdbc.internal;version=1.0.0.0_11
-1-0-7,oracle.jdbc.oci;version=1.0.0.0_11-1-0-7,oracle.jdbc.oracore;v
ersion=1.0.0.0_11-1-0-7,oracle.jdbc.pool;version=1.0.0.0_11-1-0-7,ora
cle.jdbc.rowset;version=1.0.0.0_11-1-0-7,oracle.jdbc.util;version=1.0
.0.0_11-1-0-7,oracle.jdbc.xa;version=1.0.0.0_11-1-0-7,oracle.jdbc.xa.
client;version=1.0.0.0_11-1-0-7,oracle.jpub.runtime;version=1.0.0.0_1
1-1-0-7,oracle.net.ano;version=1.0.0.0_11-1-0-7,oracle.net.aso;versio
n=1.0.0.0_11-1-0-7,oracle.net.jndi;version=1.0.0.0_11-1-0-7,oracle.ne
t.ns;version=1.0.0.0_11-1-0-7,oracle.net.nt;version=1.0.0.0_11-1-0-7,
oracle.net.resolver;version=1.0.0.0_11-1-0-7,oracle.security.o3logon;
version=1.0.0.0_11-1-0-7,oracle.security.o5logon;version=1.0.0.0_11-1
-0-7,oracle.sql;version=1.0.0.0_11-1-0-7,oracle.sql.converter;version
=1.0.0.0_11-1-0-7
例13-10で示すように、マニフェスト・エディタにBundle-Activator
要素を追加します。
Bundle-Activator
の値は、Activator
クラスの完全修飾クラス名です。
例13-10 マニフェスト・エディタへのBundle-Activator要素の追加
Manifest-Version: 1.0
Bundle-Activator: com.foo.MyActivator
Bundle-ManifestVersion: 2
Bundle-Name: %project.name
Bundle-SymbolicName: JDBCDriver
Bundle-Version: 1.0.0
Bundle-Localization: bundle
Bundle-Vendor: %project.vendor
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Bundle-ClassPath: .
Import-Package: com.bea.wlevs.configuration;version="11.1.1.4_0", ...
Export-Package: oracle.core.lmx;version=1.0.0.0_11-1-0-7, ...
...
例13-11で示すように、マニフェスト・エディタにDynamicImport-Package
要素を追加します。
例13-11 マニフェスト・エディタへのDynamicImport-Package要素の追加
Manifest-Version: 1.0
Bundle-Activator: com.foo.MyActivator
Bundle-ManifestVersion: 2
Bundle-Name: %project.name
Bundle-SymbolicName: JDBCDriver
Bundle-Version: 1.0.0
Bundle-Localization: bundle
Bundle-Vendor: %project.vendor
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Bundle-ClassPath: .
DynamicImport-Package: *
Import-Package: com.bea.wlevs.configuration;version="11.1.1.4_0", ...
Export-Package: oracle.core.lmx;version=1.0.0.0_11-1-0-7, ...
...
Oracle CEPアプリケーションをJARファイルにエクスポートします。
詳細は、『Oracle Complex Event Processing開発者ガイドfor Eclipse』のOracle CEPプロジェクトをエクスポートする方法に関する項を参照してください。
Oracle CEPアプリケーションは、ドライバを含むアプリケーション・ライブラリであるため、エクスポートされたJARをOracle CEPサーバー・ライブラリ拡張ディレクトリにコピーします。
Oracle CEPサーバー・ライブラリ拡張ディレクトリは、DOMAIN_DIR
/
servername
/modules/ext
ディレクトリです。DOMAIN_DIR
は、/oracle_cep/user_projects/domains/mydomain
などのドメイン・ディレクトリであり、servername
は、myserver
などのサーバー・インスタンスです。例:
c:\oracle_cep\user_projects\domains\mydomain\myserver\modules\ext
Oracle CEPサーバーのconfig.xml
ファイルで、使用するドライバ・バージョンに対するカスタムdata-source
要素を作成し、driver-params
子要素を追加します(例13-12を参照してください)。詳細は、1.3.1項「Oracle CEPサーバー構成ファイル」を参照してください。
例13-12 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>oracle11g</value> </element> <element> <name>com.bea.core.datasource.serviceVersion</name> <value>11.2.0</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>
表13-5では、関連プロパティを説明します。
表13-5 driver-params子要素プロパティ
プロパティ | 説明 |
---|---|
|
|
|
|
|
OSGIサービス登録のインタフェース名を指定します。 |
詳細は、13.2.2項「カスタム・データ・ソースの構成」を参照してください。
Oracle CEPサーバーを停止および開始します。
詳細は、1.5.4項「Oracle CEPサーバーの起動と停止」を参照してください。
必要に応じて、Oracle CEPで独自のJDBCドライバにアクセスするためにbootclasspathを使用することができます。
13.5.1項「bundler.shによってビルドされたアプリケーション・ライブラリを使用したデータベース・ドライバにアクセスする方法」または13.5.2項「Oracle CEP IDE for Eclipseによってビルドされたアプリケーション・ライブラリを使用したデータベース・ドライバにアクセスする方法」で説明されているように、かわりにアプリケーション・ライブラリを使用することをお薦めします。
bootclasspathを使用してデータベース・ドライバにアクセスするには:
Oracle CEP起動時に適切なJDBCドライバのJARファイルが検索されるように、ドメイン・ディレクトリのサーバー・ディレクトリにあるサーバー起動スクリプトを更新します。
サーバー起動スクリプトの名前はstartwlevs.cmd
(Windows)またはstartwlevs.sh
(UNIX)で、スクリプトは使用するドメイン・ディレクトリのサーバー・ディレクトリにあります。即時利用可能サンプル・ドメインはORACLE_CEP_HOME
/ocep_11.1/samples/domains
にあります。ユーザー・ドメインはORACLE_CEP_HOME
/user_projects/domains
にあります。ORACLE_CEP_HOME
は、d:\oracle_cep
などのOracle CEPインストール・ディレクトリです。
wlevs_3.0.jar
ファイルを実行するJavaコマンドに-Xbootclasspath/a
オプションを追加して、起動スクリプトを更新します。使用するJDBCドライバのフルパス名を-Xbootclasspath/a
オプションに設定します。
たとえば、Windows Oracle Thinドライバを使用する場合は、次のとおりに起動スクリプトのjava
コマンドを更新します。更新されたセクションは、太字で示します(読みやすくするために区切ってありますが、実際にはコマンドは1行にする必要があります)。
%JAVA_HOME%\bin\java -Dwlevs.home=%USER_INSTALL_DIR% -Dbea.home=%BEA_HOME%
-Xbootclasspath/a:%USER_INSTALL_DIR%\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
この例では、%USER_INSTALL_DIR%
はORACLE_CEP_HOME
\ocep_11.1
を示しています。
サーバーのconfig.xml
ファイルでデータソースを構成します。
構成ウィザードを使用してOracle CEPサーバーconfig.xml
ファイルを更新する場合、『Oracle Complex Event Processing管理者ガイド』のOracle CEPスタンドアロンサーバー・ドメインの作成と更新に関する項を参照してください。
Oracle CEPサーバーconfig.xml
ファイルを手動で更新する場合、13.2.2項「カスタムのデータソースの構成」を参照してください。
Oracle CEPが実行中の場合は、新規のjava
オプションとデータソース情報を読み込むために再起動します。
詳細は、1.5.4項「Oracle CEPサーバーの起動と停止」を参照してください。