ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Event Processing開発者ガイド
11gリリース1 (11.1.1.7) for Eclipse
B61654-06
  目次へ移動
目次

前
 
次
 

23 Oracle Event Processingアプリケーションのアセンブルとデプロイ

この章では、Oracle CEP IDE for EclipseおよびOracle Event Processing Visualizerを使用して、Oracle Event Processingアプリケーションを手動でアセンブルおよびデプロイする方法について説明します。

この章の内容は次のとおりです。

23.1 アプリケーションのアセンブリおよびデプロイメントの概要

アプリケーション・アセンブリという用語は、JavaファイルやXML構成ファイルなどのアプリケーションのコンポーネントをOracle Event Processingにデプロイ可能なOSGIバンドルにパッケージ化するプロセスを表します。アプリケーションのデプロイメントという用語は、Oracle Event Processingドメインでクライアント・リクエストを処理するためにアプリケーションを利用できるようにする処理を表します。

この項では次について説明します:


注意:

Oracle Event ProcessingアプリケーションはSpring FrameworkおよびOSGi Service Platformの上に構築され、それらの技術およびサービスを広範囲にわたり使用します。SpringおよびOSGiに関するリファレンスおよび概念情報へのリンクは、付録A「SpringおよびOSGiに関する追加情報」を参照してください。


23.1.1 アプリケーション

