この章は、Oracle Event Processingで使用するJava Database Connectivity (JDBC)の構成方法を、データ・ソースの構成に関する情報と、OracleおよびType 4データ・ダイレクトJDBCドライバの使用に関する情報を含めて説明します。
この章の内容は次のとおりです。
Oracle Event Processingでは、リレーショナル・データベースへのアクセスのために(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 Event Processingでは、次の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 Event Processingでは、JDBCドライバDataSource
オブジェクトをカプセル化し、あらかじめ決められた接続のプールを管理するDataSource
分離も提供されます。Oracle WebLogic Server WLConnectionインタフェースでは、Oracleデータ・ソースへのアクセスおよび操作に役立つ方法が提供されます。詳細は、13.2項「Oracle Event Processingデータ・ソースの説明」を参照してください。
Oracle Event Processingには、次の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 Event Processingでは、SQL ServerデータベースへのJDBCアクセスのパフォーマンスを高めるDataDirectのType 4 JDBCドライバが提供されます。タイプ4 JDBCドライバはJava環境にあわせて最適化されているので、Javaテクノロジを組み込んだり、既存システムの機能およびパフォーマンスを拡張したりできます。
DataDirectのOracle Event Processing Type 4 JDBCドライバは、次のような特長を持つ実績のあるドライバです。
パフォーマンス指向のエンタープライズ向け機能をサポート(分散トランザクション、SavePoint、複数のオープン結果セット、パラメータ・メタデータなど)。
Java EE Compatibility Test Suite (CTS)で認定済。業界最大のJDBCテスト・スイートにより検証済です。
JDBCアプリケーションのテストおよびデバッグ用ツールを装備。
詳細は、次を参照してください:
Oracle Event Processingサーバーでは、使用する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 Event Processing DataSource
は、Java Database Connectivity (JDBC 3.0)仕様をサポートするJDBCデータ・ソース接続プールの実装を提供します。アプリケーションでは、標準APIのDataSource.getConnection
とConnection.close
を使用して、データ・ソースにあるConnection
オブジェクトの予約と解放を行います。
図13-1は、データ・ソース、接続プールおよびConnection
インスタンス間の関係を示します。
リレーショナル・データベースにアクセスする場合は、Oracle Event Processingサーバーのデフォルトのデータ・ソースを使用するか、サーバーのconfig.xml
ファイルで独自のOracle Event Processing DataSource
を構成する必要があります。
Oracle CQLプロセッサのルール
の場合
『Oracle Fusion Middleware Oracle Event Processing開発者ガイド for Eclipse』のOracle CQLプロセッサの表ソースの構成に関する項を参照してください。
EPLプロセッサのルール
の場合。
『Oracle Fusion Middleware Oracle Event Processing開発者ガイド for Eclipse』のEPLプロセッサの構成に関する項を参照してください。
イベントの記録と再生
『Oracle Fusion Middleware Oracle Event Processing開発者ガイド for Eclipse』の永続イベント・ストアへのイベントの保存に関する項を参照してください。
キャッシュ・ローダーまたはストアの場合
『Oracle Fusion Middleware Oracle Event Processing開発者ガイド for Eclipse』のキャッシュと別のデータ・ソース間のデータの交換に関する項を参照してください。
DriverManager
などのJDBCドライバのAPIをアプリケーション・コードで直接使用する場合、サーバーのconfig.xml
ファイルにDataSource
を構成する必要はありません。
詳細は、次を参照してください:
デフォルトでは、Oracle Event Processingサーバーがローカルのトランザクション・マネージャを作成します。12.2.2項「rmi構成オブジェクト」の説明のように、トランザクション・マネージャは構成された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
ファイルでの再試行の間隔を変更することができます。この要素の値をゼロに設定すると、接続の再試行が無効になります。
詳細は、13.2.2項「カスタム・データ・ソースの構成」を参照してください。
Oracle Event Processingサーバーのconfig.xml
ファイルでは、実行時に作成されるデータ・ソースごとに、外部JDBCモジュール記述子を参照する構成要素が必要です。
この項では、カスタム・データ・ソースを構成する方法を説明します。デフォルト・データ・ソースの構成の詳細は、13.2.1項「デフォルト・データ・ソースの構成」を参照してください。
構成ウィザードを使用してOracle Event Processingドメインを作成する場合は、必要に応じて、DataDirectの2つのJDBCドライバのいずれかを使用するJDBCデータ・ソースを構成できます(この構成を行った場合は自動的にconfig.xml
ファイルが更新されます)。接続先データベース、接続ユーザー名とパスワードなどの基本情報を指定してデータ・ソースを構成します。構成ウィザードを使用してドメインの既存のサーバーを更新し、新しいデータ・ソースを追加することもできます。
詳細は、次を参照してください:
5.1項「Oracle Coherenceを使用したOracle Event Processingマルチサーバー・ドメインの作成」
7.1項「Oracle Event Processingネイティブ・クラスタリングを使用したOracle Event Processingマルチサーバー・ドメインの作成」
また、例13-1で示すように、data-source
要素を追加してconfig.xml
ファイルを手動で更新することもできます。
例13-1 Oracle Event Processingサーバー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
要素を使用して構成できます。例13-1を参照してください。一方、トランザクション・マネージャは、構成されたRMIオブジェクトに依存します。12.2.2項「rmi構成オブジェクト」を参照してください。
Oracle Event Processingサーバーの起動時にデータベースが使用できない場合、デフォルトで、Oracle Event Processingサーバー・データ・ソースは接続が作成できるまで10秒ごとに再試行します。この結果、Oracle Event Processingサーバーは、データベースが使用できない場合も、正常に起動されます。例13-1に、connection-pool-params
要素のconnection-creation-retry-frequency-seconds
子要素を使用して、Oracle Event Processingサーバーのconfig.xml
ファイルでの再試行の間隔を変更する方法を示します。この要素の値をゼロに設定すると、接続の再試行が無効になります。
data-source
要素の子要素の詳細なリスト(特に、connection-pool-params
およびdata-source-params
要素)は、『Oracle Fusion Middleware Oracle 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 Event Processingで自動的にインストールされて使用可能です。詳細は、13.1.1項「Oracle JDBCドライバ」を参照してください。
Oracle JDBCドライバを使用してデータベースへのアクセスを構成するには:
サーバーのconfig.xml
ファイルでデータ・ソースを構成します。
Oracle Event Processingサーバーのconfig.xml
ファイルを構成ウィザードを使用して更新する場合、3.1項「Oracle Event Processingスタンドアロン・サーバー・ドメインの作成」を参照してください。
Oracle Event Processingサーバーのconfig.xml
ファイルを手動で更新する場合、13.2.2項「カスタム・データ・ソースの構成」を参照してください。
注意: Oracle JDBCドライバの <url>jdbc:oracle:thin:@ |
Oracle Event Processingが実行中の場合は、新しいデータ・ソース情報を読み込むために再起動します。
詳細は、1.5.4項「Oracle Event Processingサーバーの起動と停止」を参照してください。
SQL Server用のDataDirectのType 4 JDBCドライバはOracle Event Processingで自動的にインストールされて使用可能です。詳細は、13.1.2項「DataDirectのSQL Server用のType 4 JDBCドライバ」を参照してください。
Data Directのタイプ4 JDBCドライバを使用したデータベースへのアクセスを構成するには:
サーバーのconfig.xml
ファイルでデータ・ソースを構成します。
Oracle Event Processingサーバーのconfig.xml
ファイルを構成ウィザードを使用して更新する場合、3.1項「Oracle Event Processingスタンドアロン・サーバー・ドメインの作成」を参照してください。
Oracle Event Processingサーバーのconfig.xml
ファイルを手動で更新する場合、13.2.2項「カスタム・データ・ソースの構成」を参照してください。
注意: DataDirectのタイプ4 JDBCドライバの <url>jdbc:weblogic:sqlserver:// |
Oracle Event Processingが実行中の場合は、新しいデータ・ソース情報を読み込むために再起動します。
詳細は、1.5.4項「Oracle Event Processingサーバーの起動と停止」を参照してください。
必要に応じて、Oracle Event Processingにバンドルされているバージョン以外のOracleデータベース・ドライバまたはデータ・ダイレクト・ドライバのバージョン、またはOracleデータベース・ドライバまたはデータ・ダイレクト・ドライバ以外のデータベース・ドライバを使用する必要がある場合があります。
ここでは、次の項目について説明します。
13.5.1項「bundler.shを使用して構築されるアプリケーション・ライブラリを使用したデータベース・ドライバへのアクセス方法」: この方法をお薦めします。データベース・ドライバに対してOSGiバンドルを作成する必要があります。
13.5.2項「Oracle Event Processing IDE for Eclipseで構築されるアプリケーション・ライブラリを使用したデータベース・ドライバへのアクセス方法」: この方法をお薦めします。データベース・ドライバに対してOSGiバンドルを作成する必要があります。
アクティベータの実装を手動で構成する場合は、このオプションを使用します。
13.5.3項「bootclasspathを使用したデータベース・ドライバへのアクセス方法」: これは、オプションの方法です。データベース・ドライバに対してOSGiバンドルを作成する必要はありません。
この手順は、bundlerユーティリティを使用してドライバに対するOSGiバンドルを作成してOracle Event Processingサーバー上にデプロイする方法です。
これはお薦めの方法です。アクティベータの実装を手動で構成する場合は、13.5.2項「Oracle Event Processing IDE for Eclipseで構築されるアプリケーション・ライブラリを使用したデータベース・ドライバへのアクセス方法」を参照してください。
詳細は、『Oracle Fusion Middleware Oracle Event Processing開発者ガイド for Eclipse』のアプリケーション・ライブラリの作成に関する項を参照してください。
bundler.shを使用して構築されるアプリケーション・ライブラリを使用してデータベース・ドライバにアクセスするには:
環境を設定します。『Oracle Fusion Middleware Oracle Event Processing開発者ガイド for Eclipse』の開発環境の設定に関する項を参照してください。
bundler.sh
スクリプトを実行して、ドライバを含むOSGiバンドルを作成します。
bundler.sh
スクリプトは、ORACLE_CEP_HOME
/ocep_11.1/bin
ディレクトリにあります。ORACLE_CEP_HOME
は、Oracle Event Processingサーバーのインストール先のディレクトリです。
例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 Event Processingサーバー・ログ・メッセージです。
例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 Event Processingサーバー・ライブラリ拡張ディレクトリに、バンドルJARをコピーします。
Oracle Event Processingアプリケーションは、ドライバを含むアプリケーション・ライブラリであるため、DOMAIN_DIR
/
servername
/modules/ext
ディレクトリというOracle Event Processingサーバー・ライブラリ拡張ディレクトリにコピーします。DOMAIN_DIR
は、/oracle_cep/user_projects/domains/mydomain
などのドメイン・ディレクトリであり、servername
は、myserver
などのサーバー・インスタンスです。例:
c:\oracle_cep\user_projects\domains\mydomain\myserver\modules\ext
詳細は、『Oracle Fusion Middleware Oracle Event Processing開発者ガイド for Eclipse』のライブラリ拡張ディレクトリに関する項を参照してください。
Oracle Event Processingサーバーのconfig.xml
ファイルで、使用するドライバ・バージョンに対するカスタムdata-source
要素を作成し、driver-params
子要素を追加します(例13-6を参照してください)。詳細は、1.3.1項「Oracle Event Processingサーバー構成ファイル」を参照してください。
例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 Event Processingサーバーを停止および開始します。
詳細は、1.5.4項「Oracle Event Processingサーバーの起動と停止」を参照してください。
この手順は、Oracle Event Processing IDE for Eclipseを使用してドライバに対するOSGiバンドルを作成してOracle Event Processingサーバー上にデプロイする方法です。
これはお薦めの方法です。アクティベータの実装を手動で構成する場合は、13.5.1項「bundler.shによってビルドされたアプリケーション・ライブラリを使用したデータベース・ドライバにアクセスする方法」を参照してください。
詳細は、『Oracle Fusion Middleware Oracle Event Processing開発者ガイド for Eclipse』のアプリケーション・ライブラリの作成に関する項を参照してください。
Oracle Event Processing IDE for Eclipseで構築されるアプリケーション・ライブラリを使用してデータベース・ドライバにアクセスするには:
Oracle Event Processing IDE for Eclipseを使用して、新しいOracle Event Processingプロジェクトを作成します。
詳細は、『Oracle Fusion Middleware Oracle Event Processing開発者ガイド for Eclipse』のOracle Event Processingプロジェクトの作成に関する項を参照してください。
プロジェクト・フォルダを右クリックして、「新規」>「フォルダ」を選択します。
「フォルダ名」フィールドにlib
と入力し、「終了」をクリックします。
Oracle Event Processing IDE for Eclipseの外で、JDBC JARファイルをlib
フォルダにコピーします。
Oracle Event Processing IDE for Eclipse内で、lib
フォルダを右クリックして、「リフレッシュ」を選択します。
図13-2に表示されているように、JARファイルがlib
フォルダに表示されます。
図13-2 Oracle Event Processing IDE for Eclipseの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 Event ProcessingアプリケーションをJARファイルにエクスポートします。
詳細は、『Oracle Fusion Middleware Oracle Event Processing開発者ガイド for Eclipse』のOracle Event Processingプロジェクトのエクスポート方法に関する項を参照してください。
Oracle Event Processingアプリケーションは、ドライバを含むアプリケーション・ライブラリであるため、エクスポートされたJARをOracle Event Processingサーバー・ライブラリ拡張ディレクトリにコピーします。
Oracle Event Processingサーバー・ライブラリ拡張ディレクトリは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 Event Processingサーバーのconfig.xml
ファイルで、使用するドライバ・バージョンに対するカスタムdata-source
要素を作成し、driver-params
子要素を追加します(例13-12を参照してください)。詳細は、1.3.1項「Oracle Event Processingサーバー構成ファイル」を参照してください。
例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 Event Processingサーバーを停止および開始します。
詳細は、1.5.4項「Oracle Event Processingサーバーの起動と停止」を参照してください。
必要に応じて、Oracle Event Processingで独自のJDBCドライバにアクセスするためにbootclasspathを使用することができます。
13.5.1項「bundler.shを使用して構築されるアプリケーション・ライブラリを使用したデータベース・ドライバへのアクセス方法」または13.5.2項「Oracle Event Processing IDE for Eclipseで構築されるアプリケーション・ライブラリを使用したデータベース・ドライバへのアクセス方法」で説明されているように、かわりにアプリケーション・ライブラリを使用することをお薦めします。
bootclasspathを使用してデータベース・ドライバにアクセスするには:
Oracle Event Processing起動時に適切な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 Event Processingインストール・ディレクトリです。
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 Event Processingサーバーのconfig.xml
ファイルを構成ウィザードを使用して更新する場合、3.1項「Oracle Event Processingスタンドアロン・サーバー・ドメインの作成」を参照してください。
Oracle Event Processingサーバーのconfig.xml
ファイルを手動で更新する場合、13.2.2項「カスタム・データ・ソースの構成」を参照してください。
Oracle Event Processingが実行中の場合は、新規のjava
オプションとデータ・ソース情報を読み込むために再起動します。
詳細は、1.5.4項「Oracle Event Processingサーバーの起動と停止」を参照してください。