![]() ![]() ![]() ![]() |
「アプリケーション アセンブリ」という用語は、Java ファイルや XML コンフィグレーション ファイルなどのアプリケーションのコンポーネントを Oracle Complex Event Processing (Oracle CEP) にデプロイ可能な OSGI バンドルにパッケージ化するプロセスを表します。「アプリケーションのデプロイメント」という用語は、Oracle CEP ドメインでクライアント要求を処理するためにアプリケーションを利用できるようにするプロセスです。
Oracle CEP アセンブリおよびデプロイメントのコンテキストでは、アプリケーションは次のアーティファクトを含む OSGi バンドル JAR ファイルとして定義されます。
バンドルの動的なデプロイを計画している場合は、コンフィグレーション ファイルを OSGi バンドル JAR ファイルの META-INF/wlevs
ディレクトリに配置する必要があります。アプリケーションがすでにドメイン ディレクトリ内に存在する場合、コンフィグレーション ファイルは同じディレクトリに展開する必要があります。
EPN アセンブリ ファイルは、OSGi バンドル JAR ファイルの META-INF/spring
ディレクトリにあります。
MANIFEST.MF
ファイル。
OSGI バンドルは、インポートされたパッケージまたは必須のパッケージを指定することで依存関係を宣言します。また、パッケージをエクスポートすることで他のバンドルに機能を提供します。バンドルが他のバンドルに機能を提供する必要がある場合は、Export-Package
を使用して、指定されたパッケージを他のバンドルで参照できるようにする必要があります。エクスポートされないすべてのバンドルはバンドルの外部で使用できません。
このデプロイメント バンドルを作成する方法の詳細については、「Oracle CEP アプリケーションのアセンブル : 主な手順」を参照してください。
アプリケーションのアセンブルが完了したら、(wlevsdeploy.jar
ファイルにパッケージ化されている) Deployer ユーティリティを使用して、Oracle CEP ドメインに認識させることによりアプリケーションをデプロイします。詳細な手順については、「Oracle CEP アプリケーションのデプロイ : 主な手順」を参照してください。
アプリケーションが Oracle CEP にデプロイされると、コンフィグレーションされたアダプタでは金融データ フィードなどのコンフィグレーションされたイベントに対するリスンが直ちに開始されます。
注意 : | Oracle CEP アプリケーションは Spring Framework および OSGi Service Platform の上に構築され、それらの技術およびサービスを広範囲にわたり使用します。Spring および OSGi に関するリファレンスおよび概念情報へのリンクについては、「Spring および OSGi に関する追加情報」を参照してください。 |
Oracle CEP アプリケーションのアセンブルでは、アプリケーションを構成するアーティファクトを OSGi バンドル JAR ファイルにバンドルします。これらのアーティファクトには、コンパイル済みの Java クラス、アプリケーションのコンポーネント (プロセッサやアダプタなど) をコンフィグレーションする XML ファイル、EPN アセンブリ ファイル、および MANIFEST.MF
ファイルがあります。
簡略化のために、以下の手順では必要なアーティファクトを含む一時ディレクトリを作成し、その後でこの一時ディレクトリのコンテンツを jar ファイルに構築します。これは単に推奨される方法であり、この方法でアプリケーションをアセンブルすることは必須ではありません。
Spring および OSGi に関するリファレンスおよび概念情報へのリンクについては、「Spring および OSGi に関する追加情報」を参照してください。
注意 : | 以下に示すほとんどの手順を実行する、HelloWorld のサンプルのソース ディレクトリにあるサンプルの build.xml Ant ファイルを参照してください。build.xml ファイルは ORACLE_CEP_HOME \ocep_10.3\samples\source\applications\helloworld にあります。ORACLE_CEP_HOME は、d:\oracle_cep などの Oracle CEP メイン インストール ディレクトリです。 |
Oracle CEP アプリケーションをアセンブルするには :
output
などの空のディレクトリを作成します。prompt> mkdir output
output
ディレクトリに集めます。output/META-INF/spring
ディレクトリを作成します。output/META-INF/spring
ディレクトリにコピーします。
このファイルの詳細については、「EPN アセンブリ ファイルの作成」を参照してください。
output/META-INF/wlevs
ディレクトリを作成します。output/META-INF/wlevs
ディレクトリにコピーします。これらの XML ファイルは、「Oracle Complex Event Processing プログラミング モデルの概要」の説明に従って、アプリケーションの作成時に作成されます。MANIFEST.MF
ファイルを作成します。
「MANIFEST.MF ファイルの作成」を参照してください。
output
ディレクトリのコンテンツが含まれる JAR ファイルを作成します。デフォルトのマニフェスト ファイルではなく、必ず上記の手順で作成した MANIFEST.MF
ファイルを指定するようにします。
JAR ファイルには任意の名前を付けることができます。Oracle CEP のサンプルでは、Java パッケージの名前とバージョンを組み合わせた次のような JAR ファイル名を使用します。
com.bea.wlevs.example.helloworld_1.0.0.0.jar
サーバにデプロイされているバンドルを明確にするため、同じような命名規則を使用することを検討してください。
jar
タスクの使用に関する情報については、Apache Ant documentation を参照してください。jar
コマンドライン ツールの使用に関する情報については、J2SE documentation を参照してください。
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="2.0.0.0",
com.bea.wlevs.ede;version="2.0.0.0",
com.bea.wlevs.ede.api;version="2.0.0.0",
com.bea.wlevs.ede.impl;version="2.0.0.0",
org.osgi.framework;version="1.3.0",
org.springframework.beans.factory;version="2.0.5",
org.apache.commons.logging;version="1.1.0",
com.bea.wlevs.spring;version="2.0.0.0",
com.bea.wlevs.util;version="2.0.0.0",
org.springframework.beans;version="2.0.5",
org.springframework.util;version="2.0",
org.springframework.core.annotation;version="2.0.5",
org.springframework.beans.factory;version="2.0.5",
org.springframework.beans.factory.config;version="2.0.5",
org.springframework.osgi.context;version="1.0.0",
org.springframework.osgi.service;version="1.0.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="2.0.0.0",
com.bea.wlevs.configuration.application;version="2.0.0.0",
com.sun.xml.bind.v2;version="2.0.2"
Export-Package
ヘッダで指定されます。このヘッダは、1 つまたは複数のアプリケーション クラスを、デプロイされている他のアプリケーションと共有する必要がある場合にのみ指定します。一般的な例には、イベント タイプ JavaBean の共有などがあります。
可能な場合は、実装クラス自体の代わりにインタフェースのみが含まれるパッケージをエクスポートします。エクスポートされたクラスが他のアプリケーションで使用中である場合、クラスをエクスポートしているアプリケーションを完全にアンデプロイすることはできなくなります。
以下は HelloWorld のサンプルからの完全な MANIFEST.MF
ファイルです。アダプタのコンフィグレーションが拡張されています。
Manifest-Version: 1.0
Archiver-Version:
Build-Jdk: 1.5.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: 2.0.0.0
Bundle-ManifestVersion: 1
Bundle-Vendor: Oracle.
Bundle-Copyright: Copyright (c) 2006 by Oracle.
Import-Package: com.bea.wlevs.adapter.defaultprovider;version="2.0.0.0",
com.bea.wlevs.ede;version="2.0.0.0",
com.bea.wlevs.ede.impl;version="2.0.0.0",
com.bea.wlevs.ede.api;version="2.0.0.0",
org.osgi.framework;version="1.3.0",
org.apache.commons.logging;version="1.1.0",
com.bea.wlevs.spring;version="2.0.0.0",
com.bea.wlevs.util;version="2.0.0.0",
net.sf.cglib.proxy,
net.sf.cglib.core,
net.sf.cglib.reflect,
org.aopalliance.aop,
org.springframework.aop.framework;version="2.0.5",
org.springframework.aop;version="2.0.5",
org.springframework.beans;version="2.0.5",
org.springframework.util;version="2.0",
org.springframework.core.annotation;version="2.0.5",
org.springframework.beans.factory;version="2.0.5",
org.springframework.beans.factory.config;version="2.0.5",
org.springframework.osgi.context;version="1.0.0",
org.springframework.osgi.service;version="1.0.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="2.0.0.0",
com.bea.wlevs.configuration.application;version="2.0.0.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 ファイルのクラスが必ず見つかるようにするため、MANIFEST.MF
ファイルに Bundle-Classpath
ヘッダを追加してアプリケーション クラスパスを更新する必要があります。Bundle-Classpath
をクラスおよびリソースの検索場所となる JAR ファイル パス名のカンマ区切りのリストに設定します。バンドル自身を指定するには、ピリオド (.
) を使用します。例を示します。
Bundle-Classpath: ., commons-logging.jar, myExcitingJar.jar, myOtherExcitingJar.jar
ネイティブ ライブラリにアクセスする必要がある場合は、それらも JAR ファイルにパッケージ化し、MANIFEST.MF
ファイルの Bundle-NativeCode
ヘッダを使用して JAR の場所を指定する必要があります。
java
コマンドに -Xbootclasspath/a
オプションを指定することで、JAR ファイルをサーバの起動クラスパスに追加できます。
サーバの起動スクリプト名は startwlevs.cmd
(Windows) または startwlevs.sh
(UNIX) であり、スクリプトはドメイン ディレクトリ内のサーバ ディレクトリにあります。用意されているサンプル ドメインは ORACLE_CEP_HOME
/ocep_10.3/samples/domains
にあります。ユーザ ドメインは ORACLE_CEP_HOME
/user_projects/domains
にあります。ORACLE_CEP_HOME
は、d:\oracle_cep
などの Oracle CEP メイン インストール ディレクトリです。
wlevs_2.0.jar
ファイルを実行する java
コマンドに -Xbootclasspath/a
オプションを追加して、起動スクリプトを更新します。-Xbootclasspath/a
オプションにシステム全体でアクセスする必要があるサードパーティ JAR ファイルの完全なパス名を設定します。
たとえば、デプロイされているすべてのアプリケーションから e:\jars\myExcitingJAR.jar
という JAR ファイルにアクセスできるようにする場合は、起動スクリプトの java
コマンドを以下のように更新します (太字部分が更新箇所です)。
%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
以下の手順では、Deployer ユーティリティを使用してアプリケーションを Oracle CEP にデプロイする方法について説明します。ここでは、「Oracle CEP アプリケーションのアセンブル : 主な手順」の説明に従ってアプリケーションがアセンブルされていることを想定しています。
特にこの節で示すオプションのほかにユーティリティでサポートされているオプションなどを含む、Deployer ユーティリティの完全なリファレンス情報については、「Deployer コマンドライン リファレンス」を参照してください。Spring および OSGi に関するリファレンスおよび概念情報へのリンクについては、「Spring および OSGi に関する追加情報」を参照してください。
ORACLE_CEP_HOME
/ocep_10.3/bin
ディレクトリにある wlevsdeploy.jar JAR
ファイルを含むように CLASSPATH 変数を更新します。ORACLE_CEP_HOME
は、/oracle_cep
などの Oracle CEP メイン インストール ディレクトリです。注意 : | リモート コンピュータ上で deployer ユーティリティを実行する場合の手順については、「Deployer ユーティリティのリモート実行」を参照してください。 |
Oracle CEP のコンフィグレーションを参照してください。
Deployer
ユーティリティを実行します。prompt> java-jar wlevsdeploy.jar
-url http://host
:port
/wlevsdeployer -user user -password password -installapplication_jar_file
host
は、Oracle CEP を実行しているコンピュータのホスト名です。port
は Oracle CEP がリスンするポート番号であり、その値はデフォルトで 9002
です。このポートは、Oracle CEP ドメインを記述する config.xml
ファイルで指定されます。このファイルは DOMAIN_DIR
/config
ディレクトリにあります (DOMAIN_DIR
はドメイン ディレクトリを表します)。ポート番号は、<Netio>
要素の <Port>
子要素の値です。<Netio>
<Name>NetIO</Name>
<Port>9002</Port>
</Netio>
user
は Oracle CEP 管理者のユーザ名です。password
は Oracle CEP 管理者のパスワードです。application_jar_file
は、「Oracle CEP アプリケーションのアセンブル : 主な手順」の説明に従って OSGi バンドルにアセンブルされたアプリケーション JAR ファイルです。このファイルは Deployer
ユーティリティを実行するのと同じコンピュータに置かれている必要があります。
たとえば、Oracle CEP がホスト ariel
上で実行し、ポート 9002
をリスンし、管理者のユーザ名とパスワードが wlevs/wlevs
であり、アプリケーション JAR ファイル myapp_1.0.0.0.jar
が /applications
ディレクトリに置かれている場合、コマンドは以下のようになります。
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 ではアプリケーションが自動的に起動され、アダプタ コンポーネントでは着信イベントのリスンが直ちに開始されます。
Deployer ユーティリティでは、アプリケーション JAR ファイルの再開、中断、更新、およびアンインストールや、マルチサーバ ドメインの指定のグループへのアプリケーションのデプロイなどのオプションも提供されます。詳細については、「Deployer コマンドライン リファレンス」を参照してください。
Oracle CEP は、deployments.xml
ファイルを使用して、デプロイ済みアプリケーションの OSGi バンドルのリストを内部的に維持します。このファイルは DOMAIN_DIR/servername
ディレクトリにあります。DOMAIN_DIR
はメイン ドメイン ディレクトリであり、アプリケーションのデプロイ先となるサーバ インスタンスに対応します。servername
は実際のサーバです。このファイルについては、デプロイメント ファイルの XSD スキーマを参照してください。この情報はあくまでも参考として示しています。deployments.xml
ファイルを手動で更新することはお勧めしません。
![]() ![]() ![]() |