Oracle Event Processingアセンブリおよびデプロイメントのコンテキスト内で、アプリケーションは次のアーティファクトを含むOSGiバンドル(http://www2.osgi.org/javadoc/r4/org/osgi/framework/Bundle.htmlを参照)JARファイルとして定義されます。

  • アダプタ、アダプタ・ファクトリ、ビジネス・ロジックを格納したPOJOなど、アプリケーションのいくつかのコンポーネントを実装するコンパイル済Javaクラス・ファイル。

  • アプリケーションのコンポーネントを構成する1つまたは複数のOracle Event Processing構成XMLファイル。イベント・プロセッサは構成ファイルを必要とする唯一のタイプのコンポーネントです。他のすべてのコンポーネント(アダプタおよびストリーム)では、コンポーネントのデフォルトの構成が十分に機能的である場合、構成ファイルは必要ありません。すべての構成ファイルを1つのファイルにまとめたり、または個々のコンポーネントの構成を固有のファイルに分割したりできます。

    バンドルを動的にデプロイする場合は、構成ファイルはOSGiバンドルJARファイルのMETA-INF/wlevsディレクトリに格納されている必要があります。アプリケーションがすでにドメイン・ディレクトリ内に存在する場合、構成ファイルは同じディレクトリに抽出する必要があります。

  • アプリケーションのすべてのコンポーネントと、各コンポーネントが相互にどのように接続されているかを記述したEPNアセンブリ・ファイル。

    EPNアセンブリ・ファイルは、OSGiバンドルJARファイルのMETA-INF/springディレクトリにある必要があります。

  • JARファイルのコンテンツを記述するMANIFEST.MFファイル。

23.1.2 アプリケーションの依存関係

OSGIバンドルは、インポートされたパッケージまたは必須のパッケージを指定することで依存関係を宣言します。また、パッケージをエクスポートすることで他のバンドルに機能を提供します。バンドルが他のバンドルに機能を提供する必要がある場合は、Export-Packageを使用して、指定されたパッケージを他のバンドルで参照できるようにする必要があります。エクスポートされないすべてのバンドルはバンドルの外部で使用できません。

設計時に依存関係を定義します。

この項では次について説明します:

詳細は、次を参照してください:

23.1.2.1 プライベート・アプリケーションの依存関係

一部の依存関係は、アプリケーションにバンドルされ、アプリケーションとデプロイされるコンポーネントで満たされます。たとえば、標準JARファイルまたはプロパティ・ファイルなどです。

詳細は、次を参照してください:

23.1.2.2 共有アプリケーションの依存関係

一部の依存関係は、Oracle Event Processingサーバー・アプリケーション・ライブラリのディレクトリにデプロイされたコンポーネントで満たされます。これらのコンポーネントは、特定のアプリケーションにバンドルされたり、特定のアプリケーションとデプロイされることはありません。かわりに、アプリケーション・ライブラリからエクスポートされる1つ以上のパッケージをインポートするすべてのアプリケーションにアクセスできます。

詳細は、次を参照してください:

23.1.2.3 ネイティブ・コードの依存関係

場合によっては、パッケージをアプリケーション・ライブラリとして選択できないネイティブ・コード・ライブラリに依存するアプリケーション・ライブラリを作成する必要があります。

その場合、Oracle Event Processingサーバーの起動時にネイティブ・コード・ライブラリをオペレーティング・システム・パス(bootclasspath)に置き、ネイティブ・コード・ライブラリが、このネイティブ・コードを呼び出す必要のあるライブラリ・バンドルによってロードされるようにします。

詳細は、次を参照してください:

23.1.3 アプリケーション・ライブラリ

Oracle Event Processingアプリケーション・ライブラリを使用して、共有ライブラリを便利な場所にデプロイし、Oracle Event Processingサーバーの起動時にデプロイする共有ライブラリの順序を完全に制御できます。

アプリケーション・ライブラリは、コンパイル済のJavaクラスおよびその他の必須アーティファクトのJavaアーカイブを含むOSGiバンドルです。

アプリケーション・ライブラリは、ドライバまたは外部ステージ(他のダウンストリーム・アプリケーションで役に立つ一部または完全なOracle Event Processingアプリケーション)などの様々な目的で使用することができます。

プロジェクトに簡単な組込みJARファイルとしてライブラリを追加することができますが、アプリケーション・ライブラリを使用するには、次のいくつかの利点があります。

  • ライブラリの更新バージョンをデプロイするなど、アプリケーション・アセンブリとメンテナンス活動を簡単化します。

  • 再利用を促進します。

  • サーバー・ディスク領域使用量を削減します。

次のOracle Event Processingサーバー・ディレクトリのいずれかにアプリケーション・ライブラリをデプロイします。

詳細は、次を参照してください:

23.1.3.1 ライブラリ・ディレクトリ

デフォルトでは、Oracle Event Processingサーバー・ライブラリ・ディレクトリは次のとおりです。

DOMAIN_DIR/servername/modules

説明:

  • DOMAIN_DIR: /oracle_cep/user_projects/domains/mydomainなどのドメイン・ディレクトリ

  • servername: myserverなどのサーバー・インスタンス

例:

/oracle_cep/user_projects/domains/mydomain/myserver/modules

このディレクトリ内のライブラリは、ライブラリ拡張ディレクトリの後、Oracle Event Processingアプリケーションの前にデプロイされます。

ライブラリがドライバ(JDBCドライバなど)である場合、23.1.3.2項「ライブラリ拡張ディレクトリ」に従って、ライブラリ拡張ディレクトリに格納する必要があります。

アプリケーション・ライブラリ・ディレクトリ・パスのルートを構成するには、23.3.1項「Oracle Event Processing IDE for Eclipseを使用したアプリケーション・ライブラリのディレクトリの定義方法」を参照してください。

23.1.3.2 ライブラリ拡張ディレクトリ

デフォルトでは、Oracle Event Processingサーバー・ライブラリ拡張ディレクトリは次のとおりです。

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 Event Processingサーバー・モジュールとともにデプロイされます。

ライブラリがドライバ(JDBCドライバなど)である場合、正しい順序でアクティブ化されるようにライブラリ拡張ディレクトリに格納する必要があります。たとえば、以前のバージョンを新しいバージョンでオーバーライドしたり、または代替ドライバへのアクセスを提供するために必要です。詳細は、『Oracle Fusion Middleware Oracle Event Processing管理者ガイド』の別のデータベース・ドライバまたはドライバのバージョンへのアクセスの構成に関する項を参照してください。

ライブラリがドライバではない場合、23.1.3.1項「ライブラリ・ディレクトリ」に従って、ライブラリ・ディレクトリに格納することができます。

アプリケーション・ライブラリ拡張ディレクトリ・パスのルートを構成するには、23.3.1項「Oracle Event Processing IDE for Eclipseを使用したアプリケーション・ライブラリのディレクトリの定義方法」を参照してください。

23.1.3.3 アプリケーション・ライブラリの作成

Oracle Event Processingでは、OSGiバンドル・ラッパーを任意のJavaアーカイブについて作成する場合に使用するbundler.shユーティリティを提供しています。作成されたバンドルJARは、OSGiコンテナにデプロイされる場合があります。ここでは、バンドル内にあるJavaパッケージ/クラスが他のデプロイ済バンドルにインポートされ、利用されます。使用例としては、サードパーティのJDBCドライバのパッケージなどがあります。

ユーティリティでは、指定のソースJARファイルが読み取られ、ソースJARの内容と、適切なバンドル関連エントリが指定されているマニフェストを含むターゲットJARファイルが作成されます。ソース・アーカイブで検出されたすべてのJavaパッケージは、ターゲット・バンドルによりエクスポートされます。

オプションで、JAR内の1つ以上のクラスをインスタンス化し、各オブジェクトをOSGiサービスとして登録するバンドル・ アクティベータを生成することができます。この機能では、コンポーネント・バンドルで実行時に特定のファクトリ・クラスの複数バージョンにアクセスし、これを操作することができます。

手動でアクティベータ実装を構成する場合は、Oracle Event Processing IDE for Eclipseを使用することができます。

詳細は、次を参照してください:

23.1.4 デプロイメントおよびデプロイメント順序

アプリケーションをアセンブルした後、適切なデプロイメント・ツールを使用してOracle Event Processingドメインに認識されるようにしてアプリケーションをデプロイします。手順の詳細は、23.5項「Oracle Event Processingアプリケーションのデプロイ」を参照してください。

Oracle Event Processingサーバーは、Oracle Event Processingサーバー起動時に次の順序でコンポーネントをデプロイします。

  1. ライブラリをライブラリ拡張ディレクトリにデプロイします(DOMAIN_DIR/servername/modules/extディレクトリ)。

  2. ライブラリをライブラリ・ディレクトリにデプロイします(DOMAIN_DIR/servername/modulesディレクトリ)。

  3. Oracle Event Processingアプリケーションのデプロイ

Oracle Event Processingサーバーは、ライブラリ名の字句順序に基づいて、ライブラリ拡張ディレクトリとライブラリ・ディレクトリの両方からライブラリをデプロイします。字句順序には、相対ディレクトリ名に加えてJARファイル名も含まれます。

例:

  • modules/a.jarmodules/b.jarの前に開始されます。

  • 字句順序で0/my.jarmy.jarの前になるため、modules/0/my.jarmodule/my.jarの前に開始されます。

このルールに従って、単にライブラリ拡張ディレクトリまたはライブラリ・ディレクトリのいずれかの適切に名付けられたサブディレクトリにJARファイルを整理することで、Oracle Event ProcessingサーバーがJARファイルをデプロイする順序を制御することができます。

アプリケーションがOracle Event Processingにデプロイされると、構成されたアダプタでは金融データ・フィードなどの構成されたイベントに対するリスニングがただちに開始されます。

詳細は、23.1.3項「アプリケーション・ライブラリ」を参照してください。

23.1.5 構成履歴の管理

アプリケーションをOracle Event Processingサーバーにデプロイすると、Oracle Event Processingサーバーはアプリケーションの構成履歴を作成します。ルールまたはOracle Event Processing高可用性アダプタの構成を変更すると、この履歴に記録されます。Oracle Event Processing Visualizerまたはwlevs.Adminツールを使用して、これらの変更を表示し、ロールバックする(変更を元に戻す)ことができます。

詳細は、次を参照してください:

  • 『Oracle Fusion Middleware Oracle Event Processing Visualizerユーザーズ・ガイド』の構成履歴の管理に関する項

  • 『Oracle Fusion Middleware Oracle Event Processing管理者ガイド』の構成履歴の管理コマンドに関する項

23.2 Oracle Event Processingアプリケーションのアセンブル

Oracle Event Processingアプリケーションのアセンブルとは、http://www2.osgi.org/javadoc/r4/org/osgi/framework/Bundle.htmlで説明されているように、アプリケーションを構成するアーティファクトをOSGiバンドルJARファイルにバンドリングすることを意味します。アーティファクトには、次のものが含まれます。

SpringおよびOSGiに関するリファレンスおよび概念情報へのリンクは、付録A「SpringおよびOSGiに関する追加情報」を参照してください。

この項では次について説明します:

23.2.1 Oracle Event Processing IDE for Eclipseを使用したOracle Event Processingアプリケーションのアセンブル

Oracle Event Processing IDE for Eclipseを使用して、Oracle Event Processingアプリケーションを容易にアセンブルできます。

詳細は、次を参照してください:

アプリケーションが外部ステージに依存している場合は、23.2.3項「外部ステージによるアプリケーションのアセンブル」を参照してください。

23.2.2 Oracle Event Processingアプリケーションの手動アセンブル

オプションで、Oracle Event Processingアプリケーションを手動でアセンブルできます。

簡略化のために、次の手順では必要なアーティファクトを含む一時ディレクトリを作成し、その後でこの一時ディレクトリのコンテンツをjarファイルに構築します。これは単に推奨される方法であり、この方法でアプリケーションをアセンブルすることは必須ではありません。


注意:

次に記述したステップの多くを実行できるbuild.xml Antファイルについては、HelloWorldサンプル・ソース・ディレクトリを参照してください。build.xmlファイルは、ORACLE_CEP_HOME\ocep_11.1\samples\source\applications\helloworldにあり、ORACLE_CEP_HOMEd:\oracle_cepなど、主なOracle Event Processingインストール・ディレクトリを示します。


Oracle Event Processingアプリケーションを手動でアセンブルする手順:

  1. コマンド・ウィンドウを開き、3.2項「開発環境の設定」の説明に従って、環境を設定します。

  2. outputなどの空のディレクトリを作成します。

    prompt> mkdir output
    
  3. すべてのアプリケーションJavaファイルをoutputディレクトリにコンパイルします。

  4. output/META-INF/springディレクトリを作成します。

  5. アプリケーションのコンポーネントと各コンポーネントの接続が記述されたEPNアセンブリ・ファイルをoutput/META-INF/springディレクトリにコピーします。

    このファイルの詳細は、5.3項「EPNアセンブリ・ファイルの作成」を参照してください。

  6. output/META-INF/wlevsディレクトリを作成します。

  7. アプリケーションのコンポーネント(プロセッサやアダプタなど)を構成するXMLファイルをoutput/META-INF/wlevsディレクトリにコピーします。

  8. バンドルに関する説明情報を含むMANIFEST.MFファイルを作成します。

    23.2.2.1項「MANIFEST.MFファイルの作成」を参照してください。

  9. Oracle Event ProcessingアプリケーションからサードパーティJARファイルにアクセスする必要がある場合は、23.2.2.2項「サードパーティJARファイルへのアクセス」を参照してください。

  10. outputディレクトリのコンテンツを含むJARファイルを作成します。

    デフォルト・マニフェスト・ファイルではなく、必ず前のステップで作成したMANIFEST.MFファイルを指定します。

    JARファイルには任意の名前を付けることができます。Oracle Event Processingのサンプルでは、Javaパッケージの名前とバージョンを組み合わせた次のようなJARファイル名を使用します。

    com.bea.wlevs.example.helloworld_1.0.0.0.jar
    

    サーバーにデプロイされているバンドルを明確にするため、同じようなネーミング・ルールを使用することを検討してください。

    jarタスクの使用方法の詳細は、http://ant.apache.org/manual/Tasks/jar.htmlのApache Antドキュメントを参照し、jarコマンド・ライン・ツールの使用方法の詳細は、http://download.oracle.com/javase/6/docs/technotes/tools/windows/jar.htmlのJava SEドキュメントを参照してください。

  11. アプリケーションが外部ステージに依存している場合は、23.2.3項「外部ステージによるアプリケーションのアセンブル」を参照してください。

23.2.2.1 MANIFEST.MFファイルの作成

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"
    

    アダプタの構成を拡張した場合は、次のパッケージもインポートする必要があります。

     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",
     com.bea.wlevs.configuration.application;version="11.1.1",
     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",
 com.bea.wlevs.ede;version="11.1.1",
 com.bea.wlevs.ede.impl;version="11.1.1",
 com.bea.wlevs.ede.api;version="11.1.1",
 org.osgi.framework;version="1.3.0",
 org.apache.commons.logging;version="1.1.0",
 com.bea.wlevs.spring;version="11.1.1",
 com.bea.wlevs.util;version="11.1.1",
 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",
 com.bea.wlevs.configuration.application;version="11.1.1",
 com.sun.xml.bind.v2;version="2.0.2"
Bundle-Name: example.helloworld
Bundle-Description: WLEvS example helloworld
Bundle-SymbolicName: helloworld

23.2.2.2 サードパーティJARファイルへのアクセス

Oracle Event Processingアプリケーションの作成時には、既存のサードパーティJARファイル内のレガシー・ライブラリにアクセスする必要がある場合があります。このレガシー・コードへのアクセスを保証する2つの方法があります。

23.2.2.2.1 Bundle-Classpathを使用したサードパーティJARファイルへのアクセス

Oracle Event ProcessingアプリケーションJARファイルにサードパーティJARファイルをパッケージ化することをお薦めします。JARファイルは、任意の場所に保存できます。


注意:

このアプローチでは、JARファイルのロード順序をほとんど制御できず、依存関係の競合が発生する可能性があります。このため、Oracle Event Processingサーバー・アプリケーション・ライブラリの使用をお薦めします。詳細は、23.1.3項「アプリケーション・ライブラリ」を参照してください。


ただし、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でのその場所を指定する必要があります。

詳細は、5.7.1項「Oracle Event Processingプロジェクトへの標準JARファイルの追加方法」を参照してください。

23.2.2.2.2 -Xbootclasspathを使用したサードパーティJARファイルへのアクセス

JDBCドライバなどのOracle Event Processingにデプロイされているすべてのアプリケーションで使用されるライブラリがJARファイルに含まれている場合は、サーバー・インスタンスの起動に使用するスクリプト内のjavaコマンドに-Xbootclasspath/aオプションを指定することで、JARファイルをサーバーのブート・クラスパスに追加できます。


注意:

このアプローチでは、JARファイルのロード順序をほとんど制御できず、依存関係の競合が発生する可能性があります。このため、Oracle Event Processingサーバー・アプリケーション・ライブラリの使用をお薦めします。詳細は、23.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 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 

23.2.3 外部ステージによるアプリケーションのアセンブル

外部ステージに依存しているアプリケーションをアセンブルするとき、クラスパス依存関係に注意してください。図23-1に示したアプリケーションの依存関係グラフを考慮してください。

図23-1 外部ステージ依存関係グラフ

図23-1の説明が続きます
「図23-1 外部ステージ依存関係グラフ」の説明

この例では、アプリケーションAはアプリケーションBに、アプリケーションBはアプリケーションCに、アプリケーションCはアプリケーションAに依存します。アプリケーションCは、Java Beanイベント・タイプMarketEvent用のイベント・タイプ・クラスを宣言し、エクスポートします。アプリケーションAとBは、アプリケーションCによって提供されたMarketEventクラスをインポートします。

次の点に注意してください。

  • 外部ステージを再デプロイする場合、そのアプリケーションまたは外部ステージに依存するすべての外部ステージを再デプロイする必要があります。

    たとえば、アプリケーションBを再デプロイする場合、アプリケーションAも再デプロイする必要があります。

  • 1つの外部ステージと他のステージの間にクラスパスの依存関係がある場合、共有クラスを宣言し、エクスポートする外部ステージをデプロイするときは、共有クラスをインポートするすべての外部ステージを再デプロイする必要があります。

    たとえば、アプリケーションCを再デプロイする場合、アプリケーションC(MarketEvent)とクラスパスの依存関係がアプリケーションAとBも再デプロイする必要があります。

詳細は、次を参照してください:

23.2.4 カスタム・アダプタまたはイベントBeanの固有ハンドルでのアセンブル

通常、カスタム・アダプタおよびイベントBeanは、プロセッサ、ストリームおよびビジネス・ロジックPOJOなど、他のコンポーネントを含む1つのアプリケーションJARファイルにバンドルされます。ただし、アダプタを固有のJARファイルにバンドルし、他のアプリケーション・バンドルでアダプタを参照する必要がある場合もあります。

これは、たとえば、2つの異なるアプリケーションが同じデータ・フィード・プロバイダからのデータを読み込み、両方のアプリケーションが同じイベント・タイプを使用する場合に役立ちます。この場合、2つの異なるアプリケーションで実装が重複するよりも、同一のアダプタおよびイベント・タイプの実装を共有するほうが有意義です。

異なるバンドルでアダプタおよびアダプタを使用するアプリケーションを構成する方法には、実際の違いはなく、構成を配置する場所が異なります。

この項では次について説明します:

23.2.4.1 固有のバンドルでのカスタム・アダプタのアセンブル方法

カスタム・アダプタとその依存クラスは固有のバンドルにアセンブルできます。

カスタム・アダプタを固有のバンドルにアセンブルする手順:

  1. カスタム・アダプタのJavaクラス、カスタム・アダプタ・ファクトリのJavaクラス、およびオプションで、アダプタが着信データを変換するイベント・タイプのJavaクラスのみが含まれているOSGIバンドルを作成します。

    この手順では、バンドルはGlobalAdapterと呼ばれます。

  2. GlobalAdapterバンドルのEPNアセンブリ・ファイルで:

  3. 23.5項「Oracle Event Processingアプリケーションのデプロイ」の説明に従って、GlobalAdapterバンドルをアセンブルおよびデプロイします。

  4. カスタム・アダプタに使用するプリケーションのEPNアセンブリ・ファイルで、15.5.1項「EPNアセンブリ・ファイルでのカスタム・アダプタの構成」の説明に従って、カスタム・アダプタ・コンポーネントを宣言します。

    引き続き、provider属性を使用してOSGI登録済アダプタ・ファクトリを指定しますが、この場合、OSGIはアダプタを実際に使用するEPNアセンブリ・ファイルとは別の(GlobalAdapterバンドルの)EPNアセンブリ・ファイルで登録されます。

  5. GlobalAdapterバンドルのイベント・タイプをエクスポートした場合は、それを使用するアプリケーションに明示的にインポートする必要があります。

    これは、23.2.2.1項「MANIFEST.MFファイルの作成」の説明に従って、アプリケーション・バンドルのMANIFEST.MFファイルでImport-Packageヘッダーにパッケージを追加して実行します。

23.2.4.2 固有のバンドルでのイベントBeanのアセンブル方法

カスタム・イベントBeanとその依存クラスは固有のバンドルにアセンブルできます。

カスタム・イベントBeanを固有のバンドルにアセンブルする手順:

  1. カスタム・イベントBean Javaクラスおよびカスタム・イベントBeanファクトリJavaクラスのみを含むOSGIバンドルを作成します。

    この手順では、バンドルはGlobalEventBeanと呼ばれます。

  2. GlobalEventBeanバンドルのEPNアセンブリ・ファイルで:

    • 16.3.1.3項「イベントBeanファクトリの作成」の説明に従って、カスタム・イベントBeanファクトリをOSGIサービスとして登録します。

    • wlevs:event-bean要素を使用してカスタム・イベントBeanコンポーネントを宣言しないでください。

      この要素は、イベントBean実際に使用するアプリケーション・バンドルのEPNアセンブリ・ファイルで使用します。

  3. 23.5項「Oracle Event Processingアプリケーションのデプロイ」の説明に従って、GlobalEventBeanバンドルをアセンブルおよびデプロイします。

  4. カスタム・イベントBeanに使用するプリケーションのEPNアセンブリ・ファイルで、16.3.1.3項「イベントBeanファクトリの作成」の説明に従って、カスタム・イベントBeanコンポーネントを宣言します。

    引き続き、provider属性を使用してOSGI登録済カスタム・イベントBeanファクトリを指定しますが、この場合、OSGIはアダプタを実際に使用するEPNアセンブリ・ファイルとは別の(GlobalEventBeanバンドルの)EPNアセンブリ・ファイルで登録されます。

  5. GlobalEventBeanバンドルのイベント・タイプをエクスポートした場合は、それを使用するアプリケーションに明示的にインポートする必要があります。

    これは、23.2.2.1項「MANIFEST.MFファイルの作成」の説明に従って、アプリケーション・バンドルのMANIFEST.MFファイルでImport-Packageヘッダーにパッケージを追加して実行します。

23.3 アプリケーション・ライブラリの管理

Oracle Event Processingアプリケーション・ライブラリを使用して、共有ライブラリを便利な場所にデプロイし、Oracle Event Processingサーバーの起動時にデプロイする共有ライブラリの順序を完全に制御できます。

この項では、次の項を含めて、Oracle Event Processingサーバー・アプリケーション・ライブラリを管理する方法について説明します。

詳細は、23.1.3項「アプリケーション・ライブラリ」を参照してください。

23.3.1 Oracle Event Processing IDE for Eclipseを使用したアプリケーション・ライブラリのディレクトリの定義方法

Oracle Event Processingサーバー・アプリケーション・ライブラリを使用する前に、Oracle Event Processing IDE for Eclipseデザイン・タイム構成をアプリケーション・ライブラリのディレクトリの場所で更新する必要があります。

デフォルトのアプリケーション・ライブラリ構成の詳細は、次を参照してください。

詳細は、23.3項「アプリケーション・ライブラリの管理」を参照してください。

Oracle Event Processing IDE for Eclipseを使用してアプリケーション・ライブラリのディレクトリを定義する手順:

  1. Oracle Event Processing IDE for Eclipseを起動します。

  2. プロジェクトを右クリックし、「プロパティ」を選択します。

    図23-2に表示されているように、「プリファレンス」ダイアログが表示されます。

    図23-2 「プリファレンス」ダイアログ: アプリケーション・ライブラリのパス

    図23-2の説明が続きます
    「図23-2 「プリファレンス」ダイアログ: アプリケーション・ライブラリのパス」の説明

  3. Oracle Oracle Event Processingアプリケーション・ライブラリのパスを選択します。

  4. 表23-1の説明に従って、アプリケーション・ライブラリのパスを指定します。

    表23-1 Oracle Event Processingアプリケーション・ライブラリのパス

    オプション 説明

    「絶対パスを使用」

    アプリケーション・ライブラリのディレクトリに絶対パスを指定するにはこのオプションを選択します。

    23.3.1.1項「絶対パスの構成方法」を参照してください。

    「パス変数の拡張」

    パス変数に基づいてアプリケーション・ライブラリを指定するにはこのオプションを選択します。

    23.3.1.2項「パス変数を拡張する方法」を参照してください。


23.3.1.1 絶対パスの構成方法

アプリケーション・ライブラリ・パスを絶対パスとして指定できます。チーム環境では、23.3.1.2項「パス変数を拡張する方法」の説明に従って、パス変数に基づくアプリケーション・ライブラリ・パスを指定する方がより便利です。

絶対パスを構成するには:

  1. 「参照」ボタンをクリックして、ファイル・システム・ブラウザを開きます。

  2. ファイル・システム・ブラウザを使用して、ディレクトリを選択します。


    注意:

    ディレクトリはOracle Event Processingサーバー・ドメインに存在する必要があります。詳細は、6.2項「Oracle Event Processingサーバーの作成」を参照してください。


  3. 「OK」をクリックします。

  4. 「適用」をクリックします。

  5. 「OK」をクリックします。

23.3.1.2 パス変数を拡張する方法

パス変数を拡張することで、アプリケーション・ライブラリ・パスを指定できます。これは、最もフレキシブルなアプローチであり、チーム環境に適切です。あるいは、23.3.1.1項「絶対パスの構成方法」に従って、絶対パスでアプリケーション・ライブラリを指定できます。

パス変数を拡張するには:

  1. 「変数」ボタンをクリックします。

    図23-3に示すようにパス変数の選択ダイアログが表示されます。

    図23-3 パス変数の選択ダイアログ

    図23-3の説明が続きます
    「図23-3 パス変数の選択ダイアログ」の説明

  2. 「新規」をクリックします。

    図23-4に示すような新しい変数ダイアログが表示されます。

    図23-4 新しい変数ダイアログ

    図23-4の説明が続きます
    「図23-4 新しい変数ダイアログ」の説明

  3. 表23-2で説明されているように、「新規変数」ダイアログを構成します。

    表23-2 Oracle Event Processingアプリケーション・ライブラリ・パス変数

    オプション 説明

    名前

    変数の名前を入力します。

    ロケーション

    「フォルダ」ボタンをクリックして、ファイル・システム・ブラウザを開きます。アプリケーション・ライブラリのディレクトリを使用するには、ルートディレクトリを選択します。

    注意: ディレクトリはOracle Event Processingサーバー・ドメインに存在する必要があります。詳細は、6.2項「Oracle Event Processingサーバーの作成」を参照してください。


  4. 「OK」をクリックします。

    図23-5で示したとおり、パス変数の選択ダイアログに新しいパス変数が表示されます。

    図23-5 パス変数の選択(当該変数名が表示)

    図23-5の説明が続きます
    「図23-5 パス変数の選択(当該変数名が表示)」の説明

  5. オプションで、変数を選択し、「拡張」をクリックします。

    図23-6に示すように、変数の拡張ダイアログが表示されます。このダイアログには、この変数のために指定したルートディレクトリの下にあるすべてのディレクトリが表示されます。

    図23-6 変数の拡張ダイアログ

    図23-6の説明が続きます
    「図23-6 変数の拡張ダイアログ」の説明

  6. サブディレクトリを選択して、「OK」をクリックします。

    アプリケーション・ライブラリ・パスは、図23-7で示すように定義した変数パスに対して相対的に指定します。

    図23-7 「プリファレンス」ダイアログ(アプリケーション・ライブラリ・パスとパス変数)

    図23-7の説明が続きます
    「図23-7 「プリファレンス」ダイアログ(アプリケーション・ライブラリ・パスとパス変数)」の説明

  7. 「適用」をクリックします。

  8. 「OK」をクリックします。

23.3.2 bundler.shを使用したアプリケーション・ライブラリの作成方法

このプロシージャでは、バンドル・ユーティリティを使用したOSGiバンドルの作成方法について説明します。

この方法をお薦めします。手動でアクティベータ実装を構成する場合は、23.3.3項「Oracle Event Processing IDE for Eclipseを使用したアプリケーション・ライブラリの作成方法」を参照してください。

新規JDBCドライバのアプリケーション・ライブラリを作成する場合は、『Oracle Fusion Middleware Oracle Event Processing管理者ガイド』のbundler.shで構築されるアプリケーション・ライブラリを使用したデータベース・ドライバへのアクセス方法に関する項を参照してください。

詳細は、23.1.3.3項「アプリケーション・ライブラリの作成」を参照してください。

bundler.shを使用してアプリケーション・ライブラリを作成する手順:

  1. 3.2項「開発環境の設定」に従って環境を設定します。

  2. bundler.shスクリプトを実行して、ドライバを含むOSGiバンドルを作成します。

    bundler.shスクリプトは、ORACLE_CEP_HOME/ocep_11.1/binディレクトリにあります。ORACLE_CEP_HOMEは、Oracle Event Processingサーバーのインストール先のディレクトリです。

    例23-1は、bundler.shコマンド・ライン・オプションを示し、表23-3は、これらのオプションを説明します。

    例23-1 bundler.shコマンド・ライン・オプション

    bundler -source JAR -name NAME -version VERSION
    [-factory CLASS+] [-service INTERFACE+] [-fragmenthost HOST]
    [-stagedir PATH] [-targetdir PATH]
    [+import PACKAGE|REGEX+] [-imods REGEX;MODS+] [-import PACKAGE+]
    [+export PACKAGE|REGEX+] [-emods REGEX;MODS+]
    [-dimport PACKAGE+] [-explode] [-verbose]
    

    表23-3 bundler.shコマンド・ライン・オプション

    引数 説明

    -source JAR

    バンドルするソースJARファイルのパス。

    -name NAME

    バンドルのシンボリック名。ターゲットJARファイル名のルートは名前の値から導出されています。

    -version VERSION

    バンドル・バージョン番号。すべてのエクスポートされたパッケージは、この値のバージョン属性で修飾されます。ターゲットJARファイル名には、バージョン番号が含まれています。

    -factory CLASS+

    OSGiサービスとしてインスタンス化および登録される1つ以上のファクトリ・クラスのスペース区切りリストを指定するオプションの引数。各サービスは、OSGiサービス・レジストリに名前(-name)とバージョン(-version)プロパティとともに登録されます。

    この引数は-fragmenthost引数とは互換性がありません。

    -service INTERFACE+

    各ファクトリ・オブジェクト・サービス登録のオブジェクト・クラスとして使用する1つ以上のJavaインタフェースのスペース区切りリストを指定するオプションの引数。インタフェース名を指定していない場合、または指定したインタフェース数がファクトリ・クラス数と一致していない場合、各ファクトリ・オブジェクトはファクトリ・クラス名で登録されます。

    -fragmenthost HOST

    結果のバンドルがフラグメント・ハンドルであることを示し、ホスト・バンドルのシンボリック名を指定するオプションの引数。

    この引数は-factory引数とは互換性がありません。

    -stagedir PATH

    ターゲットJARファイル作成時の一時ファイルの書込み先を指定するオプションの引数。

    デフォルト: ./bundler.tmp

    -targetdir PATH

    生成されたバンドルJARファイルの場所を指定するオプションの引数。

    デフォルト: 現在の作業ディレクトリ(.)

    +import PACKAGE|REGEX+

    1つ以上のパッケージ、またはマニフェストImport-Package属性から除外するパッケージを選択するための通常表現のスペース区切りリスト。

    デフォルトでは、(java.*を除く)すべての依存パッケージがインポートされます。

    -imods REGEX;MODS+

    インポート修飾子は通常表現と一致するパッケージに適用されます。

    -import PACKAGE

    マニフェストImport-Package属性に含まれる追加パッケージ。

    指定したインポート修飾子は適用されません。

    +export PACKAGE|REGEX+

    1つ以上のパッケージ、またはマニフェストExport-Package属性から除外するパッケージを選択するための通常表現のスペース区切りリスト。

    デフォルトでは、すべてのバンドル・パッケージがエクスポートされます。

    -emods REGEX;MODS+

    エクスポート修飾子は通常表現と一致するパッケージに適用されます。

    -dimport PACKAGE+

    マニフェストDynamicImport-Package属性に含まれる追加パッケージ。

    -explode

    このオプションのフラグでは、ソースJARの内容のターゲットJARファイルへの移動を指定します。

    デフォルトでは、ソースJARはターゲットJARファイル内にネストされ、生成されたバンドル・マニフェストに適切なBundle-Classpath属性に組み込まれます。

    -verbose

    詳細出力を有効にするオプション・フラグ。


    例23-2は、bundler.shを使用してOracle JDBCドライバ用のOSGiバンドルを作成する方法を示します。

    例23-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には、例23-3に示すファイルがあります。

    例23-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つのファクトリ・クラスがあることを指定します。表23-4に示すように、各ファクトリ・クラスは別々のオブジェクト・クラスにあります。

    表23-4 ファクトリ・クラスおよびサービス・インタフェース

    ファクトリ・クラス サービス・インタフェース

    oracle.jdbc.xa.client.OracleXADataSource

    javax.sql.XADataSource

    oracle.jdbc.OracleDriver

    java.sql.Driver


    各サービスは、nameプロパティをoracle11gに設定し、versionプロパティを11.2.0の値で登録します。例23-4は、サービスの登録を示すOracle Event Processingサーバー・ログ・メッセージです。

    例23-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
    ...
    
  3. アプリケーション・ライブラリJARを該当するOracle Event Processingサーバー・アプリケーション・ディレクトリにコピーします。

    1. バンドルがドライバの場合は、ライブラリ拡張ディレクトリに置く必要があります。

      23.1.3.2項「ライブラリ拡張ディレクトリ」を参照してください。

    2. バンドルがドライバでない場合は、ライブラリ・ディレクトリに置くことができます。

      23.1.3.1項「ライブラリ・ディレクトリ」を参照してください。

    詳細は、23.1.3項「アプリケーション・ライブラリ」を参照してください。

  4. Oracle Event Processingサーバーを停止し、起動します。

    『Oracle Fusion Middleware Oracle Event Processing管理者ガイド』のOracle Event Processingサーバーの起動および停止に関する項を参照してください。

23.3.3 Oracle Event Processing IDE for Eclipseを使用したアプリケーション・ライブラリの作成方法

ここでは、Oracle Event Processing IDE for Eclipseを使用してドライバ用のOSGiバンドルを作成し、Oracle Event Processingサーバー上にデプロイする手順を説明します。

この方法をお薦めします。手動でアクティベータ実装を構成しない場合は、23.3.2項「bundler.shを使用したアプリケーション・ライブラリの作成方法」を参照してください。

新規JDBCドライバのアプリケーション・ライブラリを作成する場合は、『Oracle Fusion Middleware Oracle Event Processing管理者ガイド』のOracle Event Processing IDE for Eclipseで構築されるアプリケーション・ライブラリを使用したデータベース・ドライバへのアクセス方法に関する項を参照してください。

Oracle Event Processing IDE for Eclipseを使用してアプリケーション・ライブラリを作成する手順:

  1. Oracle Event Processing IDE for Eclipseを使用して、新しいOracle Event Processingプロジェクトを作成します。

    詳細は、5.2項「Oracle Event Processingプロジェクトの作成」を参照してください。

  2. プロジェクト・フォルダを右クリックして、「新規」>「フォルダ」を選択します。

  3. 「フォルダ名」フィールドにlibと入力し、「終了」をクリックします。

  4. Oracle Event Processing for Eclipseの外で、JDBC JARファイルをlibフォルダにコピーします。

  5. Oracle Event Processing IDE for Eclipse内で、libフォルダを右クリックして、「リフレッシュ」を選択します。

    図23-8に示すように、JARファイルがlibフォルダに表示されます。

    図23-8 Oracle Event Processing IDE for Eclipse lib ディレクトリ

    図23-8の説明が続きます
    「図23-8 Oracle Event Processing IDE for Eclipse libディレクトリ」の説明

  6. srcディレクトリを右クリックして、「新規」>「クラス」を選択します。

    図23-9に示すように、「Javaクラス」ダイアログが表示されます。

    図23-9 「新規Javaクラス」ダイアログ

    図23-9の説明が続きます
    「図23-9 「新規Javaクラス」ダイアログ」の説明

  7. 表23-5に示すように、「新規Javaクラス」ダイアログを構成します。

    表23-5 新規Javaクラス・パラメータ

    パラメータ 説明

    パッケージ名

    パッケージの名前。たとえば、com.fooを指定します。

    名前

    クラスの名前。たとえば、MyActivatorを指定します。


    その他のパラメータはデフォルト値のままにします。

  8. 「終了」をクリックします。

    新規のJavaクラスがプロジェクトに追加されます。

  9. 例23-5に示すように、実装するためにJavaクラスを編集します。

    JDBCドライバの既存のバージョンを差し代えるように、NAMEおよびVERSIONを設定します。この例では既存のバージョンは、次のとおりです。

    • oracle10g

    • 10.0.0

    既存のバージョンを差し代えるために、MyActivatorクラスではこれらの値を次の値に設定します。

    • oracle11g

    • 11.2.0

    例23-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();
        }
      }
    }
    
  10. META-INF/MANIFEST.MFファイルを右クリックし、次で開く>プラグイン・マニフェストエディタを選択します。

    図23-10に示すように、マニフェスト・エディタが表示されます。

    図23-10 マニフェスト・エディタ:「概要」タブ

    図23-10の説明が続きます
    「図23-10 マニフェスト・エディタ:「概要」タブ」の説明

  11. 「ランタイム」タブをクリックします。

    図23-11に示すように、「ランタイム」タブが表示されます。

    図23-11 マニフェスト・エディタ:「ランタイム」タブ

    図23-11の説明が続きます
    「図23-11 マニフェスト・エディタ:「ランタイム」タブ」の説明

  12. 「クラスパス」ペインで、「追加」をクリックします。

    図23-12に示すように、JAR選択ダイアログが表示されます。

    図23-12 JARの選択ダイアログ

    図23-12の説明が続きます
    「図23-12 JAR選択ダイアログ」の説明

  13. libディレクトリを展開して、使用するデータベース・ドライバJARファイルを選択します。

  14. 「OK」をクリックします。

  15. 「依存関係」タブをクリックします。

    図23-13に示すように、「依存関係」タブが表示されます。

    図23-13 マニフェスト・エディタの「依存関係」タブ

    図23-13の説明が続きます
    「図23-13 マニフェスト・エディタの「依存関係」タブの説明

  16. インポートされたパッケージペインで、「追加」をクリックします。

    図23-14に示すように、パッケージの選択ダイアログが表示されます。

    図23-14 パッケージの選択ダイアログ

    図23-14の説明が続きます
    「図23-14 パッケージの選択ダイアログ」の説明

  17. エクスポートされたパッケージフィールドで、org.osgi.frameworkを入力します。

    図23-14に示すように、リスト・ボックスには、その接頭辞の付いているすべてのパッケージが表示されます。

  18. リスト・ボックスでorg.osgi.frameworkを選択して、「OK」をクリックします。

  19. MANIFEST.MFタブをクリックします。

    図23-15に示すように、MANIFEST.MFタブが表示されます。

    図23-15 マニフェスト・エディタ

    図23-15の説明が続きます
    「図23-15 マニフェスト・エディタ」の説明

  20. 例23-6に示すように、使用するJARを一時ディレクトリに解凍します。

    例23-6 データベース・ドライバの解凍

    $ pwd
    /tmp
    $ ls com.*
    com.bea.oracle.ojdbc6_1.0.0.0_11-1-0-7.jar
    $ mkdir driver
    $ cd driver
    $ jar -xvf ../com.bea.oracle.ojdbc6_1.0.0.0_11-1-0-7.jar
    $ ls
    META-INF  oracle
    $ cd META-INF
    $ ls
    MANIFEST.MF  services
    
  21. 例23-7に示すように、使用するJAR MANIFEST.MFファイルを開いて、Export-Packageエントリをコピーし、マニフェスト・エディタに貼り付けます。

    例23-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
    
  22. 例23-8に示すように、マニフェスト・エディタにBundle-Activator要素を追加します。

    Bundle-Activatorの値は、Activatorクラスの完全修飾クラス名です。

    例23-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, ...
    ...
    
  23. 例23-9に示すように、マニフェスト・エディタにDynamicImport-Package要素を追加します。

    例23-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, ...
    ...
    
  24. Oracle Event ProcessingアプリケーションをJARファイルにエクスポートします。

    詳細は、5.5.1項「Oracle Event Processingプロジェクトのエクスポート方法」を参照してください。

  25. バンドルJARを適切なOracle Event Processingサーバー・アプリケーション・ライブラリ・ディレクトリにコピーします。

    1. バンドルがドライバの場合は、ライブラリ拡張ディレクトリに置く必要があります。

      23.1.3.2項「ライブラリ拡張ディレクトリ」を参照してください。

    2. バンドルがドライバでない場合は、ライブラリ・ディレクトリに置くことができます。

      23.1.3.1項「ライブラリ・ディレクトリ」を参照してください。

    詳細は、23.1.3項「アプリケーション・ライブラリ」を参照してください。

  26. Oracle Event Processingサーバーを停止し、起動します。

    『Oracle Fusion Middleware Oracle Event Processing管理者ガイド』のOracle Event Processingサーバーの起動および停止に関する項を参照してください。

