この節では、次の項目について説明します。
アプリケーション・アセンブリという用語は、JavaファイルやXML構成ファイルなどのアプリケーションのコンポーネントをOracle CEPにデプロイ可能なOSGIバンドルにパッケージ化するプロセスを表します。アプリケーションのデプロイメントという用語は、Oracle CEPドメインでクライアント・リクエストを処理するためにアプリケーションを利用できるようにする処理を表します。
この項では次について説明します:
注意: Oracle CEPアプリケーションはSpring FrameworkおよびOSGi Service Platformの上に構築され、それらの技術およびサービスを広範囲にわたり使用します。SpringおよびOSGiに関するリファレンスおよび概念情報へのリンクは、付録A「SpringおよびOSGiに関する追加情報」を参照してください。 |
Oracle CEPアセンブリおよびデプロイメントのコンテキスト内で、アプリケーションは次のアーティファクトを含むOSGiバンドル(http://www2.osgi.org/javadoc/r4/org/osgi/framework/Bundle.html
を参照)JARファイルとして定義されます。
アダプタ、アダプタ・ファクトリ、ビジネス・ロジックを格納したPOJOなど、アプリケーションのいくつかのコンポーネントを実装するコンパイル済みJavaクラス・ファイル。
アプリケーションのコンポーネントを構成する1つまたは複数のOracle CEP構成XMLファイル。複合イベント・プロセッサは構成ファイルを必要とする唯一のタイプのコンポーネントです。他のすべてのコンポーネント(アダプタおよびストリーム)では、コンポーネントのデフォルトの構成が十分に機能的である場合、構成ファイルは必要ありません。すべての構成ファイルを1つのファイルにまとめたり、または個々のコンポーネントの構成を固有のファイルに分割したりできます。
バンドルを動的にデプロイする場合は、構成ファイルはOSGiバンドルJARファイルの{META-INF/wlevs
ディレクトリに格納されている必要があります。アプリケーションがすでにドメイン・ディレクトリ内に存在する場合、構成ファイルは同じディレクトリに抽出する必要があります。
アプリケーションのすべてのコンポーネントと、各コンポーネントが相互にどのように接続されているかを記述したEPNアセンブリ・ファイル。
EPNアセンブリ・ファイルは、OSGiバンドルJARファイルのMETA-INF/spring
ディレクトリにある必要があります。
JARファイルのコンテンツを記述するMANIFEST.MF
ファイル。
OSGIバンドルは、インポートされたパッケージまたは必須のパッケージを指定することで依存関係を宣言します。また、パッケージをエクスポートすることで他のバンドルに機能を提供します。バンドルが他のバンドルに機能を提供する必要がある場合は、Export-Package
を使用して、指定されたパッケージを他のバンドルで参照できるようにする必要があります。エクスポートされないすべてのバンドルはバンドルの外部で使用できません。
設計時に依存関係を定義します。
この項では次について説明します:
詳細は、次を参照してください:
一部の依存関係は、アプリケーションにバンドルされ、アプリケーションとデプロイされるコンポーネントで満たされます。たとえば、標準JARファイルまたはプロパティ・ファイルなどです。
詳細は、次を参照してください:
一部の依存関係は、Oracle CEPサーバー・アプリケーション・ライブラリのディレクトリにデプロイされたコンポーネントで満たされます。これらのコンポーネントは、特定のアプリケーションにバンドル、およびアプリケーションとデプロイされるのではなく、アプリケーション・ライブラリからエクスポートされるパッケージをインポートするすべてのアプリケーションにアクセスできます。
詳細は、次を参照してください:
場合によっては、パッケージをアプリケーション・ライブラリとして選択できないネイティブ・コード・ライブラリに依存するアプリケーション・ライブラリを作成する必要があります。
その場合、Oracle CEPサーバーの起動時にネイティブ・コード・ライブラリをオペレーティング・システム・パス(bootclasspath
)に置き、ネイティブ・コード・ライブラリが、このネイティブ・コードを呼び出す必要のあるライブラリ・バンドルによってロードされるようにします。
詳細は、次を参照してください:
『Oracle Complex Event Processing管理者ガイド』のOracle CEPサーバー・ブート・クラスパスの構成に関する項
Oracle CEPアプリケーション・ライブラリを使用して、共有ライブラリを便利な場所にデプロイし、Oracle CEPサーバーの起動時にデプロイされる共有ライブラリの順序を完全に制御することができます。
アプリケーション・ライブラリは、コンパイル済のJavaクラスおよびその他の必須アーティファクトのJavaアーカイブを含むOSGiバンドルです。
アプリケーション・ライブラリは、ドライバまたは外部ステージ(他のダウンストリーム・アプリケーションで役に立つ一部または完全なOracle CEPアプリケーション)などの様々な目的で使用することができます。
プロジェクトに簡単な組込みJARファイルとしてライブラリを追加することができますが、アプリケーション・ライブラリを使用するには、次のいくつかの利点があります。
ライブラリの更新バージョンをデプロイするなど、アプリケーション・アセンブリとメンテナンス活動を簡単化します。
再利用を促進します。
サーバー・ディスク領域使用量を削減します。
次のOracle CEPサーバー・ディレクトリのいずれかにアプリケーション・ライブラリをデプロイします。
詳細は、次を参照してください:
デフォルトでは、Oracle CEPサーバー・ライブラリ・ディレクトリは次のとおりです。
DOMAIN_DIR
/servername
/modules
説明:
DOMAIN_DIR
: /oracle_cep/user_projects/domains/mydomain
などのドメイン・ディレクトリ
servername
: myserver
などのサーバー・インスタンス
例:
/oracle_cep/user_projects/domains/mydomain/myserver/modules
このディレクトリ内のライブラリは、ライブラリ拡張ディレクトリの後、Oracle CEPアプリケーションの前にデプロイされます。
ライブラリがドライバ(JDBCドライバなど)である場合、24.1.3.2項「ライブラリ拡張ディレクトリ」に従って、ライブラリ拡張ディレクトリに格納する必要があります。
アプリケーション・ライブラリ・ディレクトリ・パスのルートを構成するには、24.3.1項「Oracle CEP IDE for Eclipseを使用したアプリケーション・ライブラリのディレクトリの定義方法」を参照してください。
デフォルトでは、Oracle CEPサーバー・ライブラリ拡張ディレクトリは次のとおりです。
DOMAIN_DIR
/servername
/modules/ext
説明:
DOMAIN_DIR
: /oracle_cep/user_projects/domains/mydomain
などのドメイン・ディレクトリ
servername
: myserver
などのサーバー・インスタンス
例:
/oracle_cep/user_projects/domains/mydomain/myserver/modules/ext
このディレクトリ内のライブラリが最初にOracle CEPサーバー・モジュールとともにデプロイされます。
ライブラリがドライバ(JDBCドライバなど)である場合、正しい順序でアクティブ化されるようにライブラリ拡張ディレクトリに格納する必要があります。たとえば、以前のバージョンを新しいバージョンでオーバーライドしたり、または代替ドライバへのアクセスを提供するために必要です。詳細は、『Oracle Complex Event Processing管理者ガイド』の異なるデータベース・ドライバまたはドライバ・バージョンへのアクセスの構成方法に関する項を参照してください。
ライブラリがドライバではない場合、24.1.3.1項「ライブラリ・ディレクトリ」に従って、ライブラリ・ディレクトリに格納することができます。
アプリケーション・ライブラリ拡張ディレクトリ・パスのルートを構成するには、24.3.1項「Oracle CEP IDE for Eclipseを使用したアプリケーション・ライブラリのディレクトリの定義方法」を参照してください。
Oracle CEPでは、OSGiバンドル・ラッパーを任意のJavaアーカイブについて作成する場合に使用するbundler.sh
ユーティリティを提供しています。作成されたバンドルJARは、OSGiコンテナにデプロイされる場合があります。このコンテナでは、バンドル内にあるJavaパッケージ/クラスが他のデプロイ済バンドルにインポートされ、利用されます。使用例としては、サードパーティのJDBCドライバのパッケージなどがあります。
ユーティリティでは、指定のソースJARファイルが読み取られ、ソースJARの内容と、適切なバンドル関連エントリが指定されているマニフェストを含むターゲットJARファイルが作成されます。ソース・アーカイブで検出されたすべてのJavaパッケージは、ターゲット・バンドルによりエクスポートされます。
オプションで、JAR内の1つ以上のクラスをインスタンス化し、各オブジェクトをOSGiサービスとして登録するバンドル・ アクティベータを生成することができます。この機能では、コンポーネント・バンドルで実行時に特定のファクトリ・クラスの複数バージョンにアクセスし、これを操作することができます。
手動でアクティベータ実装を構成する場合は、Oracle CEP IDE for Eclipseを使用することができます。
詳細は、次を参照してください:
『Oracle Complex Event Processing管理者ガイド』のbundler.shで構築されるアプリケーション・ライブラリを使用したデータベース・ドライバへのアクセス方法に関する項
アプリケーションをアセンブルした後、適切なデプロイメント・ツールを使用してOracle CEP domainに認識されるようにしてアプリケーションをデプロイします。手順の詳細は、24.5項「Oracle CEPアプリケーションのデプロイ」を参照してください。
Oracle CEPサーバーは、Oracle CEPサーバー起動時に次の順序でコンポーネントをデプロイします。
ライブラリをライブラリ拡張ディレクトリにデプロイします(DOMAIN_DIR
/
servername
/modules/ext
ディレクトリ)。
ライブラリをライブラリ・ディレクトリにデプロイします(DOMAIN_DIR
/
servername
/modules
ディレクトリ)。
Oracle CEPアプリケーションをデプロイします。
Oracle CEPサーバーは、ライブラリ名の字句順序に基づいて、ライブラリ拡張ディレクトリとライブラリ・ディレクトリの両方からライブラリをデプロイします。字句順序には、相対ディレクトリ名に加えてJARファイル名も含まれます。
例:
modules/a.jar
がmodules/b.jar
の前に開始されます。
字句順序で0/my.jar
はmy.jar
の前になるため、modules/0/my.jar
はmodule/my.jar
の前に開始されます。
このルールに従って、単にライブラリ拡張ディレクトリまたはライブラリ・ディレクトリのいずれかの適切に名付けられたサブディレクトリにJARファイルを整理することで、Oracle CEPサーバーがJARファイルをデプロイする順序を制御することができます。
アプリケーションがOracle CEPにデプロイされると、構成されたアダプタでは金融データ・フィードなどの構成されたイベントに対するリスニングがただちに開始されます。
詳細は、24.1.3項「アプリケーション・ライブラリ」を参照してください。
アプリケーションをOracle CEPサーバーにデプロイする場合、CEPサーバーはアプリケーションの構成履歴を作成します。ルールまたはOracle CEP高可用性アダプタの構成を変更すると、この履歴に記録されます。Oracle CEP Visualizerまたはwlevs.Admin
ツールを使用して、これらの変更を表示し、ロールバックする(変更を元に戻す)ことができます。
詳細は、次を参照してください:
『Oracle Complex Event Processing Visualizerユーザーズ・ガイド』の構成履歴の管理に関する項
『Oracle Complex Event Processing管理者ガイド』の構成履歴の管理コマンドに関する項
Oracle CEPアプリケーションのアセンブルとは、http://www2.osgi.org/javadoc/r4/org/osgi/framework/Bundle.html
で説明されているように、アプリケーションを構成するアーティファクトをOSGiバンドルJARファイルにバンドリングすることを意味します。アーティファクトには、次のものが含まれます。
コンパイル済のJavaクラス
アプリケーション・コンポーネント(プロセッサやアダプタなど)を構成するOracle CEPコンポーネント構成ファイル。
EPNアセンブリ・ファイル
MANIFEST.MF
ファイル
SpringおよびOSGiに関するリファレンスおよび概念情報へのリンクは、付録A「SpringおよびOSGiに関する追加情報」を参照してください。
この項では次について説明します:
Oracle CEP IDE for Eclipseを使用して、Oracle CEPアプリケーションを簡単にアセンブリできます。
詳細は、次を参照してください:
アプリケーションが外部ステージに依存している場合は、24.2.3項「外部ステージによるアプリケーションのアセンブル」を参照してください。
オプションで、Oracle CEPアプリケーションを手動でアセンブルできます。
簡略化のために、次の手順では必要なアーティファクトを含む一時ディレクトリを作成し、その後でこの一時ディレクトリのコンテンツをjarファイルに構築します。これは単に推奨される方法であり、この方法でアプリケーションをアセンブルすることは必須ではありません。
注意: 次に記述したステップの多くを実行できるbuild.xml Antファイルについては、HelloWorldサンプル・ソース・ディレクトリを参照してください。build.xml ファイルは、ORACLE_CEP_HOME \ocep_11.1\samples\source\applications\helloworld にあり、ORACLE_CEP_HOME はd:\oracle_cep など、主なOracle CEPインストール・ディレクトリを示します。 |
Oracle CEPアプリケーションを手動でアセンブルするには:
コマンド・ウィンドウを開き、『Oracle Complex Event Processingスタート・ガイド』の開発環境の設定に関する項の説明に従って、環境を設定します。
output
などの空のディレクトリを作成します。
prompt> mkdir output
すべてのアプリケーションJavaファイルをoutput
ディレクトリにコンパイルします。
output/META-INF/spring
ディレクトリを作成します。
アプリケーションのコンポーネントと各コンポーネントの接続が記述されたEPNアセンブリ・ファイルをoutput/META-INF/spring
ディレクトリにコピーします。
このファイルの詳細は、4.3項「EPNアセンブリ・ファイルの作成」を参照してください。
output/META-INF/wlevs
ディレクトリを作成します。
アプリケーションのコンポーネント(プロセッサやアダプタなど)を構成するXMLファイルをoutput/META-INF/wlevs
ディレクトリにコピーします。
1.1項「Oracle CEPプログラミング・モデルの概要」の説明に従って、アプリケーションの作成中にこれらのXMLファイルを作成します。
バンドルに関する説明情報を含むMANIFEST.MF
ファイルを作成します。
24.2.2.1項「MANIFEST.MFファイルの作成」を参照してください。
Oracle CEPアプリケーションからサードパーティJARファイルにアクセスする必要がある場合は、24.2.2.2項「サードパーティJARファイルへのアクセス」を参照してください。
output
ディレクトリのコンテンツを含むJARファイルを作成します。
デフォルト・マニフェスト・ファイルではなく、必ず前のステップで作成したMANIFEST.MF
ファイルを指定します。
JARファイルには任意の名前を付けることができます。Oracle CEPのサンプルでは、Javaパッケージの名前とバージョンを組み合わせた次のようなJARファイル名を使用します。
com.bea.wlevs.example.helloworld_1.0.0.0.jar
サーバーにデプロイされているバンドルを明確にするため、同じようなネーミング・ルールを使用することを検討してください。
jar
タスクの使用方法の詳細は、http://ant.apache.org/manual/CoreTasks/jar.html
のApache Antドキュメントを参照し、jar
コマンド・ライン・ツールの使用方法の詳細は、http://java.sun.com/javase/6/docs/technotes/tools/windows/jar.html
のJava SEドキュメントを参照をしてください。
アプリケーションが外部ステージに依存している場合は、24.2.3項「外部ステージによるアプリケーションのアセンブル」を参照してください。
MANIFEST.MF
ファイルの構造およびコンテンツはOSGi Frameworkによって指定されます。ファイル内の多くのヘッダーの値はアプリケーションまたはビジネスに固有ですが、多くのヘッダーはOracle CEPで必須です。
特に、MANIFEST.MF
ファイルでは次のものが定義されます。
アプリケーション名: Bundle-Name
ヘッダーで指定されます。
シンボリック・アプリケーション名: Bundle-SymbolicName
ヘッダーで指定されます。
wlevs.Admin
ユーティリティやJMXサブシステムなど、多くのOracle CEPツールは、アプリケーションを参照する場合にバンドルのシンボリック名を使用します。
アプリケーションのバージョン: Bundle-Version
ヘッダーで指定されます。
インポートされたパッケージ: Import-Package
ヘッダーで指定されます。
Oracle CEPでは、少なくとも次のパッケージをインポートする必要があります。
Import-Package: com.bea.wlevs.adapter.defaultprovider;version="11.1.1.4_0", com.bea.wlevs.ede;version="11.1.1.4_0", com.bea.wlevs.ede.api;version="11.1.1.4_0", com.bea.wlevs.ede.impl;version="11.1.1.4_0", org.osgi.framework;version="1.3.0", org.springframework.beans.factory;version="2.5.6", org.apache.commons.logging;version="1.1.0", com.bea.wlevs.spring;version="11.1.1.4_0", com.bea.wlevs.util;version="11.1.1.4_0", org.springframework.beans;version="2.5.6", org.springframework.util;version="2.0", org.springframework.core.annotation;version="2.5.6", org.springframework.beans.factory;version="2.5.6", org.springframework.beans.factory.config;version="2.5.6", org.springframework.osgi.context;version="1.2.0", org.springframework.osgi.service;version="1.2.0"
アダプタの構成を拡張した場合は、次のパッケージもインポートする必要があります。
javax.xml.bind;version="2.0", javax.xml.bind.annotation;version=2.0, javax.xml.bind.annotation.adapters;version=2.0, javax.xml.bind.attachment;version=2.0, javax.xml.bind.helpers;version=2.0, javax.xml.bind.util;version=2.0, com.bea.wlevs.configuration;version="11.1.1.4_0", com.bea.wlevs.configuration.application;version="11.1.1.4_0", com.sun.xml.bind.v2;version="2.0.2"
エクスポートされたパッケージ: Export-Package
ヘッダーで指定されます。このヘッダーは、1つ以上のアプリケーション・クラスを、デプロイされている他のアプリケーションと共有する必要がある場合にのみ指定します。一般的な例には、イベント・タイプJavaBeanの共有などがあります。
可能な場合は、実装クラス自体の代わりにインタフェースのみが含まれるパッケージをエクスポートします。エクスポートされたクラスが他のアプリケーションで使用中である場合、クラスをエクスポートしているアプリケーションを完全にアンデプロイすることはできなくなります。
エクスポートされたパッケージはサーバー全体で利用されるため、必ずサーバー全体で一意の名前を使用します。
次の完全なMANIFEST.MF
ファイルはHelloWorldのサンプルで、アダプタの構成が拡張されています。
Manifest-Version: 1.0 Archiver-Version: Build-Jdk: 1.6.0_06 Extension-Name: example.helloworld Specification-Title: 1.0.0.0 Specification-Vendor: Oracle. Implementation-Vendor: Oracle. Implementation-Title: example.helloworld Implementation-Version: 1.0.0.0 Bundle-Version: 11.1.1.4_0 Bundle-ManifestVersion: 1 Bundle-Vendor: Oracle. Bundle-Copyright: Copyright (c) 2006 by Oracle. Import-Package: com.bea.wlevs.adapter.defaultprovider;version="11.1.1.4_0", com.bea.wlevs.ede;version="11.1.1.4_0", com.bea.wlevs.ede.impl;version="11.1.1.4_0", com.bea.wlevs.ede.api;version="11.1.1.4_0", org.osgi.framework;version="1.3.0", org.apache.commons.logging;version="1.1.0", com.bea.wlevs.spring;version="11.1.1.4_0", com.bea.wlevs.util;version="11.1.1.4_0", net.sf.cglib.proxy, net.sf.cglib.core, net.sf.cglib.reflect, org.aopalliance.aop, org.springframework.aop.framework;version="2.5.6", org.springframework.aop;version="2.5.6", org.springframework.beans;version="2.5.6", org.springframework.util;version="2.0", org.springframework.core.annotation;version="2.5.6", org.springframework.beans.factory;version="2.5.6", org.springframework.beans.factory.config;version="2.5.6", org.springframework.osgi.context;version="1.2.0", org.springframework.osgi.service;version="1.2.0", javax.xml.bind;version="2.0", javax.xml.bind.annotation;version=2.0, javax.xml.bind.annotation.adapters;version=2.0, javax.xml.bind.attachment;version=2.0, javax.xml.bind.helpers;version=2.0, javax.xml.bind.util;version=2.0, com.bea.wlevs.configuration;version="11.1.1.4_0", com.bea.wlevs.configuration.application;version="11.1.1.4_0", com.sun.xml.bind.v2;version="2.0.2" Bundle-Name: example.helloworld Bundle-Description: WLEvS example helloworld Bundle-SymbolicName: helloworld
Oracle CEPアプリケーションの作成時には、既存のサードパーティJARファイル内のレガシー・ライブラリにアクセスする必要がある場合があります。このレガシー・コードへのアクセスを保証する2つの方法があります。
Oracle CEPアプリケーションJARファイルにサードパーティJARファイルをパッケージ化することをお薦めします。JARファイルは、任意の場所に保存できます。
注意: このアプローチでは、JARファイルのロード順序をほとんど制御できず、依存関係の競合が発生する可能性があります。このため、Oracle CEPサーバー・アプリケーション・ライブラリの使用をお勧めします。詳細は、24.1.3項「アプリケーション・ライブラリ」を参照してください。 |
ただし、MANIFEST.MF
ファイルにBundle-Classpath
ヘッダーを追加し、アプリケーション・クラス・パスを更新することにより、Oracle CEPアプリケーションによるサードパーティJARファイルでのクラスの検出を保証する必要があります。Bundle-Classpath
をクラスおよびリソースの検索先となるJARファイル・パス名のカンマ区切りのリストに設定します。バンドル自身を指定するには、ピリオド(.
)を使用します。例:
Bundle-Classpath: ., commons-logging.jar, myExcitingJar.jar, myOtherExcitingJar.jar
ネイティブ・ライブラリにアクセスする必要がある場合は、ネイティブ・ライブラリもJARファイルにパッケージ化し、MANIFEST.MF
ファイルのBundle-NativeCode
ヘッダーを使用してJARでのその場所を指定する必要があります。
詳細は、4.7.1項「Oracle CEPプロジェクトへの標準JARファイルの追加方法」を参照してください。
JDBCドライバなどのOracle CEPにデプロイされているすべてのアプリケーションで使用されるライブラリがJARファイルに含まれている場合は、サーバー・インスタンスの起動に使用するスクリプト内のjava
コマンドに-Xbootclasspath/a
オプションを指定することで、JARファイルをサーバーのブート・クラスパスに追加できます。
注意: このアプローチでは、JARファイルのロード順序をほとんど制御できず、依存関係の競合が発生する可能性があります。このため、Oracle CEPサーバー・アプリケーション・ライブラリの使用をお勧めします。詳細は、24.1.3項「アプリケーション・ライブラリ」を参照してください。 |
サーバー起動スクリプト名は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_2.0.jar
ファイルを実行するjava
コマンドに-Xbootclasspath/a
オプションを追加して、起動スクリプトを更新します。システム全体でアクセスするサードパーティJARファイルのフルパス名に-Xbootclasspath/a
オプションを設定します。
たとえば、デプロイされているすべてのアプリケーションからe:\jars\myExcitingJAR.jar
というJARファイルにアクセスできるようにする場合は、起動スクリプトのjava
コマンドを次のように更新します(実際には、コマンドは1行に1つです)。
%JAVA_HOME%\bin\java -Dwlevs.home=%USER_INSTALL_DIR% -Dbea.home=%BEA_HOME%
-Xbootclasspath/a:e:\jars\myExcitingJAR.jar
-jar "%USER_INSTALL_DIR%\bin\wlevs_2.0.jar" -disablesecurity %1 %2 %3 %4 %5 %6
外部ステージに依存しているアプリケーションをアセンブルするとき、クラスパス依存関係に注意してください。図24-1に示したアプリケーションの依存関係グラフを考慮してください。
この例では、アプリケーションAはアプリケーションBに、アプリケーションBはアプリケーションCに、アプリケーションCはアプリケーションAに依存します。アプリケーションCは、Java Beanイベント・タイプMarketEvent
用のイベント・タイプ・クラスを宣言し、エクスポートします。アプリケーションAとBは、アプリケーションCによって提供されたMarketEvent
クラスをインポートします。
次の点に注意してください。
外部ステージを再デプロイする場合、そのアプリケーションまたは外部ステージに依存するすべての外部ステージを再デプロイする必要があります。
たとえば、アプリケーションBを再デプロイする場合、アプリケーションAも再デプロイする必要があります。
1つの外部ステージと他のステージの間にクラスパスの依存関係がある場合、共有クラスを宣言し、エクスポートする外部ステージをデプロイするときは、共有クラスをインポートするすべての外部ステージを再デプロイする必要があります。
たとえば、アプリケーションCを再デプロイする場合、アプリケーションC(MarketEvent
)とクラスパスの依存関係がアプリケーションAとBも再デプロイする必要があります。
詳細は、次を参照してください:
通常、カスタム・アダプタおよびイベントBeanは、プロセッサ、ストリームおよびビジネス・ロジックPOJOなど、他のコンポーネントを含む1つのアプリケーションJARファイルにバンドルされます。
ただし、アダプタを固有のJARファイルにバンドルし、他のアプリケーション・バンドルでアダプタを参照する必要がある場合もあります。これは、たとえば、2つの異なるアプリケーションが同じデータ・フィード・プロバイダからのデータを読み込み、両方のアプリケーションが同じイベント・タイプを使用する場合に役立ちます。この場合、2つの異なるアプリケーションで実装が重複するよりも、同一のアダプタおよびイベント・タイプの実装を共有するほうが有意義です。
異なるバンドルでアダプタおよびアダプタを使用するアプリケーションを構成する方法には、実際の違いはなく、構成を配置する場所が異なります。
この項では次について説明します:
カスタム・アダプタとその依存クラスは固有のバンドルにアセンブルできます。
カスタム・アダプタを固有のバンドルにアセンブルする手順:
カスタム・アダプタのJavaクラス、カスタム・アダプタ・ファクトリのJavaクラス、およびオプションで、アダプタが着信データを変換するイベント・タイプのJavaクラスのみが含まれているOSGIバンドルを作成します。
この手順では、バンドルはGlobalAdapter
と呼ばれます。
GlobalAdapter
バンドルのEPNアセンブリ・ファイルで:
14.4.1項「カスタム・アダプタ・ファクトリの登録」の説明に従って、アダプタ・ファクトリをOSGIサービスとして登録します。
イベント・タイプもバンドルに組み込む場合は、2.8項「アプリケーション・バンドル間でのイベント・タイプの共有」の説明に従って登録します。
wlevs:adapter
要素を使用してカスタム・アダプタ・コンポーネントを宣言しないでください。
この要素は、アダプタを実際に使用するアプリケーション・バンドルのEPNアセンブリ・ファイルで使用します。
カスタム・アダプタを更に構成する場合は、14.5項「カスタム・アダプタ・コンポーネント構成ファイルの構成」の説明に従って、通常の手順を実行します。
イベント・タイプをGlobalAdapter
バンドルに含める場合は、4.7.4項「パッケージのエクスポート方法」の説明に従って、Export-Package
ヘッダーを使用し、GlobalAdapter
バンドルのMANIFEST.MF
ファイルでJavaBeanクラスをエクスポートします。
24.5項「Oracle CEPアプリケーションのデプロイ」」の説明に従って、GlobalAdapter
バンドルをアセンブルおよびデプロイします。
カスタム・アダプタに使用するプリケーションのEPNアセンブリ・ファイルで、14.4.2項「アプリケーションのカスタム・アダプタ・コンポーネントの宣言」の説明に従って、カスタム・アダプタ・コンポーネントを宣言します。
引き続き、provider
属性を使用してOSGI登録済アダプタ・ファクトリを指定しますが、この場合、OSGIはアダプタを実際に使用するEPNアセンブリ・ファイルとは別の(GlobalAdapter
バンドルの)EPNアセンブリ・ファイルで登録されます。
GlobalAdapter
バンドルのイベント・タイプをエクスポートした場合は、それを使用するアプリケーションに明示的にインポートする必要があります。
これは、24.2.2.1項「MANIFEST.MFファイルの作成」の説明に従って、アプリケーション・バンドルのMANIFEST.MF
ファイルでImport-Package
ヘッダーにパッケージを追加して実行します。
カスタム・イベントBeanとその依存クラスは固有のバンドルにアセンブルできます。
カスタム・イベントBeanを固有のバンドルにアセンブルする手順:
カスタム・イベントBean Javaクラスおよびカスタム・イベントBeanファクトリJavaクラスのみを含むOSGIバンドルを作成します。
この手順では、バンドルはGlobalEventBean
と呼ばれます。
GlobalEventBean
バンドルのEPNアセンブリ・ファイルで:
15.3.1項「カスタム・イベントBeanファクトリの登録」の説明に従って、カスタム・イベントBeanファクトリをOSGIサービスとして登録します。
wlevs:adapter
要素を使用してカスタム・イベントBeanコンポーネントを宣言しないでください。
この要素は、アダプタを実際に使用するアプリケーション・バンドルのEPNアセンブリ・ファイルで使用します。
カスタム・イベントBeanを更に構成する場合は、15.4項「カスタム・イベントBeanコンポーネント構成ファイルの構成」の説明に従って、通常の手順を実行します。
24.5項「Oracle CEPアプリケーションのデプロイ」」の説明に従って、GlobalEventBean
バンドルをアセンブルおよびデプロイします。
カスタム・イベントBeanに使用するプリケーションのEPNアセンブリ・ファイルで、15.3.2項「アプリケーションのカスタム・イベントBeanコンポーネントの宣言」の説明に従って、カスタム・イベントBeanコンポーネントを宣言します。
引き続き、provider
属性を使用してOSGI登録済カスタム・イベントBeanファクトリを指定しますが、この場合、OSGIはアダプタを実際に使用するEPNアセンブリ・ファイルとは別の(GlobalEventBean
バンドルの)EPNアセンブリ・ファイルで登録されます。
GlobalEventBean
バンドルのイベント・タイプをエクスポートした場合は、それを使用するアプリケーションに明示的にインポートする必要があります。
これは、24.2.2.1項「MANIFEST.MFファイルの作成」の説明に従って、アプリケーション・バンドルのMANIFEST.MF
ファイルでImport-Package
ヘッダーにパッケージを追加して実行します。
Oracle CEPアプリケーション・ライブラリを使用して、共有ライブラリを便利な場所にデプロイし、Oracle CEPサーバーの起動時にデプロイする共有ライブラリの順序を完全に制御できます。
この項では、次の項を含めて、Oracle CEPサーバー・アプリケーション・ライブラリを管理する方法について説明します。
24.3.1項「Oracle CEP IDE for Eclipseを使用したアプリケーション・ライブラリのディレクトリの定義方法」
24.3.4項「Oracle CEP IDE for Eclipseを使用したアプリケーション・ライブラリのディレクトリの更新方法」
詳細は、24.1.3項「アプリケーション・ライブラリ」を参照してください。
Oracle CEPサーバー・アプリケーション・ライブラリを使用する前に、Oracle CEP IDE for Eclipseデザイン・タイム構成をアプリケーション・ライブラリのディレクトリの場所で更新する必要があります。
デフォルトのアプリケーション・ライブラリ構成の詳細は、次を参照してください。
詳細は、24.3項「アプリケーション・ライブラリの管理」を参照してください。
Oracle CEP IDE for Eclipseを使用してアプリケーション・ライブラリのディレクトリを定義するには、
Oracle CEP IDE for Eclipseを起動します。
プロジェクトを右クリックして、「プロパティ」を選択します。
図24-2に示すような「プリファレンス」ダイアログが表示されます。
「Oracle CEPアプリケーション・ライブラリのパス」を選択します。
表24-1の説明に従って、アプリケーション・ライブラリのパスを指定します。
表24-1 Oracle CEPアプリケーション・ライブラリのパス
オプション | 説明 |
---|---|
「絶対パスを使用」 |
アプリケーション・ライブラリのディレクトリに絶対パスを指定するにはこのオプションを選択します。 24.3.1.1項「絶対パスの構成方法」を参照してください。 |
「パス変数の拡張」 |
パス変数に基づいてアプリケーション・ライブラリを指定するにはこのオプションを選択します。 24.3.1.2項「パス変数を拡張する方法」を参照してください。 |
アプリケーション・ライブラリ・パスを絶対パスとして指定できます。チーム環境では、24.3.1.2項「パス変数を拡張する方法」の説明に従って、パス変数に基づくアプリケーション・ライブラリ・パスを指定する方がより便利です。
絶対パスを構成するには:
「参照」ボタンをクリックして、ファイル・システム・ブラウザを開きます。
ファイル・システム・ブラウザを使用して、ディレクトリを選択します。
「OK」をクリックします。
「適用」をクリックします。
「OK」をクリックします。
パス変数を拡張することで、アプリケーション・ライブラリ・パスを指定できます。これは、最もフレキシブルなアプローチであり、チーム環境に適切です。あるいは、24.3.1.1項「絶対パスの構成方法」に従って、絶対パスでアプリケーション・ライブラリを指定できます。
パス変数を拡張するには:
「変数」ボタンをクリックします。
図24-3に示すようにパス変数の選択ダイアログが表示されます。
「新規」をクリックします。
図24-4に示すような「新規変数」ダイアログが表示されます。
表24-2で説明されているように、「新規変数」ダイアログを構成します。
表24-2 Oracle CEPアプリケーション・ライブラリ・パス変数
オプション | 説明 |
---|---|
名前 |
変数の名前を入力します。 |
「ロケーション」 |
「フォルダ」ボタンをクリックして、ファイル・システム・ブラウザを開きます。アプリケーション・ライブラリのディレクトリを使用するには、ルートディレクトリを選択します。 注意: ディレクトリをOracle CEPサーバー・ドメインに配置する必要があります。詳細は、5.2項「Oracle CEPサーバーの作成」を参照してください。 |
「OK」をクリックします。
図24-5で示したとおり、パス変数の選択ダイアログに新しいパス変数が表示されます。
オプションで、変数を選択し、「拡張」をクリックします。
図24-6に示すように、変数の拡張ダイアログが表示されます。このダイアログには、この変数のために指定したルートディレクトリの下にあるすべてのディレクトリが表示されます。
サブディレクトリを選択して、「OK」をクリックします。
アプリケーション・ライブラリ・パスは、図24-7で示すように定義した変数パスに対して相対的に指定します。
「適用」をクリックします。
「OK」をクリックします。
このプロシージャでは、バンドル・ユーティリティを使用したOSGiバンドルの作成方法について説明します。
この方法をお薦めします。手動でアクティベータ実装を構成する場合は、24.3.3項「Oracle CEP IDE for Eclipseを使用したアプリケーション・ライブラリの作成方法」を参照してください。
新規JDBCドライバのアプリケーション・ライブラリを作成する場合は、『Oracle Complex Event Processing管理者ガイド』のbundler.shで構築されるアプリケーション・ライブラリを使用したデータベース・ドライバへのアクセス方法に関する項を参照してください。
詳細は、24.1.3.3項「アプリケーション・ライブラリの作成」を参照してください。
bundler.shを使用してアプリケーション・ライブラリを作成する手順:
『Oracle Complex Event Processingスタート・ガイド』の開発環境の設定に関する項の説明に従って環境を設定します。
bundler.sh
スクリプトを実行して、ドライバを含むOSGiバンドルを作成します。
bundler.sh
スクリプトは、ORACLE_CEP_HOME
/ocep_11.1/bin
ディレクトリにあります。ORACLE_CEP_HOME
は、Oracle CEPサーバーのインストール先のディレクトリです。
例24-1は、bundler.sh
コマンド・ライン・オプションを示し、表24-3は、これらのオプションを説明します。
例24-1 bundler.shコマンド・ライン・オプション
bundler -sourceJAR
-nameNAME
-versionVERSION
[-factoryCLASS
+] [-serviceINTERFACE
+] [-fragmenthostHOST
] [-stagedirPATH
] [-targetdirPATH
] [+importPACKAGE
|REGEX
+] [-imodsREGEX
;MODS
+] [-importPACKAGE
+] [+exportPACKAGE
|REGEX
+] [-emodsREGEX
;MODS
+] [-dimportPACKAGE
+] [-explode] [-verbose]
表24-3 bundler.shコマンド・ライン・オプション
引数 | 説明 |
---|---|
|
バンドルするソースJARファイルのパス。 |
- |
バンドルのシンボリック名。ターゲットJARファイル名のルートは名前の値から導出されています。 |
- |
バンドル・バージョン番号。すべてのエクスポートされたパッケージは、この値のバージョン属性で修飾されます。ターゲットJARファイル名には、バージョン番号が含まれています。 |
- |
OSGiサービスとしてインスタンス化および登録される1つ以上のファクトリ・クラスのスペース区切りリストを指定するオプションの引数。各サービスは、OSGiサービス・レジストリに名前( この引数は |
- |
各ファクトリ・オブジェクト・サービス登録のオブジェクト・クラスとして使用する1つ以上のJavaインタフェースのスペース区切りリストを指定するオプションの引数。インタフェース名を指定していない場合、または指定したインタフェース数がファクトリ・クラス数と一致していない場合、各ファクトリ・オブジェクトはファクトリ・クラス名で登録されます。 |
|
結果のバンドルがフラグメント・ハンドルであることを示し、ホスト・バンドルのシンボリック名を指定するオプションの引数。 この引数は |
|
ターゲットJARファイル作成時の一時ファイルの書込み先を指定するオプションの引数。 デフォルト: |
|
生成されたバンドルJARファイルの場所を指定するオプションの引数。 デフォルト: 現在の作業ディレクトリ( |
|
1つ以上のパッケージ、またはマニフェスト デフォルトでは、( |
|
インポート修飾子は通常表現と一致するパッケージに適用されます。 |
|
マニフェスト 指定したインポート修飾子は適用されません。 |
|
1つ以上のパッケージ、またはマニフェスト デフォルトでは、すべてのバンドル・パッケージがエクスポートされます。 |
|
エクスポート修飾子は通常表現と一致するパッケージに適用されます。 |
|
マニフェスト |
|
このオプションのフラグでは、ソースJARの内容のターゲットJARファイルへの移動を指定します。 デフォルトでは、ソースJARはターゲットJARファイル内にネストされ、生成されたバンドル・マニフェストに適切な |
|
詳細出力を有効にするオプション・フラグ。 |
例24-2は、bundler.sh
を使用してOracle JDBCドライバ用のOSGiバンドルを作成する方法を示します。
例24-2 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には、例24-3に示すファイルがあります。
例24-3 バンドル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つのファクトリ・クラスがあることを指定します。表24-4に示すように、各ファクトリ・クラスは別々のオブジェクト・クラスにあります。
表24-4 ファクトリ・クラスおよびサービス・インタフェース
ファクトリ・クラス | サービス・インタフェース |
---|---|
|
|
|
|
各サービスは、name
プロパティをoracle11g
に設定し、version
プロパティを11.2.0
の値で登録します。例24-4は、サービスの登録を示すOracle CEPサーバー・ログ・メッセージです。
例24-4 サービス登録ログ・メッセージ
... 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 ...
アプリケーション・ライブラリJARを該当するOracle CEPサーバー・アプリケーション・ディレクトリにコピーします。
バンドルがドライバの場合は、ライブラリ拡張ディレクトリに置く必要があります。
24.1.3.2項「ライブラリ拡張ディレクトリ」を参照してください。
バンドルがドライバでない場合は、ライブラリ・ディレクトリに置くことができます。
24.1.3.1「ライブラリ・ディレクトリ」を参照してください。
詳細は、24.1.3項「アプリケーション・ライブラリ」を参照してください。
Oracle CEPサーバーを停止および開始します。
『Oracle Complex Event Processing管理者ガイド』のOracle CEPサーバーの起動および停止に関する項を参照してください。
この手順は、Oracle CEP IDE for Eclipseを使用してドライバに対するOSGiバンドルを作成してOracle CEPサーバー上にデプロイする方法です。
この方法をお薦めします。手動でアクティベータ実装を構成しない場合は、24.3.2項「bundler.shを使用したアプリケーション・ライブラリの作成方法」を参照してください。
新規JDBCドライバのアプリケーション・ライブラリを作成する場合は、『Oracle Complex Event Processing管理者ガイド』のOracle CEP IDE for Eclipseで構築されるアプリケーション・ライブラリを使用したデータベース・ドライバへのアクセス方法に関する項を参照してください。
Oracle CEP IDE for Eclipseを使用してアプリケーション・ライブラリを作成する手順:
Oracle CEP IDE for Eclipseを使用して、新しいOracle CEPプロジェクトを作成します。
詳細は、4.2項「Oracle CEPプロジェクトの作成」を参照してください。
プロジェクト・フォルダを右クリックして、「新規」>「フォルダ」を選択します。
「フォルダ名」フィールドにlib
と入力し、「終了」をクリックします。
Oracle CEP IDE for Eclipseの外で、JDBC JARファイルをlib
フォルダにコピーします。
Oracle CEP IDE for Eclipse内で、lib
フォルダを右クリックして、「リフレッシュ」を選択します。
図24-8に示すように、JARファイルがlib
フォルダに表示されます。
srcディレクトリを右クリックして、「新規」>「クラス」を選択します。
図24-9に示すように、「Javaクラス」ダイアログが表示されます。
表24-5に示すように、「新規Javaクラス」ダイアログを構成します。
表24-5 新規Javaクラス・パラメータ
パラメータ | 説明 |
---|---|
パッケージ名 |
パッケージの名前。たとえば、 |
名前 |
クラスの名前。たとえば、 |
その他のパラメータはデフォルト値のままにします。
「終了」をクリックします。
新規のJavaクラスがプロジェクトに追加されます。
例24-5に示すように、実装するためにJavaクラスを編集します。
JDBCドライバの既存のバージョンを差し代えるように、NAME
およびVERSION
を設定します。この例では既存のバージョンは、次のとおりです。
oracle10g
10.0.0
既存のバージョンを差し代えるために、MyActivator
クラスではこれらの値を次の値に設定します。
oracle11g
11.2.0
例24-5 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
ファイルを右クリックし、次で開く>プラグイン・マニフェストエディタを選択します。
図24-10に示すように、マニフェスト・エディタが表示されます。
「ランタイム」タブをクリックします。
図24-10に示すように、「ランタイム」タブが表示されます。
「クラスパス」ペインで、「追加」をクリックします。
図24-12に示すように、JAR選択ダイアログが表示されます。
libディレクトリを展開して、使用するデータベース・ドライバJARファイルを選択します。
「OK」をクリックします。
「依存関係」タブをクリックします。
図24-13に示すように、「依存関係」タブが表示されます。
インポートされたパッケージペインで、「追加」をクリックします。
図24-14に示すように、パッケージの選択ダイアログが表示されます。
エクスポートされたパッケージフィールドで、org.osgi.framework
を入力します。
図24-14に示すように、リスト・ボックスには、そのプリフィクスの付いているすべてのパッケージが表示されます。
リスト・ボックスでorg.osgi.framework
を選択して、「OK」をクリックします。
MANIFEST.MFタブをクリックします。
図24-15に示すように、MANIFEST.MF
タブが表示されます。
例24-6に示すように、使用するJARを一時ディレクトリに解凍します。
例24-7に示すように、使用するJAR MANIFEST.MF
ファイルを開いて、Export-Packageエントリをコピーし、マニフェスト・エディタに貼り付けます。
例24-7 マニフェスト・エディタへのエクスポート・パッケージの追加
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
例24-8に示すように、マニフェスト・エディタにBundle-Activator
要素を追加します。
Bundle-Activator
の値は、Activator
クラスの完全修飾クラス名です。
例24-8 マニフェスト・エディタへの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, ...
...
例24-9に示すように、マニフェスト・エディタにDynamicImport-Package
要素を追加します。
例24-9 マニフェスト・エディタへの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ファイルにエクスポートします。
詳細は、4.5.1項「Oracle CEPプロジェクトのエクスポート方法」を参照してください。
バンドルJARを適切なOracle CEPサーバー・アプリケーション・ライブラリ・ディレクトリにコピーします。
バンドルがドライバの場合は、ライブラリ拡張ディレクトリに置く必要があります。
24.1.3.2項「ライブラリ拡張ディレクトリ」を参照してください。
バンドルがドライバでない場合は、ライブラリ・ディレクトリに置くことができます。
24.1.3.1「ライブラリ・ディレクトリ」を参照してください。
詳細は、24.1.3項「アプリケーション・ライブラリ」を参照してください。
Oracle CEPサーバーを停止および開始します。
『Oracle Complex Event Processing管理者ガイド』のOracle CEPサーバーの起動および停止に関する項を参照してください。
アプリケーション・ライブラリ拡張、アプリケーション・ライブラリ・ディレクトリまたはそれらのユーザー定義のサブディレクトリでJARファイルの追加、置き換えまたは解除を行う場合、次の2つの場所で変更を加える必要があります。
Oracle CEP IDE for Eclipseでサーバーのランタイムを作成するために使用したローカルOracle CEPサーバー。
依存アプリケーションをデプロイされた本番Oracle CEPサーバー。
これらの変更は、同時に実行する必要がありません。アプリケーション・ライブラリの変更に依存するプロジェクトのコードを変更する前に、ローカルOracle CEPサーバーに変更を加える必要があります。アプリケーション・ライブラリの変更に依存するアプリケーションをデプロイする前に、本番Oracle CEPサーバーに変更を加える必要があります。
詳細は、24.3項「アプリケーション・ライブラリの管理」を参照してください。
Oracle CEP IDE for Eclipseを使用してアプリケーション・ライブラリを更新するには:
本番Oracle CEPサーバー上のアプリケーション・ライブラリ拡張またはアプリケーション・ライブラリ・ディレクトリに新しいまたは改訂されたバンドルを追加します。
これは、このアプリケーション・ライブラリに依存するアプリケーションをデプロイするサーバーです。
ライブラリのデプロイメント順序を制御するには、ライブラリを適切な名前のサブディレクトリに整理します。
詳細は、次を参照してください:
本番Oracle CEPサーバーを停止および起動します。
Oracle CEPサーバーは、更新されたアプリケーション・ライブラリ拡張またはアプリケーション・ライブラリ・ディレクトリからリフレッシュします。
詳細は、次を参照してください:
『Oracle Complex Event Processing管理者ガイド』のスタンドアロン・サーバー・ドメインでのOracle CEPサーバーの起動と停止に関する項
『Oracle Complex Event Processing管理者ガイド』のマルチサーバー・ドメインでのOracle CEPサーバーの起動と停止に関する項
Oracle CEP IDE for EclipseターゲットのランタイムOracle CEPサーバー上のアプリケーション・ライブラリ拡張またはアプリケーション・ライブラリ・ディレクトリに同じ新規または改訂されたバンドルを追加します。
Oracle CEP IDE for Eclipseを起動します。
プロジェクトを右クリックし、「ターゲットのランタイムをリフレッシュ」を選択します。
Oracle CEP IDE for Eclipseは、Oracle CEP IDE for EclipseターゲットのランタイムOracle CEPサーバー上の更新されたアプリケーション・ライブラリ拡張またはアプリケーション・ライブラリ・ディレクトリからこのプロジェクトをリフレッシュします。
必要に応じて、アプリケーション依存性を更新します。
たとえば、新規バンドルを追加するか、または既存のバンドルのバージョンを変更します。
詳細は、24.1.2項「アプリケーションの依存関係」を参照してください。
本番Oracle CEPサーバーにアプリケーションをアセンブルし、デプロイします。
詳細は、24.5項「Oracle CEPアプリケーションのデプロイ」を参照してください。
開発時に、このアプリケーション向けにOracle CEP IDE for Eclipseに定義した依存関係は、実行時に本番Oracle CEPサーバーのアプリケーション・ライブラリでインストールされたコンポーネントによって満たされます。
Oracle CEP Visualizerを使用して、Oracle CEPサーバーにデプロイされたアプリケーション・ライブラリを表示できます。
ライブラリ拡張ディレクトリとライブラリ・ディレクトリ、そのいずれからもライブラリを表示できます。
注意: Oracle CEP Visualizerでは、アプリケーション・ライブラリをOracle CEPサーバーにはデプロイできません。Oracle CEP Visualizerでは、Oracle CEPアプリケーションのOracle CEPサーバーへのデプロイのみ可能です。 |
詳細は、次を参照してください:
『Oracle Complex Event Processing Visualizerユーザーズ・ガイド』のOracle CEPサーバーにデプロイされたアプリケーション・ライブラリの表示方法に関する項
この項では、Oracle CEPアプリケーションのローカライズに使用する、次のようなログ・メッセージ・カタログの管理方法について説明します。
詳細は、次を参照してください:
『Oracle Complex Event Processing管理者ガイド』のOracle CEP用のロギングとデバッグの構成に関する項
メッセージ・カタログは、テキスト・メッセージのコレクションが格納される単一のXMLファイルです。各メッセージには、ユニークな識別子が付けられます。これらのXMLファイルを、ビルド・プロセス中に weblogic.i18ngen を使用してクラスにコンパイルします(詳細については、 「weblogic.i18ngenユーティリティ」 を参照してください)。生成されたクラスのメソッドは、実行時にメッセージをログに記録するために使用されるオブジェクトとなります。
メッセージ・カタログでは、複数のロケールまたは言語がサポートされています。特定のメッセージ・カタログには、最上位カタログというデフォルト・バージョンが必ず1つあり、英語版のメッセージが含まれます。さらに、追加してサポートされるロケールごとに、対応するロケール固有のカタログが付加されます。
最上位カタログ(英語版)には、メッセージの定義に必要な情報がすべて含まれます。ロケール固有のカタログには、メッセージID、変更された日付、および特定ロケールに対応するメッセージの変換だけが含まれます。
メッセージ・カタログ・ファイルは次のXMLドキュメント・タイプ定義(DTD)ファイルのいずれかで定義されます。
msgcat.dtd
- 最上位のデフォルト・カタログの構文を記述します。
l10n_msgcat.dtd
- ロケール固有のカタログの構文を記述します。
DTDはORACLE_CEP_HOEM
/modules/com.bea.core.i18n.generator_1.4.0.0.jar
に格納されます。
メッセージ・カタログの作成では、ロギングのすべての必要条件に対応するログ・メッセージ・カタログを1つ作成したり、サブシステムまたはJavaパッケージごとに細かく分けてカタログを作成することもできます。表示するときにそのログの特定の部分に焦点を当てることができるよう、複数のサブシステム・カタログの使用をお勧めします。
シンプル・テキスト・カタログについては、国際化される各ユーティリティにシングル・カタログを作成することをお薦めします。
この項では次について説明します:
詳細は、次を参照してください:
すべてのメッセージは、デフォルトで最上位カタログに定義する必要があります。
基本カタログのさまざまなローカライゼーションを提供するカタログは、ロケールに基づいた名前がついたmsgcatのサブディレクトリ(ドイツ語の場合はmsgcat/de
など)に定義されています。たとえば、mycat.xml
という最上位カタログと..de/mycat.xml
というそのドイツ語版のカタログがあります。通常、最上位カタログは英語です。ただし、どのカタログでも英語は必須ではありません。
java.util.Localeのドキュメントで定義されているように、ロケールの指定(de
など)にも階層があります。ロケールでは言語、国、およびバリアントを指定できます。言語は、ロケール指定でもっとも一般的なものです。言語は国コードによって拡張できます。たとえば、en\US
はアメリカ英語を示します。これに関連付けられたカタログの名前は、..en\US\mycat.xml
となります。バリアントはベンダーまたはブラウザに固有であり、言語または国で定義された複数のロケールの間で細かな違い(照合順序など)を持たせるために使用します。
メッセージ・カタログ・ファイルの名前(.xml
拡張子を除く)は、実行時クラスおよびプロパティ名の生成に使用されるため、命名は慎重に行ってください。
メッセージ・カタログに名前を付ける場合、以下のガイドラインに従ってください。
メッセージ・カタログを作成している対象パッケージ内の既存クラスの名前と衝突するようなメッセージ・カタログ名は避けます。
メッセージ・カタログ名に含まれる文字は、クラス名に使用できる文字のみを使用します。
クラス名の命名規約に従います。
たとえば、カタログの名前がXyz.xml
の場合、生成されるクラス名はXyzLogLocalizer
およびXyzLogger
になります。
以下の考慮事項も、メッセージ・カタログ・ファイルに適用されます。
メッセージIDは、通常は先頭に0が付く6文字の文字列。一部のインタフェースでは、整数表現もサポートされています。
注意: これは、ログ・メッセージ・カタログにのみ適用されます。シンプル・テキスト・カタログは任意の文字列をとることができます。 |
Javaでは、パッケージと呼ばれるコレクションにクラスをまとめることができます。パッケージ名は、特定のカタログが存在するサブシステムの名前と一致させることをお薦めします。命名が一環していると、OSGiインポートの定義が容易になります。
ログのLocalizer「クラス」は、実際にはResourceBundle
プロパティ・ファイルです。
ログ・メッセージのメッセージ本文、メッセージ詳細、原因、およびアクションなどのセクションには、java.text.MessageFormat
に記載されているようなメッセージ引数を組み込むことができます。メッセージの内容が、java.text.MessageFormat
で指定されたパターンに準拠していることを確認してください。シンプル・テキスト・メッセージでは、引数を入れられるのは、メッセージ本文のセクションに限られます。引数は、実行時に動的に設定される値を表します。これらの値は、メッセージを出力するなどのルーチンに渡されます。1つのメッセージには0 - 9で番号付けされた10個までの引数をサポートできます。メッセージ本文にはすべての引数を入れる必要がありますが、メッセージ定義(メッセージ本文、メッセージ詳細、妥当な原因)の任意のテキスト・セクションにもこれらの引数の任意のサブセットを入れることができます。メッセージ引数は開発時にメッセージ定義に挿入され、実行時においてメッセージがログに記録されるときに適切なメッセージ・コンテンツに置き換えられます。
以下は、XMLログ・メッセージ定義の抜粋で、メッセージ引数の使い方を示しています。引数の番号は、method属性で指定された引数の1つと対応している必要があります。具体的には、{0}
は最初の引数と、{1}
は2番目の引数と対応している必要があります。例24-10では、{0}
は開けないファイルを表し、{1}
は適切に開かれるファイルを表します。
例24-10 メッセージ引数
<messagebody>Unable to open file, {0}. Opening {1}. All arguments must be in body.</messagebody> <messagedetail> File, {0} does not exist. The server will restore the file contents from {1}, resulting in the use of default values for all future requests. </messagedetail> <cause>The file was deleted</cause> <action>If this error repeats then investigate unauthorized access to the file system.</action>
次に、 method 属性の例を示します。
-method="logNoFile(String name, String path)"
例24-10のメッセージの例では、2つの引数{0}
および{1}
が使用されています。
両方とも<messagebody>
で使用されています。
両方とも<messagedetail>
で使用されています。
どちらも<cause>
または<action>
では使用されていません。
注意: 1つのメッセージには0から9で番号付けされた10個までの引数をサポートできます。メッセージ本文にはすべての引数を入れる必要がありますが、メッセージ定義(メッセージ詳細、原因、処置)の任意のテキスト・セクションにもこれらの引数の任意のサブセットを入れることができます。 |
また、引数はString
型と想定されるか、String
型で表現可能です。数値データは{n,number}
と表現されます。日付は{n,date}
の形式でサポートされます。ログ・メッセージには重大度レベルを割り当てる必要があります。ログ・メッセージはmethod属性で定義されているとおり、生成済のLoggerメソッドによって生成されます。
最上位のカタログ・ファイルとロケール固有のカタログ・ファイルでは、カタログのフォーマットが若干異なります。最上位カタログでは、基本ロケール(デフォルトでは、英語)のテキスト・メッセージが定義されます。ロケール固有のカタログ(スペイン語に翻訳されたカタログなど)は、最上位バージョンで定義されているテキストの翻訳だけを備えています。さらに、ログ・メッセージ・カタログではシンプル・テキスト・カタログと定義の方法が異なります。
例24-11はログ・メッセージを1つ持つメッセージ・カタログMyUtilLog.xml
を示しています。このログ・メッセージは、messagebody
、messagedetail
、cause
およびaction
の各要素の使用方法を示しています。
例24-11 ログ・メッセージ・カタログ
<?xml version="1.0"?> <!DOCTYPE message_catalog PUBLIC "weblogic-message-catalog-dtd" "http://www.bea.com/servers/wls90/dtd/msgcat.dtd"> <message_catalog l10n_package="programs.utils" i18n_package="programs.utils" subsystem="MYUTIL" version="1.0" baseid="600000" endid="600100" <log_message messageid="600001" severity="warning" method="logNoAuthorization(String arg0, java.util.Date arg1,int arg2)" <messagebody> Could not open file, {0} on {1,date} after {2,number} attempts. </messagebody> <messagedetail> The configuration for this application will be defaulted to factory settings. Custom configuration information resides in file, {0}, created on {1,date}, but is not readable. </messagedetail> <cause> The user is not authorized to use custom configurations. Custom configuration information resides in file, {0}, created on {1,date}, but is not readable.The attempt has been logged to the security log. </cause> <action> The user needs to gain approriate authorization or learn to live with the default settings. </action> </log_message> </message_catalog>
詳細は、付録G「スキーマ参照: メッセージ・カタログmsgcat.dtd」を参照してください。
例24-12では、1つのシンプル・テキストが定義されているシンプル・テキスト・カタログMyUtilLabels.xmlを示しています。
例24-12 シンプル・テキスト・カタログ
<?xml version="1.0"?> <!DOCTYPE message_catalog PUBLIC "weblogic-message-catalog-dtd" "http://www.bea.com/servers/wls90/dtd/msgcat.dtd"> <message_catalog> l10n_package="programs.utils" i18n_package="programs.utils" subsystem="MYUTIL" version="1.0" <message> messageid="FileMenuTitle" <messagebody> File </messagebody> </message> </message_catalog>
詳細は、付録G「スキーマ参照: メッセージ・カタログmsgcat.dtd」を参照してください。
例24-13は、..\msgcat\fr\MyUtilLabels.xml
にあるメッセージのフランス語版です。
例24-13 ロケール固有のカタログ
<?xml version="1.0"?> <!DOCTYPE message_catalog PUBLIC "weblogic-locale-message-catalog-dtd" "http://www.bea.com/servers/wls90/dtd/l10n_msgcat.dtd"> <locale_message_catalog l10n_package="programs.utils" subsystem="MYUTIL" version="1.0"> <message> <messageid="FileMenuTitle"> <messagebody> Fichier </messagebody> </message> </locale_message_catalog>
messagebody
、messagedetail
、cause
、およびaction
の各要素でテキストを入力するときには、有効なUTF-8 (Unicode Transformation Format-8)文字を生成するツールを使用するとともに、適切なキーボードのマッピングがインストールされている必要があります。UTF-8は、ASCII文字のエンコーディングを最適化する、効率的なUnicode文字列エンコーディング方式です。メッセージ・カタログでは常にUTF-8エンコーディング方式が使用されます。
詳細は、付録H「スキーマ参照: ロケール・メッセージ・カタログl10n_msgcat.dtd」を参照してください。
カタログ・サブディレクトリの名前は、小文字2文字のISO 639言語コード(日本語はja
、フランス語はfr
など)に基づいて付けられます。サポートされている言語コードは、java.util.Locale
Javadocで確認できます。
言語コードのバリエーションは、言語コードの下位にある大文字2文字のISO 3166国コードとバリアントを使用するとできます。一般的な構文は、lang\country\variant
です。
たとえば、zh
は中国の言語コードです。CN
は簡体字中国語の国コードで、TW
は繁体字中国語の国コードです。このため、zh\CN
およびzh\TW
は中国語の異なる2つのロケールです。
バリアントは、特定のロケールを扱うプラットフォーム・ベンダーの機能に違いがある場合などに役立ちます。ベンダー・バリアントには、WIN
、MAC
、POSIX
などがあります。ロケールをさらに修飾するために2つのバリアントが使用される場合もあります。この場合、バリアントはアンダースコアで区切ります(Traditional_Mac
とModern_MAC
など)。
注意: 言語、国、およびバリアントは、すべて大文字/小文字が区別されます。 |
完全修飾ロケールはzh\TW\WIN
のようになり、Win32プラットフォームでの繁体字中国語を識別します。
上記のロケールをサポートするメッセージ・カタログには、次のファイルが含まれます。
\*.xml
- デフォルト・カタログ
\zh\*.xml
- 中国語ローカライゼーション
\zh\TW\*.xml
- 繁体字中国語ローカライゼーション
\zh\TW\WIN\*.xml
- Win32コード・セットに対する繁体字中国語ローカライゼーション
特定のローカライゼーションは、親ローカライゼーションで定義されたすべてのメッセージに対応する必要はありません。
メッセージ・カタログXMLファイルを作成すると、weblogic.i18ngen
ユーティリティを使用してLogger
およびTextFormatter
クラスを作成することができます。
weblogic.i18ngen
ユーティリティを使用すると、メッセージ・カタログ(XMLファイル)を解析し、ログ・メッセージのテキストをローカライズするためのLogger
クラスおよびTextFormatter
クラスを生成できます。このユーティリティでは、メッセージIDのルックアップ・クラス・ハッシュ・テーブルweblogic.i18n.L10nLookup
のロードに使用するi18n_user.properties
が作成、または更新されます。
エラーや警告などのメッセージはすべてstderr
に送信されます。
ユーザー・カタログが認識されるように、i18n_user.properties
ファイルはOracle CEPサーバー・クラス・パスで識別されたディレクトリに置く必要があります。
i18n_user.properties
ファイルは、Oracle CEPサーバー・クラス・パスに置くことをお薦めします。i18n_user.properties
ファイルがtargetdirectory
にある場合は、targetdirectory
がOracle CEPサーバー・クラス・パスにある必要があります。
LoggerおよびTextFormatterクラスを生成するためのメッセージ・カタログを解析する手順:
メッセージ・カタログXMLファイルを作成します。
24.4.1項「Oracle CEPサーバーでのメッセージ・カタログの使用」を参照してください。
開発環境を設定します。
『Oracle Complex Event Processingスタート・ガイド』の開発環境の設定に関する項を参照してください。
次の構文を使用して、weblogic.i18ngen
ユーティリティを実行します。
java weblogic.i18ngen [options
] [filelist
]
説明:
options
: 表24-6を参照してください。
filelist
: このファイル・リストのファイルとディレクトリを処理します。ディレクトリが指定されている場合は、そのディレクトリのすべてのXMLファイルが処理されます。すべてのファイルの名前には、XMLのサフィックスが付いている必要があります。すべてのファイルはmsgcat.dtd
構文に準拠している必要があります。weblogic.i18ngen
は、実際に生成されたファイルに対して、完全修飾名リスト(Javaソース)をstdout
ログに出力します。
表24-6 weblogic.i18ngenユーティリティ・オプション
オプション | 説明 |
---|---|
|
必要なすべてのファイルを生成し、コンパイルします。
|
|
生成されたJavaソース・ファイルの宛先となるルート・ディレクトリを指定します。ユーザー・カタログ・プロパティは、指定された この引数が省略された場合は、メッセージ・カタログに指定されたクラス階層に関係なく、すべてのクラスがカレント・ディレクトリに生成されます。 |
|
解析し、有効性を検証しますが、クラスは生成しません。 |
|
生成されたJavaソース(クラス・ファイルと同じディレクトリに存在)を保持します。 |
|
エラーを無視します。 |
|
インターナショナライザ( |
|
Localizer(LogLocalizers 、TextLocalizersなど)を生成します。 |
|
現在のCLASSPATHを使用して生成されたJavaファイルをコンパイルします。生成されたクラスは、 -d オプションで識別されるディレクトリに配置されます。生成されたクラスは、ソースと同じディレクトリに配置されます。 通常は、コンパイルの途中でエラーが検出されると、クラス・ファイルやプロパティ・ファイルが作成されません。 i18ngen は異常な終了ステータスで終了します。 |
|
解析と有効性の検証のみを実行します。 |
|
デバッグ・モード。 |
|
|
注意: ユーティリティはどのディレクトリからでも実行できますが、ファイルがコマンド・ラインで指定される場合、ファイル・パスはカレント・ディレクトリに対する相対パスになります。 |
ログ・メッセージを翻訳し、必須のローカライズ済リソース・バンドルを生成します。
i18n_user.properties
ファイルがOracle CEPサーバー・クラス・パスにあることを確認します。
次のパッケージをOracle CEPアプリケーションにインポートします。
weblogic.i18n.logging
weblogic.logging
ログ・メッセージ・リソース・バンドルを含むアプリケーションをアセンブルおよびデプロイします。
Oracle CEPアプリケーションをアセンブルし、それをOracle CEPサーバー・ドメインにデプロイします。
この項では次について説明します:
24.5.1項「Oracle CEP IDE for Eclipseを使用してOracle CEPアプリケーションをデプロイする方法」
24.5.2項「Oracle CEP Visualizerを使用してOracle CEPアプリケーションをデプロイする方法」
詳細は、次を参照してください:
『Oracle Complex Event Processing管理者ガイド』のOracle CEPスタンドアロン・サーバー・ドメインへのアプリケーションのデプロイ方法に関する項
『Oracle Complex Event Processing管理者ガイド』のマルチサーバー・ドメインへのOracle CEPアプリケーションのデプロイに関する項
Oracle CEP IDE for Eclipseを使用して、Oracle CEPアプリケーションをデプロイします。
Oracle CEP IDE for Eclipseを使用して、スタンドアロンまたはマルチサーバー・ドメインのいずれかにアプリケーションをデプロイします。
注意: 外部ステージを使用する場合、24.2.3項「外部ステージによるアプリケーションのアセンブル」に示しているように、依存関係ステージのデプロイメントと再デプロイメントを管理するルールに注意してください。 |
Oracle CEP IDE for Eclipseを使用してOracle CEPアプリケーションをデプロイするには:
Oracle CEPアプリケーションのアセンブル
24.2項「Oracle CEPアプリケーションのアセンブル」を参照してください。
アプリケーションをデプロイするには、Oracle CEP IDE for Eclipseを使用します。
5.3.6項「Oracle CEPサーバーにアプリケーションをデプロイする方法」を参照してください。
Oracle CEPアプリケーションをOracle CEPサーバー・ドメインにデプロイする最も簡単な方法は、Oracle CEP Visualizerを使用することです。
Oracle CEP Visualizerを使用して、スタンドアロンまたはマルチサーバー・ドメインのいずれかにアプリケーションをデプロイできます。
注意: 外部ステージを使用する場合、24.2.3項「外部ステージによるアプリケーションのアセンブル」に示しているように、依存関係ステージのデプロイメントと再デプロイメントを管理するルールに注意してください。 |
Oracle CEP Visualizerを使用してOracle CEPアプリケーションをデプロイするには:
Oracle CEPアプリケーションのアセンブル
24.2項「Oracle CEPアプリケーションのアセンブル」を参照してください。
Oracle CEP Visualizerを起動します。
5.3.9項「Oracle CEP IDE for EclipseからOracle CEP Visualizerを起動する方法」を参照してください。
Oracle CEP Visualizerを使用してアプリケーションをデプロイします。
『Oracle Complex Event Processing Visualizerユーザーズ・ガイド』のアプリケーションのデプロイに関する項を参照してください。
次の手順では、デプロイヤ・コマンド・ライン・ユーティリティを使用してOracle CEPにアプリケーションをデプロイする方法について説明します。
デプロイヤを使用して、スタンドアロンまたはマルチサーバー・ドメインのいずれかにアプリケーションをデプロイできます。
詳細は、『Oracle Complex Event Processing管理者ガイド』のデプロイヤ・コマンド・ライン・リファレンスに関する項を参照してください。
注意: 外部ステージを使用する場合、24.2.3項「外部ステージによるアプリケーションのアセンブル」に示しているように、依存関係ステージのデプロイメントと再デプロイメントを管理するルールに注意してください。 |
デプロイヤ・ユーティリティを使用してOracle CEPアプリケーションをデプロイするには:
Oracle CEPアプリケーションのアセンブル
24.2項「Oracle CEPアプリケーションのアセンブル」を参照してください。
コマンド・ウィンドウを開き、『Oracle Complex Event Processingスタート・ガイド』の開発環境の設定に関する項の説明に従って、環境を設定します。
CLASSPATH
変数を更新して、ORACLE_CEP_HOME
/ocep_11.1/bin
ディレクトリにあるwlevsdeploy.jar JAR
ファイルを指定します。ORACLE_CEP_HOME
は、/oracle_cep
などの主なOracle CEPインストール・ディレクトリを示します。
注意: リモート・コンピュータ上でデプロイヤを実行する場合、『Oracle Complex Event Processing管理者ガイド』のリモートでのデプロイヤ・ユーティリティの実行に関する項を参照してください。 |
アプリケーションをデプロイするOracle CEPインスタンスでJettyが構成されていることを確認してください。
詳細は、『Oracle Complex Event Processing管理者ガイド』のOracle CEPで使用するJettyの構成に関する項を参照してください。
コマンド・ウィンドウで、次の構文を使用して、アプリケーションをインストールするデプロイヤ・ユーティリティを実行します(実際には、コマンドは1行に1つです)。
prompt> java -jar wlevsdeploy.jar -url http://host:port/wlevsdeployer -user user -password password -install application_jar_file
説明
host
は、Oracle CEPが実行しているコンピュータのホスト名です。
port
は、Oracle CEPがリスニングしているポート番号であり、デフォルト値は9002
です。
このポートは、Oracle CEPドメインを記述するDOMAIN_DIR
/config/config.xml
ファイルに指定されています。DOMAIN_DIR
は、ドメイン・ディレクトリです。
ポート番号は、<Netio>
要素の<Port>
子要素の値です。
<Netio> <Name>NetIO</Name> <Port>9002</Port> </Netio>
user
は、Oracle CEP管理者のユーザー名です。
password
は、Oracle CEP管理者のパスワードです。
application_jar_file
は、24.2項「Oracle CEPアプリケーションのアセンブル」の説明に従ってOSGiバンドルにアセンブルされたアプリケーションJARファイルです。このファイルは、デプロイヤ・ユーティリティを実行する同じコンピュータに置かれている必要があります。
たとえば、Oracle CEPはホストariel
上で実行中で、ポート9002
にリスニングしており、管理者のユーザー名とパスワードがwlevs/wlevs
であり、アプリケーションJARファイルmyapp_1.0.0.0.jar
が/applications
ディレクトリに置かれている場合、コマンドは次のようになります(実際には、コマンドは1行に1つです)。
prompt> java -jar wlevsdeploy.jar
-url http://ariel:9002/wlevsdeployer
-user wlevs -password wlevs -install /applications/myapp_1.0.0.0.jar
アプリケーションJARファイルが正常にインストールされ、初期化タスクが完了したら、Oracle CEPではアプリケーションが自動的に起動され、アダプタ・コンポーネントでは着信イベントのリスニングがただちに開始されます。
デプロイヤ・ユーティリティでは、アプリケーションJARファイルの再開、中断、更新、およびアンインストールや、マルチサーバー・ドメインの指定されたグループへのアプリケーションのデプロイなどの追加オプションが提供されます。詳細は、『Oracle Complex Event Processing管理者ガイド』のデプロイヤ・コマンド・ライン・リファレンスに関する項を参照してください。
注意: サーバーがマルチサーバー・ドメインの一部の場合(クラスタリングが有効の場合)は、グループへのデプロイのみが可能です。サーバーがスタンドアロン・サーバー・ドメインの一部の場合(つまり、クラスタリングが無効の場合)は、グループにはデプロイできません。詳細は、『Oracle Complex Event Processing管理者ガイド』のOracle CEPマルチサーバー・ドメイン管理の概要に関する項を参照してください。 |
Oracle CEPは、deployments.xml
ファイルを使用して、デプロイ済アプリケーションのOSGiバンドルのリストを内部的に維持します。このファイルは、DOMAIN_DIR/servername
ディレクトリにあります。DOMAIN_DIR
は、メイン・ドメイン・ディレクトリであり、アプリケーションのデプロイ先となるサーバー・インスタンスに対応します。servername
は、実際のサーバーです。このファイルの詳細は、付録B「デプロイメント・スキーマdeployment.xsd」を参照してください。この情報はあくまでも参考として示しています。deployments.xml
ファイルを手動で更新することはお薦めしません。