Oracle Event Processingアプリケーションをデプロイして実行するには、アプリケーション・ファイルをOSGiバンドルにアセンブルし、そのOSGiバンドルをOracle Event Processingサーバー上のドメインにデプロイします。デプロイされたアプリケーションは、デプロイ先のドメインでクライアント・リクエストを処理します。
アプリケーションのアセンブルおよびデプロイは、Oracle JDeveloperで、Oracle Event Processing Visualizerを使用して、手動で行うことができます。この章では、OSGiバンドルにラップされたアプリケーションを手動でアセンブルおよびデプロイする方法について説明します。
アプリケーションのアセンブルおよびデプロイ方法と、Oracle Event Processing Visualizerによるアプリケーション・ライブラリのデプロイおよび表示方法の詳細は、『Oracle Event Processingビジュアライザの使用』のアプリケーションのデプロイに関する項を参照してください。
この章の内容は次のとおりです。
OSGiバンドルには1つ以上のJARファイルが含まれ、そこにOracle Event Processingアプリケーションとそのサービスおよびリソース(依存関係)を定義するJavaクラス、パッケージ、ライブラリが含まれています。
アプリケーションのサービスおよびリソースは、他のバンドルで使用可能にできます。他のバンドル・アプリケーションによって使用されるサービスおよびリソースのみを含むOSGiバンドルを作成することもできます。たとえば、OSGiバンドルには、同じドメインで実行される他のアプリケーションによってアクセスされるJDBCドライバを含めることができます。
アプリケーションとそのリソースを含むOSGiバンドルがアプリケーション・バンドル、リソースのみを含むOSGiバンドルがアプリケーション・ライブラリ・バンドルです。
OSGiアプリケーション・バンドルに含まれるファイルは、次のとおりです。
イベント・タイプやイベントBeanなど、アプリケーション・コンポーネントを実装したコンパイル済Javaクラス・ファイル。
コンポーネント構成を含む1つ以上のOracle Event Processing構成ファイル。
構成ファイルは、デプロイするOSGiバンドルJARファイルのMETA-INF/wlevs
ディレクトリに置きます。例: /Oracle/Middleware/my_oep/user_projects/domains/<domain>/<server>/applications/<OSGi_Bundle_Symbolic_Name>
。
アプリケーションがすでにドメイン・ディレクトリに存在する場合、構成ファイルはアプリケーション・ファイルと同じディレクトリに展開する必要があります。
アプリケーションのすべてのコンポーネントと、各コンポーネントが相互にどのように接続されているかを記述したアセンブリ・ファイル。
OSGiバンドルJARファイルのMETA-INF/spring
ディレクトリに、アセンブリ・ファイルを置きます。
JARのコンテンツを記述するMANIFEST.MF
ファイル。このファイルを使用して、アプリケーションのリソースを他のバンドルで使用可能にできます。
次のディレクトリ構造に、OSGiアプリケーション・バンドルの構造を示します。
アプリケーションはインポートしたパッケージおよびライブラリに依存し、パッケージとライブラリは、同じドメインで実行されている他のアプリケーションと共有できます。
OSGiバンドルの依存関係は、MANIFEST-MF
で次のように指定します。
Import-Package
属性を使用して、インポートしたパッケージとライブラリをリストします。
Export-Package
属性を使用して、他のOSGiバンドルからアクセスする必要のあるパッケージをリストします。これらのパッケージは、アプリケーションOSGiバンドルにはバンドルされず、またバンドルとともにデプロイもされませんが、Oracle Event Processingサーバーのアプリケーション・ライブラリ・ディレクトリにデプロイされます。
アプリケーション・ライブラリは、同じドメインで実行されている他のアプリケーションでサービスとリソースを使用できるようにします。アプリケーション・ライブラリを使用すると、ドライバや外部ステージなどの機能をアプリケーションに追加できます。
外部ステージとは、別のOracle Event Processingアプリケーションにあるステージです。
アプリケーション・ライブラリは、組込みJARファイルとしてプロジェクトに追加することもできますが、OSGIアプリケーション・ライブラリを使用すると次のような利点があります。
ライブラリの更新バージョンをデプロイするなど、アプリケーション・アセンブリとメンテナンス活動が容易になります。
アーティファクトを再利用できます。
サーバー・ディスク領域使用量を削減できます。
Oracle Event Processingサーバーのアプリケーション・ライブラリは、ライブラリおよびライブラリ拡張ディレクトリにデプロイします。
デフォルトでは、Oracle Event Processingサーバー・ライブラリのディレクトリはDOMAIN_DIR/servername/modules
です。例:
/Oracle/Middleware/my_oep/user_projects/domains/mydomain/myserver/modules
Oracle Event Processingがライブラリ・ディレクトリのライブラリをロードするのは、ライブラリ拡張ディレクトリのコンポーネントより後、Oracle Event Processingアプリケーションより前です。ライブラリがJDBCドライバなどのドライバである場合、正しい順序でアクティブ化されるようにライブラリ拡張ディレクトリに格納する必要があります。
デフォルトでは、Oracle Event Processingサーバーのライブラリ拡張ディレクトリはDOMAIN_DIR/servername/modules/ext
です。次に例を示します。
/Oracle/Middleware/my_oep/user_projects/domains/mydomain/myserver/modules/ext
Oracle Event Processingは、まずOracle Event Processingサーバー・コア・モジュールと同時にライブラリ拡張ディレクトリのライブラリをロードします。ドライバをアクティブ化して先に古いドライバをオーバーライドする、または別のドライバにアクセスするには、ライブラリ拡張ライブラリにドライバを置きます。ライブラリがドライバでない場合は、ライブラリ・ディレクトリに置きます。
Oracle Event Processingサーバーは、Oracle Event Processingサーバーの起動時に次の順序でコンポーネントをロードします。
ライブラリ拡張ディレクトリのライブラリをロード。
ライブラリ・ディレクトリのライブラリをロード。
Oracle Event Processingアプリケーションをロード。
Oracle Event Processingサーバーは、ライブラリ名の字句順序に基づいて、ライブラリ拡張ディレクトリとライブラリ・ディレクトリの両方からライブラリをロードします。字句順序には、相対ディレクトリ名に加えてJARファイル名も含まれます。次に例を示します。
modules/a.jar
がmodules/b.jar
の前に開始されます。
字句順序で0/my.jar
はmy.jar
の前になるため、modules/0/my.jar
はmodule/my.jar
の前に開始されます。
このルールに従って、単にライブラリ拡張ディレクトリまたはライブラリ・ディレクトリのいずれかの適切に名付けられたサブディレクトリにJARファイルを整理することで、Oracle Event ProcessingサーバーがJARファイルをデプロイする順序を制御できます。
アプリケーションをデプロイするとすぐに、Oracle Event Processingサーバーはアプリケーション構成履歴を作成し、構成されたアダプタがイベントのリスニングを開始します。
Oracle CQLルールまたはOracle Event Processing高可用性アダプタ構成に対して行った構成の変更は、履歴に記録されます。
Oracle Event Processing Visualizerまたはwlevs.Admin
コマンド行ツールを使用して、これらの変更を表示し、ロールバックする(変更を元に戻す)ことができます。
変更履歴をファイルにエクスポートし、そのファイルを使用すると、実行時に行った変更でアプリケーション・ソースを更新できます。詳細は、次を参照してください。
『Oracle Event Processingビジュアライザの使用』のアプリケーション構成履歴の管理に関する項
『Oracle Event Processingの管理』の構成履歴の管理に関する項。
appCユーティリティは、アプリケーションを作成、検証、コンパイルできるコマンド行ツールです。
Oracle Event Processingプロジェクトを構成する各種のファイルを作成し、変更できます。appCツールはspring-wlevs-v12_1_3_0.xsd
、spring-beans.xsd
、spring-osgi.xsd
の各スキーマ・バージョンを基準にして検証を行います。このコマンドが機能するようにするには、JDKをインストールする必要があります(Javaコンパイラに依存するため)。
注:
appCツールは、複数のコンポーネント構成ファイルや複数のアセンブリ・ファイルに対応していません。その場合は、bundle.sh
スクリプトまたはOracle JDeveloperを使用してください。
appCツールは、構成ファイル、アセンブリ・ファイル、および作成されたOSGiバンドルを検証し、Oracle CQL検証と、OSGiバンドルが正常にデプロイされたことを確認します。
注:
現在、appCはスキーマ検証しか実行せず、詳細なセマンティック検証は実行しません。カスタム・アダプタ・プロバイダは検証されません。
appC.jar
ファイルは、/Oracle/Middleware/my_oep/bin
にあります。
構文
java -jar appC.jar -cmd [cmd option] -basedir <path to workspace> [arguments]
cmdオプション
-cmd
引数を使用して実行するコマンド・オプションを次の中から選択します。
buildAll
: テンプレートを作成してマニフェストを生成し、コンポーネント構成ファイルとアセンブリ・ファイルを検証します。
createTemplate
: 入力XMLファイルまたはテンプレートXMLファイルを使用してワークスペース・ファイル構造を作成します。
generateManifest
: 入力ソース・ファイルをコンパイルし、生成されたクラス・ファイルに基づいてOSGiマニフェスト・ファイルを生成します。
validate
: コンポーネント構成ファイルとアセンブリ・ファイルを、そのスキーマに照らして検証します。
引数
-cmd
: コマンド・オプションのいずれかを実行します。-basedir
でルート・ディレクトリを指定し、プロジェクト・ワークスペースのルートを指定します。
-help
: コマンド行のコマンド・オプションと引数について、ヘルプ情報を出力します。
-basedir
: appCユーティリティを使用する前に設定するプロジェクト・ワークスペースのルート。
-cp
: バンドル・クラスのコンパイルに使用するクラス・パス。
-config
: コンポーネント構成ファイルのフル・パス。
-context
: アセンブリ・ファイルのフル・パス。
-manifest
: オプションの入力マニフェスト・ファイル。マニフェスト・ファイルを指定しない場合は、appCユーティリティによって生成されます。
注:
マニフェストを生成するためにOracle Event Processingで使用される基礎となるBNDパッケージは、リフレクション用法を検索できません。
-name
: プロジェクトの名前(OSGiバンドル名)。
-destdir
: 出力JARファイルのディレクトリのフル・パス。デフォルトはbasedir
です。
-srcdir
: ソース・ルート・ディレクトリのフル・パス。
-excludedirs
: ソース・ツリーから除外するディレクトリの名前のカンマ区切りリスト。これらのディレクトリは、ソース・ディレクトリ・ルート(srcdir
)のサブディレクトリです。
例
入力ソース・ファイルをコンパイルし、OSGi MANIFEST.MF
ファイルを生成します。
java -jar appC.jar -cmd generateManifest -basedir
テンプレートを作成してMANIFEST.MF
ファイルを生成し、コンポーネント構成ファイルとアセンブリ・ファイルを検証します。
java -jar appC.jar -cmd buildALL -basedir
Oracle Event Processingにはbundler.sh
UNIXシェル・スクリプトが用意されており、これを使用するとサービスとパッケージを他のバンドルに提供するOSGiバンドルを手動でアセンブルできます。
たとえば、JDBCドライバをOSGiバンドルJARファイルでデプロイすると、他のOSGiアプリケーションで使用できるようになります。
注:
Windowsサポートはありません(bundler.cmd
はありません)。
bundle.sh
シェル・スクリプトは、ソースJARファイルを読み取り、ターゲットJARファイルを作成します。ターゲットJARファイルには、ソースJARの内容と、適切なバンドル関連エントリを指定したMANIFEST.MF
ファイルが含まれています。ソース・アーカイブで検出されたすべてのJavaパッケージは、ターゲット・バンドルにエクスポートされます。
bundler.sh
を使用すると、バンドル・アクティベータも生成できます。バンドル・アクティベータは、JARファイル内の1つ以上のクラスをインスタンス化し、インスタンス化された各オブジェクトをOSGiサービスとして登録します。この機能を利用して、コンポーネント・バンドルは実行時に特定のファクトリ・クラスの複数バージョンにアクセスし、これを操作できます。
OSGiバンドルを手動でアセンブルするには、次の手順に従います。
注:
次に記述したステップの多くを実行できるbuild.xml
Antファイルについては、HelloWorldサンプル・ソース・ディレクトリを参照してください。
build.xml
ファイルは、Oracle/Middleware/my_oep/ oep/examples/source/applications/helloworld
にあります。
アプリケーションまたはライブラリをOSGiバンドルに手動でバンドルするには、まずバンドルするファイルの準備と編成が必要です。簡略化のために、この手順では必要なアーティファクトを含む一時ディレクトリを作成し、その後でこの一時ディレクトリのコンテンツをJARファイルに構築します。これが推奨されるアプローチですが、この方法でアプリケーションをアセンブルすることは必須ではありません。
MANIFEST.MF
ファイルの構造およびコンテンツはOSGi Frameworkによって指定されます。ファイル内の多くのヘッダーの値はアプリケーションまたはビジネスに固有ですが、多くのヘッダーはOracle Event Processingで必須です。
特に、MANIFEST.MF
ファイルでは次のものが定義されます。
アプリケーション名: Bundle-Name
ヘッダーで指定されます。
シンボリック・アプリケーション名: Bundle-SymbolicName
ヘッダーで指定されます。
wlevs.Admin
ユーティリティやJMXサブシステムなど、多くのOracle Event Processingツールは、アプリケーションを参照する場合にバンドルのシンボリック名を使用します。
アプリケーションのバージョン: Bundle-Version
ヘッダーで指定されます。
インポートされたパッケージ: Import-Package
ヘッダーで指定されます。
Oracle Event Processingでは、少なくとも次のパッケージをインポートする必要があります。
Import-Package: com.bea.wlevs.adapter.defaultprovider;version="11.1.1", com.bea.wlevs.ede;version="11.1.1", com.bea.wlevs.ede.api;version="11.1.1", com.bea.wlevs.ede.impl;version="11.1.1", 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", com.bea.wlevs.util;version="11.1.1", 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"
エクスポートされたパッケージ: Export-Package
ヘッダーで指定されます。このヘッダーは、1つまたは複数のアプリケーション・クラスを、デプロイされている他のアプリケーションと共有する必要がある場合にのみ指定します。一般的な例には、イベントBeanの共有などがあります。
可能な場合は、実装クラス自体のかわりにインタフェースのみが含まれるパッケージをエクスポートします。エクスポートされたクラスが他のアプリケーションで使用中である場合、クラスをエクスポートしているアプリケーションを完全にアンデプロイすることはできません。
エクスポートされたパッケージはサーバー全体で利用されるため、必ずサーバー全体で一意の名前を使用します。
HelloWorldサンプル・アプリケーションのMANIFEST.MF
ファイルは、次のとおりです。
注:
Oracle WebLogic ServerコンテナBundle-ManifestVersion 2
にデプロイするには、Oracle Event Processingで次のMANIFEST.MF
設定が必要です。これは、Oracle Event ProcessingがOracle WebLogic ServerコンテナでFelixを使用しているためです。
Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Version: 1.0.0 Bundle-Vendor: Oracle Corporation Bundle-Copyright: Copyright (c) 2006-2009 by Oracle. Export-Package: com.bea.wlevs.event.example.helloworld;version="12.1.2", com.bea.wlevs.example.helloworld;version="12.1.2" Import-Package: com.bea.wlevs.configuration;version="12.1.2" com.bea.wlevs.ede.api;version="12.1.2", com.bea.wlevs.ede.impl;version="12.1.2", com.bea.wlevs.ede.spi;version="12.1.2", com.bea.wlevs.ede;version="12.1.2", com.bea.wlevs.management.spi;version="12.1.2", com.bea.wlevs.spring.support;version="12.1.2", com.bea.wlevs.spring;version="12.1.2", com.bea.wlevs.util;version="12.1.2", org.apache.commons.logging;version="1.1.0", org.springframework.beans.factory.config;version="2.5.6", org.springframework.beans.factory;version="2.5.6", org.springframework.beans;version="2.5.6", org.springframework.core.annotation;version="2.5.6", org.springframework.osgi.context;version="1.2.0", org.springframework.osgi.extensions.annotation;version="1.2.0", org.springframework.osgi.service;version="1.2.0", org.springframework.util;version="2.5.6" Bundle-Name: example.helloworld Bundle-Description: OCEP example helloworld Bundle-SymbolicName: helloworld
Oracle Event Processingアプリケーションの作成時には、既存のサードパーティJARファイル内のレガシー・ライブラリにアクセスする必要がある場合があります。このレガシー・コードへのアクセスを保証するには、次の方法があります。
Bundle-Classpath
Oracle Event ProcessingアプリケーションJARファイルにサードパーティJARファイルをパッケージ化することをお薦めします。JARファイルは、任意の場所に保存できます。
注:
このアプローチでは、JARファイルのロード順序をほとんど制御できず、依存関係の競合が発生する可能性があります。このため、Oracle Event Processingサーバー・アプリケーション・ライブラリの使用をお薦めします。
MANIFEST.MF
ファイルにBundle-Classpath
ヘッダーを追加し、アプリケーション・クラス・パスを更新することにより、Oracle Event ProcessingアプリケーションによるサードパーティJARファイルでのクラスの検出を保証する必要があります。Bundle-Classpath
をクラスおよびリソースの検索先となるJARファイル・パス名のカンマ区切りのリストに設定します。バンドル自身を指定するには、ピリオド(.
)を使用します。次に例を示します。
Bundle-Classpath: ., commons-logging.jar, myExcitingJar.jar, myOtherExcitingJar.jar
ネイティブ・ライブラリにアクセスする必要がある場合は、ネイティブ・ライブラリもJARファイルにパッケージ化し、MANIFEST.MF
ファイルのBundle-NativeCode
ヘッダーを使用してJARでのその場所を指定する必要があります。
オペレーティング・システム・パス
アプリケーション・ライブラリとしてパッケージすることを選択しないネイティブ・コード・ライブラリに依存するアプリケーション・ライブラリを作成できます。この場合、Oracle Event Processingサーバーのオペレーティング・システム・パス(bootclasspath
)にネイティブ・コード・ライブラリを配置できます。サーバーが起動すると、このネイティブ・コードを呼び出す必要があるライブラリ・バンドルがネイティブ・コードをロードします。
-Xbootclasspath
JDBCドライバなどのOracle Event Processingにデプロイされているすべてのアプリケーションで使用されるライブラリがJARファイルに含まれている場合は、サーバー・インスタンスの起動に使用するスクリプト内のjava
コマンドに-Xbootclasspath/a
オプションを指定することで、JARファイルをサーバーのブート・クラス・パスに追加できます。
注:
このアプローチでは、JARファイルのロード順序をほとんど制御できず、依存関係の競合が発生する可能性があります。Oracle Event Processingサーバー・アプリケーション・ライブラリの使用をお薦めします。詳細は、「オペレーティング・システム・パス」を参照してください。
サーバー起動スクリプト名は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_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
別のOracle Event Processingアプリケーションのステージを参照できます。別のアプリケーションのステージは、外部ステージと呼ばれます。外部ステージに依存しているアプリケーションをアセンブルするとき、クラス・パス依存関係に注意してください。図13-2に示したアプリケーションの依存関係グラフを考慮してください。
この例では、アプリケーションAはアプリケーションBに、アプリケーションBはアプリケーションCに、アプリケーションCはアプリケーションAに依存します。アプリケーションCは、MarketEvent
クラスを宣言してエクスポートします。アプリケーションAとBは、アプリケーションCによって提供されたMarketEvent
クラスをインポートします。この例では、OSGiバンドルAとBのMANIFEST.MF
ファイルにRequire-Bundle: C
が含まれている必要があります。
次の点に注意してください。
外部ステージを再デプロイする場合、そのアプリケーションまたは外部ステージに依存するすべての外部ステージを再デプロイする必要があります。
たとえば、アプリケーションBを再デプロイする場合、アプリケーションAを再デプロイする必要があります。
1つの外部ステージと他のステージの間にクラス・パスの依存関係がある場合、共有クラスを宣言し、エクスポートする外部ステージをデプロイするときは、共有クラスをインポートするすべての外部ステージを再デプロイする必要があります。
たとえば、アプリケーションCを再デプロイする場合、アプリケーションC (MarketEvent
)とクラス・パスの依存関係がアプリケーションAとBも再デプロイする必要があります。
ファイルの準備と編成が済んだら、bundle.sh
シェル・スクリプトを使用してそのファイルをOSGiバンドルにアセンブルし、アクティベータ・クラスを定義できます。bundle.sh
スクリプトは、/Oracle/Middleware/my_oep/
bin
ディレクトリにあります。
新しいJDBCドライバのアプリケーション・ライブラリをバンドルする場合、詳細は、『Oracle Event Processingの管理』のアプリケーション・ライブラリを使用したデータベース・ドライバに関する項を参照してください。
bundler.sh
スクリプトは、/Oracle/Middleware/my_oep/
bin
ディレクトリにあります。bundler.shコマンドの構文を次に示します。表13-1は、コマンド引数の説明です。
bundler -sourceJAR
-nameNAME
-versionVERSION
[-factoryCLASS
+] [-serviceINTERFACE
+] [-fragmenthostHOST
] [-stagedirPATH
] [-targetdirPATH
] [+importPACKAGE
|REGEX
+] [-imodsREGEX
;MODS
+] [-importPACKAGE
+] [+exportPACKAGE
|REGEX
+] [-emodsREGEX
;MODS
+] [-dimportPACKAGE
+] [-explode] [-verbose]
表13-1 bundler.shのコマンド行オプション
|
bundler.sh
スクリプトを実行して、OSGiバンドルを作成します。コマンドの場所、構文、引数を参照してください。
次のbundle.sh
コマンドは、bundler.sh
を使用してOracle JDBCドライバのOSGiバンドルを作成する方法を示しています。
bundler.sh \ -source C:\drivers\com.oracle.ojdbc14_11.2.0.jar \ -name oracle12c \ -version 12.1.3.0 \ -factory oracle.jdbc.xa.client.OracleXADataSource oracle.jdbc.OracleDriver \ -service javax.sql.XADataSource java.sql.Driver \ -targetdir C:\stage
-source
オプションには、C:\drivers
ディレクトリで見つかるOracleドライバであるJARファイルを指定します。生成されたバンドルJARの名前は、-name
と-version
引数(oracle10g_11.2.0.jar
)の連結で、C:\stage
ディレクトリに作成されます。バンドル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
-factory
オプションには、バンドルがアクティブ化されるときにOSGiサービスとしてインスタンス化および登録される2つのファクトリ・クラスがあることを指定します。表13-2に示すように、各ファクトリ・クラスは別々のオブジェクト・クラスにあります。
表13-2 ファクトリ・クラスおよびサービス・インタフェース
|
-service
オプションでは、name
プロパティをoracle12c
に設定し、version
プロパティの値を12.1.3.0
に設定してサービスを登録します。次の例は、サービス登録時のOracle Event Processingサーバーのログ・メッセージを示しています。
... INFO: [Jun 29, 2006 5:54:18 PM] Service REGISTERED: { version=12.1.3.0, name=oracle12c, objectClass=[ javax.sql.XADataSource ], service.id=23 } INFO: [Jun 29, 2006 5:54:18 PM] Service REGISTERED: { version=12.1.3.0, name=oracle12c, objectClass=[ java.sql.Driver ], service.id=24 } INFO: [Jun 29, 2006 5:54:18 PM] Bundle oracle11g STARTED ...
アプリケーション・ライブラリJARを該当するOracle Event Processingサーバー・アプリケーション・ディレクトリにコピーします。
バンドルがドライバの場合は、ライブラリ拡張ディレクトリに置きます。
ライブラリ拡張ディレクトリを参照してください。
バンドルがドライバでない場合は、ライブラリ・ディレクトリに置くことができます。
ライブラリ・ディレクトリを参照してください。
Oracle Event Processingサーバーを停止および開始します。
『Oracle Event Processingの管理』のサーバーの起動と停止に関する項を参照してください。
Oracle Event ProcessingアプリケーションまたはライブラリをOSGiバンドルにアセンブルした後、それをOracle Event Processingサーバー・ドメインにデプロイします。アプリケーションのデプロイには、Oracle JDeveloper、Oracle Event Processing Visualizerおよびデプロイヤ・ユーティリティを使用できます。
この項では、デプロイヤ・ユーティリティの使用方法について説明します。
デプロイヤ・ユーティリティを使用して、スタンドアロンまたはマルチサーバー・ドメインのいずれかにアプリケーションをデプロイできます。グループへのデプロイが可能なのは、サーバーがマルチサーバー・ドメインの一部の場合(クラスタリングが有効の場合)のみです。サーバーがスタンドアロン・サーバー・ドメインの一部の場合(クラスタリングが無効の場合)、グループにはデプロイできません。
Oracle Event Processingは、deployments.xml
ファイルを使用して、デプロイ済のOSGiバンドルのリストを内部的に維持します。このファイルは、DOMAIN_DIR/servername
ディレクトリにあります。DOMAIN_DIR
は、メイン・ドメイン・ディレクトリであり、アプリケーションのデプロイ先となるサーバー・インスタンスに対応します。servername
は、実際のサーバーです。この情報はあくまでも参考として示しています。deployments.xml
ファイルを手動で更新することはお薦めしません。
始める前に
アプリケーションをデプロイするOracle Event ProcessingインスタンスでJettyが構成されていることを確認してください。詳細は、『Oracle Event Processingの管理』のアプリケーション・デプロイメントに関する項を参照してください。
コマンド・ウィンドウを開き、wlevsdeploy.jar JAR
ファイルを含むようにCLASSPATH
変数を更新します。このファイルは、次のディレクトリにあります。デプロイヤ・ユーティリティは、JARファイルの中にあります。
/Oracle/Middleware/my_oep/bin
デプロイヤ・ユーティリティを使用してOSGiバンドルをデプロイします。
OSGiバンドルが正常にインストールされ、初期化タスクが完了したら、Oracle Event Processingでアプリケーションが起動され、アダプタ・コンポーネントで着信イベントがリスニングされます。
bundle.shによるOSGiバンドルのアセンブルの説明に従って、OSGiバンドルをアセンブルします。
コマンド・ウィンドウを開き、次のようにしてデプロイヤ・ユーティリティを実行します。すべて1行で記述してください。
prompt> java -jar wlevsdeploy.jar -url http://host:port/wlevsdeployer -user user -password password -install application_jar_file
host
: Oracle Event Processingサーバーが実行されているコンピュータの名前。
port
: Oracle Event Processingがリスニングするポート番号。デフォルト値は9002
です。このポートは、Oracle Event Processingドメインが記述されているDOMAIN_DIR
/config/
ファイルに指定されています。ポート番号は、ファイルの<Netio>
要素の<Port>
子要素の値です。
<Netio> <Name>NetIO</Name> <Port>9002</Port> </Netio>
user
: Oracle Event Processing管理者のユーザー名。
password
: Oracle Event Processing管理者のパスワード。
application_jar_file
: OSGiバンドル。OSGiバンドルは、デプロイヤ・ユーティリティが実行される同じコンピュータに置かれている必要があります。たとえば、Oracle Event Processingはホストariel
上で実行中で、ポート9002
にリスニングしており、管理者のユーザー名とパスワードがwlevs/wlevs
であり、アプリケーションJARファイルmyapp_1.0.0.0.jar
が/applications
ディレクトリに置かれている場合、コマンドは次のようになります。すべて1行で記述してください。
prompt> java -jar wlevsdeploy.jar
-url http://ariel:9002/wlevsdeployer
-user wlevs -password wlevs -install /applications/myapp_1.0.0.0.jar
デプロイヤ・ユーティリティでは、OSGiバンドルの再開、中断、更新、アンインストールや、マルチサーバー・ドメインの指定されたグループへのOSGiバンドルのデプロイなどのためにここで記述する内容について、追加オプションが用意されています。詳細は、『Oracle Event Processingの管理』のデプロイヤ・ユーティリティを使用したデプロイメント・コマンドに関する項を参照してください。