23.3.4 Oracle Event Processing IDE for Eclipseを使用したアプリケーション・ライブラリの更新方法

アプリケーション・ライブラリ拡張、アプリケーション・ライブラリ・ディレクトリまたはそれらのユーザー定義のサブディレクトリでJARファイルの追加、置き換えまたは解除を行う場合、次の2つの場所で変更を加える必要があります。

  • Oracle Event Processing IDE for Eclipseでサーバーのランタイムを作成するために使用したローカルOracle Event Processingサーバー。

  • 依存アプリケーションをデプロイされた本番Oracle Event Processingサーバー。

これらの変更は、同時に実行する必要がありません。アプリケーション・ライブラリの変更に依存するプロジェクトのコードを変更する前に、ローカルOracle Event Processingサーバーに変更を加える必要があります。アプリケーション・ライブラリの変更に依存するアプリケーションをデプロイする前に、本番Oracle Event Processingサーバーに変更を加える必要があります。

詳細は、23.3項「アプリケーション・ライブラリの管理」を参照してください。

Oracle Event Processing IDE for Eclipseを使用してアプリケーション・ライブラリを更新する手順:

  1. 本番Oracle Event Processingサーバー上のアプリケーション・ライブラリ拡張またはアプリケーション・ライブラリ・ディレクトリに新しいまたは改訂されたバンドルを追加します。

    これは、このアプリケーション・ライブラリに依存するアプリケーションをデプロイするサーバーです。

    ライブラリのデプロイメント順序を制御するには、ライブラリを適切な名前のサブディレクトリに整理します。

    詳細は、次を参照してください:

  2. 本番Oracle Event Processingサーバーを停止し、起動します。

    Oracle Event Processingサーバーは、更新されたアプリケーション・ライブラリ拡張またはアプリケーション・ライブラリ・ディレクトリからリフレッシュします。

    詳細は、次を参照してください:

    • 『Oracle Fusion Middleware Oracle Event Processing管理者ガイド』のスタンドアロン・サーバー・ドメインでのOracle Event Processingサーバーの起動および停止に関する項

    • 『Oracle Fusion Middleware Oracle Event Processing管理者ガイド』のマルチサーバー・ドメインでのOracle Event Processingサーバーの起動および停止に関する項

  3. Oracle Event Processing IDE for EclipseターゲットのランタイムOracle Event Processingサーバー上のアプリケーション・ライブラリ拡張またはアプリケーション・ライブラリ・ディレクトリに同じ新規または改訂されたバンドルを追加します。

  4. Oracle Event Processing IDE for Eclipseを起動します。

  5. プロジェクトを右クリックし、「ターゲットのランタイムをリフレッシュ」を選択します。

    Oracle Event Processing IDE for Eclipseは、Oracle Event Processing IDE for EclipseターゲットのランタイムOracle Event Processingサーバー上の更新されたアプリケーション・ライブラリ拡張またはアプリケーション・ライブラリ・ディレクトリからこのプロジェクトをリフレッシュします。

  6. 必要に応じて、アプリケーション依存性を更新します。

    たとえば、新規バンドルを追加するか、または既存のバンドルのバージョンを変更します。

    詳細は、23.1.2項「アプリケーションの依存関係」を参照してください。

  7. 本番Oracle Event Processingサーバーにアプリケーションをアセンブルし、デプロイします。

    詳細は、23.5項「Oracle Event Processingアプリケーションのデプロイ」を参照してください。

    開発時に、このアプリケーション向けにOracle Event Processing IDE for Eclipseで定義した依存関係は、実行時に本番Oracle Event Processingサーバーのアプリケーション・ライブラリでインストールされたコンポーネントによって満たされます。

23.3.5 Oracle Event Processing Visualizerを使用したアプリケーション・ライブラリの表示方法

Oracle Event Processing Visualizerを使用して、Oracle Event Processingサーバーにデプロイされたアプリケーション・ライブラリを表示できます。

ライブラリ拡張ディレクトリとライブラリ・ディレクトリ、そのいずれからもライブラリを表示できます。


注意:

Oracle Event Processing Visualizerでは、アプリケーション・ライブラリをOracle Event Processingサーバーにはデプロイできません。Oracle Event Processing Visualizerでは、Oracle Event ProcessingアプリケーションのOracle Event Processingサーバーへのデプロイのみ可能です。


詳細は、次を参照してください:

23.4 ログ・メッセージ・カタログの管理

この項では、Oracle Event Processingアプリケーションのローカライズに使用する、次のようなログ・メッセージ・カタログの管理方法について説明します。

詳細は、次を参照してください:

23.4.1 Oracle Event Processingサーバーでのメッセージ・カタログの使用

メッセージ・カタログは、テキスト・メッセージのコレクションが格納される単一の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パッケージごとに細かく分けてカタログを作成することもできます。表示するときにそのログの特定の部分に焦点を当てることができるよう、複数のサブシステム・カタログの使用をお薦めします。

シンプル・テキスト・カタログについては、国際化される各ユーティリティにシングル・カタログを作成することをお薦めします。

この項では次について説明します:

詳細は、次を参照してください:

23.4.1.1 メッセージ・カタログの階層

すべてのメッセージは、デフォルトで最上位カタログに定義する必要があります。

基本カタログの様々なローカライゼーションを提供するカタログは、ロケールに基づいた名前がついたmsgcatのサブディレクトリ(ドイツ語の場合はmsgcat/deなど)に定義されています。たとえば、mycat.xmlという最上位カタログと..de/mycat.xmlというそのドイツ語版のカタログがあります。通常、最上位カタログは英語です。ただし、どのカタログでも英語は必須ではありません。

java.util.Localeのドキュメントで定義されているように、ロケールの指定(deなど)にも階層があります。ロケールでは言語、国、およびバリアントを指定できます。言語は、ロケール指定でもっとも一般的なものです。言語は国コードによって拡張できます。たとえば、en\USはアメリカ英語を示します。これに関連付けられたカタログの名前は、..en\US\mycat.xmlとなります。バリアントはベンダーまたはブラウザに固有であり、言語または国で定義された複数のロケールの間で細かな違い(照合順序など)を持たせるために使用します。

23.4.1.2 メッセージ・カタログの命名のガイドライン

メッセージ・カタログ・ファイルの名前(.xml拡張子を除く)は、実行時クラスおよびプロパティ名の生成に使用されるため、命名は慎重に行ってください。

メッセージ・カタログに名前を付ける場合、以下のガイドラインに従ってください。

  • メッセージ・カタログを作成しているターゲット・パッケージ内の既存クラスの名前と競合するようなメッセージ・カタログ名は避けます。

  • メッセージ・カタログ名に含まれる文字は、クラス名に使用できる文字のみを使用します。

  • クラス名の命名規約に従います。

たとえば、カタログの名前がXyz.xmlの場合、生成されるクラス名はXyzLogLocalizerおよびXyzLoggerになります。

以下の考慮事項も、メッセージ・カタログ・ファイルに適用されます。

  • メッセージIDは、通常は先頭に0が付く6文字の文字列。一部のインタフェースでは、整数表現もサポートされています。


    注意:

    これは、ログ・メッセージ・カタログにのみ適用されます。シンプル・テキスト・カタログは任意の文字列をとることができます。


  • Javaでは、パッケージと呼ばれるコレクションにクラスをまとめることができます。パッケージ名は、特定のカタログが存在するサブシステムの名前と一致させることをお薦めします。命名が一環していると、OSGiインポートの定義が容易になります。

  • ログのLocalizer「クラス」は、実際にはResourceBundleプロパティ・ファイルです。

23.4.1.3 メッセージ引数の使い方

ログ・メッセージのメッセージ本文、メッセージ詳細、原因、およびアクションなどのセクションには、java.text.MessageFormatに記載されているようなメッセージ引数を組み込むことができます。メッセージの内容が、java.text.MessageFormatで指定されたパターンに準拠していることを確認してください。シンプル・テキスト・メッセージでは、引数を入れられるのは、メッセージ本文のセクションに限られます。引数は、実行時に動的に設定される値を表します。これらの値は、メッセージを出力するなどのルーチンに渡されます。1つのメッセージには0から9で番号付けされた10個までの引数をサポートできます。メッセージ本文にはすべての引数を入れる必要がありますが、メッセージ定義(メッセージ本文、メッセージ詳細、妥当な原因)の任意のテキスト・セクションにもこれらの引数の任意のサブセットを入れることができます。メッセージ引数は開発時にメッセージ定義に挿入され、実行時においてメッセージがログに記録されるときに適切なメッセージ・コンテンツに置き換えられます。

以下は、XMLログ・メッセージ定義の抜粋で、メッセージ引数の使い方を示しています。引数の番号は、method属性で指定された引数の1つと対応している必要があります。具体的には、{0}は最初の引数と、{1}は2番目の引数と対応している必要があります。例23-10では、{0}は開けないファイルを表し、{1}は適切に開かれるファイルを表します。

例23-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)"

例23-10のメッセージの例では、2つの引数{0}および{1}が使用されています。

  • 両方とも<messagebody>で使用されています。

  • 両方とも<messagedetail>で使用されています。

  • どちらも<cause>または<action>では使用されていません。


注意:

1つのメッセージには0から9で番号付けされた10個までの引数をサポートできます。メッセージ本文にはすべての引数を入れる必要がありますが、メッセージ定義(メッセージ詳細、原因、処置)の任意のテキスト・セクションにもこれらの引数の任意のサブセットを入れることができます。


また、引数はString型と想定されるか、String型で表現可能です。数値データは{n,number}と表現されます。日付は{n,date}の形式でサポートされます。ログ・メッセージには重大度レベルを割り当てる必要があります。ログ・メッセージはmethod属性で定義されているとおり、生成済のLoggerメソッドによって生成されます。

23.4.1.4 メッセージ・カタログのフォーマット

最上位のカタログ・ファイルとロケール固有のカタログ・ファイルでは、カタログのフォーマットが若干異なります。最上位カタログでは、基本ロケール(デフォルトでは、英語)のテキスト・メッセージが定義されます。ロケール固有のカタログ(スペイン語に翻訳されたカタログなど)は、最上位バージョンで定義されているテキストの翻訳だけを備えています。さらに、ログ・メッセージ・カタログではシンプル・テキスト・カタログと定義の方法が異なります。

23.4.1.4.1 ログ・メッセージ・カタログ

例23-11はログ・メッセージを1つ持つメッセージ・カタログMyUtilLog.xmlを示しています。このログ・メッセージは、messagebodymessagedetailcauseおよびactionの各要素の使用方法を示しています。

例23-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」を参照してください。

23.4.1.4.2 シンプル・テキスト・カタログ

例23-12では、1つのシンプル・テキストが定義されているシンプル・テキスト・カタログMyUtilLabels.xmlを示しています。

例23-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」を参照してください。

23.4.1.4.3 ロケール固有のカタログ

例23-13は、..\msgcat\fr\MyUtilLabels.xmlにあるメッセージのフランス語版です。

例23-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>

messagebodymessagedetailcause、およびactionの各要素でテキストを入力するときには、有効なUTF-8 (Unicode Transformation Format-8)文字を生成するツールを使用するとともに、適切なキーボードのマッピングがインストールされている必要があります。UTF-8は、ASCII文字のエンコーディングを最適化する、効率的なUnicode文字列エンコーディング方式です。メッセージ・カタログでは常にUTF-8エンコーディング方式が使用されます。

詳細は、付録H「スキーマ参照: ロケール・メッセージ・カタログl10n_msgcat.dtd」を参照してください。

23.4.1.5 メッセージ・カタログのローカライゼーション

カタログ・サブディレクトリの名前は、小文字2文字のISO 639言語コード(日本語はja、フランス語はfrなど)に基づいて付けられます。サポートされている言語コードは、java.util.Locale Javadocで確認できます。

言語コードのバリエーションは、言語コードの下位にある大文字2文字のISO 3166国コードとバリアントを使用するとできます。一般的な構文は、lang\country\variantです。

たとえば、zhは中国の言語コードです。CNは簡体字中国語の国コードで、TWは繁体字中国語の国コードです。このため、zh\CNおよびzh\TWは中国語の異なる2つのロケールです。

バリアントは、特定のロケールを扱うプラットフォーム・ベンダーの機能に違いがある場合などに役立ちます。ベンダー・バリアントには、WINMACPOSIXなどがあります。ロケールをさらに修飾するために2つのバリアントが使用される場合もあります。この場合、バリアントはアンダースコアで区切ります(Traditional_MacModern_MACなど)。


注意:

言語、国、およびバリアントは、すべて大文字/小文字が区別されます。


完全修飾ロケールはzh\TW\WINのようになり、Win32プラットフォームでの繁体字中国語を識別します。

上記のロケールをサポートするメッセージ・カタログには、次のファイルが含まれます。

  • \*.xml - デフォルト・カタログ

  • \zh\*.xml - 中国語ローカライゼーション

  • \zh\TW\*.xml - 繁体字中国語ローカライゼーション

  • \zh\TW\WIN\*.xml - Win32コード・セットに対する繁体字中国語ローカライゼーション

特定のローカライゼーションは、親ローカライゼーションで定義されたすべてのメッセージに対応する必要はありません。

23.4.2 ローカライズ用LoggerおよびTextFormatterクラスを生成するためのメッセージ・カタログの解析方法

メッセージ・カタログXMLファイルを作成すると、weblogic.i18ngenユーティリティを使用してLoggerおよびTextFormatterクラスを作成することができます。

weblogic.i18ngenユーティリティを使用すると、メッセージ・カタログ(XMLファイル)を解析し、ログ・メッセージのテキストをローカライズするためのLoggerクラスおよびTextFormatterクラスを生成できます。このユーティリティでは、メッセージIDのルックアップ・クラス・ハッシュ表weblogic.i18n.L10nLookupのロードに使用するi18n_user.propertiesが作成、または更新されます。

エラーや警告などのメッセージはすべてstderrに送信されます。

ユーザー・カタログが認識されるように、i18n_user.propertiesファイルはOracle Event Processingサーバー・クラス・パスで識別されたディレクトリに置く必要があります。

i18n_user.propertiesファイルは、Oracle Event Processingサーバー・クラス・パスに置くことをお薦めします。i18n_user.propertiesファイルがtargetdirectoryにある場合は、targetdirectoryがOracle Event Processingサーバー・クラス・パスにある必要があります。

LoggerおよびTextFormatterクラスを生成するためのメッセージ・カタログを解析する手順:

  1. メッセージ・カタログXMLファイルを作成します。

    23.4.1項「Oracle Event Processingサーバーでのメッセージ・カタログの使用」を参照してください。

  2. 開発環境を設定します。

    3.2項「開発環境の設定」を参照してください。

  3. 次の構文を使用して、weblogic.i18ngenユーティリティを実行します。

    java weblogic.i18ngen [options] [filelist]
    

    説明:

    • options: 表23-6を参照してください。

    • filelist: このファイル・リストのファイルとディレクトリを処理します。ディレクトリが指定されている場合は、そのディレクトリのすべてのXMLファイルが処理されます。すべてのファイルの名前には、XMLの接尾辞が付いている必要があります。すべてのファイルはmsgcat.dtd構文に準拠している必要があります。weblogic.i18ngenは、実際に生成されたファイルに対して、完全修飾名リスト(Javaソース)をstdoutに出力します。

    表23-6 weblogic.i18ngenユーティリティ・オプション

    オプション 説明

    -build

    必要なすべてのファイルを生成し、コンパイルします。

    -buildオプションは、-i18n-l10n-keepgeneratedおよび-compileオプションを兼ね備えています。

    -d targetdirectory

    生成されたJavaソース・ファイルの宛先となるルート・ディレクトリを指定します。ユーザー・カタログ・プロパティは、指定されたtargetdirectoryの相対パスにあるi18n_user.propertiesに配置されます。ファイルは、対応するメッセージ・カタログのi18n_package値およびl10n_package値に基づいて適切なディレクトリに配置されます。デフォルトのターゲット・ディレクトリは現在のディレクトリとなります。このディレクトリは必要に応じて作成されます。

    この引数が省略された場合は、メッセージ・カタログに指定されたクラス階層に関係なく、すべてのクラスがカレント・ディレクトリに生成されます。

    -n

    解析し、有効性を検証しますが、クラスは生成しません。

    -keepgenerated

    生成されたJavaソース(クラス・ファイルと同じディレクトリに存在)を保持します。

    -ignore

    エラーを無視します。

    -i18n

    インターナショナライザ(LoggersTextFormattersなど)を生成します。

    -l10n

    Localizer (LogLocalizers 、TextLocalizersなど)を生成します。

    -compile

    現在のCLASSPATHを使用して生成されたJavaファイルをコンパイルします。生成されたクラスは、 -d オプションで識別されるディレクトリに配置されます。生成されたクラスは、ソースと同じディレクトリに配置されます。

    通常は、コンパイルの途中でエラーが検出されると、クラス・ファイルやプロパティ・ファイルが作成されません。 i18ngen は異常な終了ステータスで終了します。

    -nobuild

    解析と有効性の検証のみを実行します。

    -debug

    デバッグ・モード。

    -dates

    weblogic.i18ngenに、カタログ内のメッセージ・タイムスタンプを更新させます。カタログが書込み可能でタイムスタンプが更新された場合、カタログは上書きされます。



    注意:

    ユーティリティはどのディレクトリからでも実行できますが、ファイルがコマンド・ラインで指定される場合、ファイル・パスはカレント・ディレクトリに対する相対パスになります。


  4. ログ・メッセージを翻訳し、必須のローカライズ済リソース・バンドルを生成します。

  5. i18n_user.propertiesファイルがOracle Event Processingサーバー・クラス・パスにあることを確認します。

  6. 次のパッケージをOracle Event Processingアプリケーションにインポートします。

    • weblogic.i18n.logging

    • weblogic.logging

  7. ログ・メッセージ・リソース・バンドルを含むアプリケーションをアセンブルおよびデプロイします。

23.5 Oracle Event Processingアプリケーションのデプロイ

Oracle Event Processingアプリケーションをアセンブルした後、それをOracle Event Processingサーバー・ドメインにデプロイします。

この項では次について説明します:

詳細は、次を参照してください:

23.5.1 Oracle Event Processing IDE for Eclipseを使用してOracle Event Processingアプリケーションをデプロイする方法

Oracle Event Processing IDE for Eclipseを使用して、Oracle Event Processingアプリケーションをデプロイできます。

Oracle Event Processing IDE for Eclipseを使用して、スタンドアロンまたはマルチサーバー・ドメインのいずれかにアプリケーションをデプロイします。


注意:

外部ステージを使用する場合、23.2.3項「外部ステージによるアプリケーションのアセンブル」に示しているように、依存関係ステージのデプロイメントと再デプロイメントを管理するルールに注意してください。


Oracle Event Processing IDE for Eclipseを使用してOracle Event Processingアプリケーションをデプロイする手順:

  1. Oracle Event Processingアプリケーションをアセンブルします。

    23.2項「Oracle Event Processingアプリケーションのアセンブル」を参照してください。

  2. アプリケーションをデプロイするには、Oracle Event Processing IDE for Eclipseを使用します。

    6.3.6項「Oracle Event Processingサーバーにアプリケーションをデプロイする方法」を参照してください。

23.5.2 Oracle Event Processing Visualizerを使用してOracle Event Processingアプリケーションをデプロイする方法

Oracle Event ProcessingアプリケーションをOracle Event Processingサーバー・ドメインにデプロイする最も簡単な方法は、Oracle Event Processing Visualizerを使用することです。

Oracle Event Processing Visualizerを使用して、スタンドアロンまたはマルチサーバー・ドメインのいずれかにアプリケーションをデプロイできます。


注意:

外部ステージを使用する場合、23.2.3項「外部ステージによるアプリケーションのアセンブル」に示しているように、依存関係ステージのデプロイメントと再デプロイメントを管理するルールに注意してください。


Oracle Event Processing Visualizerを使用してOracle Event Processingアプリケーションをデプロイする手順:

  1. Oracle Event Processingアプリケーションをアセンブルします。

    23.2項「Oracle Event Processingアプリケーションのアセンブル」を参照してください。

  2. Oracle Event Processing Visualizerを起動します。

    6.3.9項「Oracle Event Processing IDE for EclipseからOracle Event Processing Visualizerを起動する方法」を参照してください。

  3. Oracle Event Processing Visualizerを使用してアプリケーションをデプロイします。

    『Oracle Fusion Middleware Oracle Event Processing Visualizerユーザーズ・ガイド』のアプリケーションのデプロイに関する項を参照してください。

23.5.3 デプロイヤ・ユーティリティを使用してOracle Event Processingアプリケーションをデプロイする方法

次の手順では、デプロイヤ・コマンド・ライン・ユーティリティを使用してOracle Event Processingにアプリケーションをデプロイする方法について説明します。

デプロイヤを使用して、スタンドアロンまたはマルチサーバー・ドメインのいずれかにアプリケーションをデプロイできます。

詳細は、『Oracle Fusion Middleware Oracle Event Processing管理者ガイド』のデプロイヤ・コマンドライン・リファレンスに関する項を参照してください。


注意:

外部ステージを使用する場合、23.2.3項「外部ステージによるアプリケーションのアセンブル」に示しているように、依存関係ステージのデプロイメントと再デプロイメントを管理するルールに注意してください。


デプロイヤ・ユーティリティを使用してOracle Event Processingアプリケーションをデプロイする手順:

  1. Oracle Event Processingアプリケーションをアセンブルします。

    23.2項「Oracle Event Processingアプリケーションのアセンブル」を参照してください。

  2. コマンド・ウィンドウを開き、3.2項「開発環境の設定」の説明に従って、環境を設定します。

  3. CLASSPATH変数を更新して、ORACLE_CEP_HOME/ocep_11.1/binディレクトリにあるwlevsdeploy.jar JARファイルを指定します。ORACLE_CEP_HOMEは、/oracle_cepなどの主なOracle Event Processingインストール・ディレクトリを示します。


    注意:

    リモート・コンピュータ上でデプロイヤを実行する場合、『Oracle Fusion Middleware Oracle Event Processing管理者ガイド』のリモートでのデプロイヤ・ユーティリティの実行に関する項を参照してください。


  4. アプリケーションをデプロイするOracle Event ProcessingインスタンスでJettyが構成されていることを確認してください。

    詳細は、『Oracle Fusion Middleware Oracle Event Processing管理者ガイド』のOracle Event ProcessingのJettyの構成に関する項を参照してください。

  5. コマンド・ウィンドウで、次の構文を使用して、アプリケーションをインストールするデプロイヤ・ユーティリティを実行します(実際には、コマンドは1行に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/config.xmlファイルに指定されています。DOMAIN_DIRは、ドメイン・ディレクトリです。

      ポート番号は、<Netio>要素の<Port>子要素の値です。

      <Netio>
          <Name>NetIO</Name>
          <Port>9002</Port>
      </Netio>
      
    • userは、Oracle Event Processing管理者のユーザー名です。

    • passwordは、Oracle Event Processing管理者のパスワードです。

    • application_jar_fileは、23.2項「Oracle Event Processingアプリケーションのアセンブル」の説明に従ってOSGiバンドルにアセンブルされたアプリケーションJARファイルです。このファイルは、デプロイヤ・ユーティリティを実行する同じコンピュータに置かれている必要があります。

      たとえば、Oracle Event Processingはホスト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 Event Processingではアプリケーションが自動的に起動され、アダプタ・コンポーネントでは着信イベントのリスニングがただちに開始されます。

    デプロイヤ・ユーティリティでは、アプリケーションJARファイルの再開、一時停止、更新、およびアンインストールや、マルチサーバー・ドメインの指定されたグループへのアプリケーションのデプロイなどの追加オプションが提供されます。詳細は、『Oracle Fusion Middleware Oracle Event Processing管理者ガイド』のデプロイヤ・コマンドライン・リファレンスに関する項を参照してください。


    注意:

    サーバーがマルチサーバー・ドメインの一部の場合(クラスタリングが有効の場合)は、グループへのデプロイのみが可能です。サーバーがスタンドアロン・サーバー・ドメインの一部の場合(つまり、クラスタリングが無効の場合)は、グループにはデプロイできません。詳細は、『Oracle Fusion Middleware Oracle Event Processing管理者ガイド』のOracle Event Processingマルチサーバー・ドメイン管理の概要に関する項を参照してください。


    Oracle Event Processingは、deployments.xmlファイルを使用して、デプロイ済アプリケーションのOSGiバンドルのリストを内部的に維持します。このファイルは、DOMAIN_DIR/servernameディレクトリにあります。DOMAIN_DIRは、メイン・ドメイン・ディレクトリであり、アプリケーションのデプロイ先となるサーバー・インスタンスに対応します。servernameは、実際のサーバーです。このファイルの詳細は、付録B「デプロイメント・スキーマdeployment.xsd」を参照してください。この情報はあくまでも参考として示しています。deployments.xmlファイルを手動で更新することはお薦めしません。