プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle Stream Analyticsイベント処理スタート・ガイド
12cリリース(12.2.1.1.0)
E79338-01
目次へ移動
目次

前
前へ
次
次へ

3 Oracle JDeveloperの利用手順

次の各項で、Oracle Stream AnalyticsタスクをOracle JDeveloperで実行する方法を説明します。

この章の構成は、次のとおりです。

3.1 EclipseプロジェクトのOracle JDeveloperへのインポート

Oracle Stream Analytics Eclipseプロジェクトは、バンドルとしてOracle JDeveloperにインポートできます。バンドルとは、アーカイブ(zip)またはJARファイルとしてエクスポート可能なOracle Stream Analytics Eclipseプロジェクトです。EclipseプロジェクトをOracle JDeveloperにインポートするコマンドライン・コマンドはありません。

EclipseプロジェクトのOracle JDeveloperへのインポート

複数のアプリケーションまたはプロジェクトで構成されているEclipseプロジェクトはインポートできないことに注意する必要があります。インポートするEclipseプロジェクトは、Oracle Stream Analyticsプロジェクトとしてのみインポートできます。CoherenceプロジェクトまたはJavaプロジェクトはインポートできません。

EclipseからzipまたはJARファイルをインポートする場合、Oracle JDeveloper 12cはJDK1.7のみをサポートします。EclipseからJDK 1.6プロジェクトをエクスポートし、JDK1.7を使用してOracle JDeveloperにインポートすることはできません。JDK 1.7のEclipseからJDK 1.7のOracle JDeveloperに移行する必要があります。

注意:

JDK1.6 Eclipse Oracle Stream Analyticsアプリケーション・プロジェクトのインポートは可能ですが、Oracle JDeveloperはコンパイルの問題には対処しません。この場合、コンパイルの問題が発生した際は自己責任で対処します。

  1. Eclipseで、EclipseプロジェクトをzipまたはJARファイルとしてエクスポートします。

    ソース・ファイルとリソースを含めていることを確認します。

  2. Oracle JDeveloperで、「ファイル」→「インポート」→「新規プロジェクトへのOEPバンドル」の順に選択します。

    手順は、既存のOracle JDeveloperアプリケーションの有無によって異なります。

    既存のアプリケーションがある場合、バンドルをアクティブなアプリケーションにインポートするための「プロジェクトとしてのOEPバンドルのインポート - ステップ1/2」ダイアログが表示されます。

    1. 「ステップ1/2」ダイアログで、プロジェクトの名前を入力し、ディレクトリ名を使用するか変更し、「次へ」をクリックします。

      「プロジェクトとしてのOEPバンドルのインポート - ステップ3/3」ダイアログが表示されます。

    2. 「ステップ2/2」ダイアログでエクスポートしたEclipse zipファイルを探して選択し、「終了」をクリックします。

      Oracle JDeveloperの「アプリケーション」にプロジェクトが表示されます。

    既存のアプリケーションがない場合、プロジェクト用のアプリケーションを作成するための「プロジェクトとしてのOEPバンドルのインポート - ステップ1/3」ダイアログが表示されます。

    1. 「ステップ1/3」ダイアログで、アプリケーションの名前および場所を入力し、「次へ」をクリックします。

      「プロジェクトとしてのOEPバンドルのインポート - ステップ2/3」ダイアログが表示されます。

    2. 「ステップ2/3」ダイアログで、プロジェクトの名前を入力し、ディレクトリ名を使用するか変更し、「次へ」をクリックします。

      「プロジェクトとしてのOEPバンドルのインポート - ステップ3/3」ダイアログが表示されます。

    3. 「ステップ3/3」ダイアログでエクスポートしたEclipse zipファイルを探して選択し、「終了」をクリックします。

      Oracle JDeveloperの「アプリケーション」にプロジェクトが表示されます。

インポートしたプロジェクトのビルド

  1. インポートしたアプリケーションを選択し、「ビルド」→<プロジェクト名>を選択します。

  2. ログ・ウィンドウにクラスパスに追加JARファイルが必要だというエラーが表示された場合、トップレベルのプロジェクト・フォルダを選択し、「プロジェクト・プロパティ」を選択します。

    「プロジェクト・プロパティ」ダイアログが表示されます。

  3. 「プロジェクト・プロパティ」ダイアログの左パネルで、「ライブラリとクラスパス」を選択します。

    「ライブラリとクラスパス」ダイアログが表示されます。

  4. 「ライブラリとクラスパス」ダイアログで、「Jar/ディレクトリの追加」をクリックします。

    「アーカイブまたはディレクトリの追加」ダイアログが表示されます。

  5. 「Jar/ディレクトリの追加」ダイアログで、追加する必要があるJARファイルを探します。

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

  7. プロジェクトを再ビルドします。

  8. すべての必要なファイルを探して追加できるまでこのプロセスを繰り返します。

  9. ソース・コードに問題を見つけた場合は、クイック修正を使用してインポートの編成および追加を行います。

Oracle Stream Analyticsサーバーの起動

デプロイ

  1. プロジェクトを右クリックします。

    コンテキスト・メニューが表示されます。

  2. コンテキスト・メニューから、「デプロイ」→「新規デプロイメント・プロファイル」の順に選択します。

    「デプロイメント・プロファイルの作成」ダイアログが表示されます。

  3. 「デプロイメント・プロファイルの作成」ダイアログで、「OEPプロジェクト・デプロイメント・プロファイル」などのデプロイメント・プロファイルを選択し、名前を付けます。

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

    「OEPプロジェクト・デプロイメント・プロファイル」ダイアログが表示されます。

  5. 「OEPプロジェクト・デプロイメント・プロファイル」ダイアログでは、新規Oracle Stream Analyticsサーバー接続を作成または既存の接続を選択できます。

    既存の接続を選択するには、次のようにします。

    1. OEPサーバーへの接続ドロップダウン・リストで、使用する既存の接続を選択します。

    2. 「OEPプロジェクト・デプロイメント・プロファイル」ダイアログで、デフォルトを使用または要求されるプロファイルの詳細を入力します。

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

    新規接続を作成するには、次のようにします。

    1. 「追加」(+)ボタンをクリックし、Oracle Stream Analyticsサーバー接続を作成します。

      「OEPサーバー接続の作成」ダイアログが表示されます。

    2. 「OEPサーバー接続の作成」ダイアログで、接続の詳細を入力します。

      「OEPサーバー接続名」: SampleOEPConnection 「OEPサーバー・ホーム・パス」: /Oracle/Middleware/my_oep/ 「デフォルト値の使用」: 未チェックOEPサーバー・プロジェクト・ディレクトリ: user_projects/domains/sample_domain/defaultserverUse デフォルト値の使用: 未チェック ホスト: localhost ポート: 9002 デフォルト値の使用: 未チェック ユーザー名: oepadmin ユーザー・パスワード: welcome1 OEPサーバーの追加パラメータ: 空白

    3. 「OEPサーバー接続の作成」ダイアログで、「接続のテスト」をクリックします。

      問題がない場合、「接続のテスト」ボタンの下のメッセージ・ボックスに「成功」と表示されます。エラーとなった場合は、エラーを探して修正し、再試行します。

    4. 「成功」と表示されたら、「OK」をクリックします。

      「OEPプロジェクト・デプロイメント・プロファイル」ダイアログが表示されます。

    5. 「OEPプロジェクト・デプロイメント・プロファイル」ダイアログで、デフォルトを使用または要求されるプロファイルの詳細を入力します。

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

    MANIFEXT.MFを生成する手順:

    • MANIFEXT.MFの再作成ボタンをクリックして、マニフェスト・ファイルを再生成します。

      マニフェスト・ファイルとインポートおよびエクスポートされたパッケージが再生成されます。

  6. プロジェクトを右クリックし、選択または作成したデプロイメント・プロファイルを選択します。

    「<プロファイル名>のデプロイ」ダイアログが表示されます。

  7. 「<プロファイル名>のデプロイ」ダイアログで、「OSGiバンドルのターゲット・プラットフォームへのデプロイ」を選択して「次へ」をクリックします。

    「Summary」ダイアログ・ボックスが表示されます。

  8. 「サマリー」ダイアログで設定を確認し、「終了」をクリックします。

  9. デプロイが終了するまで、しばらく待ちます。

    「デプロイメント - ログ」タブに、デプロイが完了したというメッセージが表示されます。アプリケーションの開始に問題がある場合は、自動的にアンデプロイされます。

  10. サーバー・ログおよびデプロイ済アプリケーションのリストを参照します。

    サーバー・ログの参照:

    1. 「リソース」ウィンドウが開いていない場合は、「ウィンドウ」→「リソース」の順に選択します。

      「リソース」ウィンドウが表示されます。

    2. 「リソース」ウィンドウ→「IDE接続」→「OEPサーバー」に移動します。

    3. 「OEPサーバー」を展開し、OEPサーバー接続のリストを表示します。

    4. 接続を右クリックします。

      コンテキスト・メニューが表示されます。

    5. コンテキスト・メニューから、「OEPサーバー・ログ・ページを開く」を選択します。

      OEPサーバー・ログ・ページが開き、サーバー・ログ・メッセージを確認できます。

    デプロイ済のアプリケーションのリストの参照:

    1. 「リソース」ウィンドウが開いていない場合は、「ウィンドウ」→「リソース」の順に選択します。

      「リソース」ウィンドウが表示されます。

    2. 「リソース」ウィンドウ→「IDE接続」→「OEPサーバー」に移動します。

    3. 「OEPサーバー」を展開し、OEPサーバー接続のリストを表示します。

    4. 「リソース」ウィンドウ→「IDE接続」→「OEPサーバー」に移動します。

      OEPサーバー接続のリストが表示されます。

    5. 「OEPサーバー」で、先ほどデプロイしたアプリケーションへの接続を展開します。

      -OEP Server     -SampleOEPConnection       +Applications

    6. 展開した接続で、「アプリケーション」を展開します。

      デプロイ済アプリケーションの一覧とそれぞれのステータスが表示されます。たとえば、次のようなリストが表示されます。

      application1 [RUNNING]
      my_application2 [SUSPENDED}

3.2 プロジェクトへのライブラリの追加

ライブラリJARファイルをリソースとしてアプリケーションに追加できます。

  1. Oracle JDeveloperで、プロジェクトを右クリックします。

    コンテキスト・メニューが表示されます。

  2. コンテキスト・メニューで、「プロジェクト・ライブラリの追加」を選択します。

    「プロジェクト・ライブラリの追加」ダイアログが表示されます。

  3. 「プロジェクト・ライブラリの追加」ダイアログの「ライブラリJAR」フィールドで、アプリケーションに追加するライブラリJARファイルへ移動します。
  4. 「OK」をクリックします。

    JARファイルがプロジェクトの「リソース」に表示され、それに応じてプロジェクト・マニフェスト・ファイルが更新されます。

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

アプリケーション・ライブラリを作成して、同じドメインで実行するアプリケーション間で共有できます。

Oracle Stream Analyticsライブラリ・プロジェクトの作成

  1. Oracle JDeveloperで、「ファイル」→「ギャラリから新規作成」の順に選択します。

    「新規ギャラリ」ダイアログが表示されます。

  2. 「新規ギャラリ」ダイアログの左ウィンドウの「OEP層」を、右ウィンドウで「OEPライブラリ・プロジェクト」を選択します。

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

    「OEPライブラリ・プロジェクトの作成 - ステップ1/2」ダイアログが表示されます。

  4. 「OEPライブラリ・プロジェクトの作成 - ステップ1/2」ダイアログで、プロジェクト名を入力し、オプションでディレクトリの場所を入力します。

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

    「OEPライブラリ・プロジェクトの作成 - ステップ3/2」ダイアログが表示されます。

  6. 「OEPライブラリ・プロジェクトの作成 - ステップ2/2」ダイアログで、ライブラリ・プロジェクトに含めるJARファイルを探します。

  7. 「OEPライブラリ・プロジェクトの作成 - ステップ2/2」ダイアログで、その他の情報を入力またはデフォルトを使用し、「終了」をクリックします。

    ライブラリがドライバの場合、ライブラリが正しい順番でアクティブ化されるように「Library Extensionsへのデプロイ」チェック・ボックスをチェックします。

    ライブラリ・プロジェクトがアプリケーションの「プロジェクト」に表示されます。

デプロイメント・プロファイルの作成およびデプロイ

  1. ライブラリ・プロジェクトを右クリックし、「デプロイ」を選択します。
  2. app_lib_profile-nを選択またはこのライブラリ用の新しいデプロイメント・プロファイルを作成します。
  3. 「デプロイメント・アクション」ダイアログで、「ライブラリJARをOEPサーバーにデプロイします」を選択し、「次へ」をクリックします。
  4. 「デプロイメント・サマリー」を確認し、「終了」をクリックします。

    ライブラリがローカル・サーバーにデプロイされます。

    注意:

    12cでは、Oracle JDeveloperデプロイメント・プロファイルはローカルOracle Event Processing接続のみをサポートします。

  5. Oracle Event Processingサーバーを再起動します。

3.4 アセンブリ・ファイルおよび構成ファイル

コンポーネントをEPNに追加して接続を作成した際に、Oracle JDeveloperはアセンブリ・ファイルおよび構成ファイルを作成します。デフォルトのものではなく、独自のアセンブリ・ファイルおよび構成ファイルを作成して使用することもできます。コンポーネント・ウィザードがデフォルトのprocessor.xmlファイルを表示する際に、作成したファイルでデフォルトを置換できます。アプリケーションには、1つ以上のアセンブリ・ファイルおよび1つ以上の構成ファイルがあります。

  • アセンブリ・ファイルは、EPNダイアグラム・ステージおよび構造を記述するコンテキスト・ファイルです。デフォルトで、アセンブリ・ファイルの名前は<Project_Name>.context.xmlです。

  • 構成ファイルには、EPNステージのコンポーネント構成および動的パラメータが記述されます。デフォルトで、構成ファイルの名前はprocessor.xmlです。

コンポーネントをEPNに追加する際に、デフォルトの構成ファイル名を別のファイルに変更できます。別のファイルがすでに存在する場合、Oracle JDeveloperはそのファイルの構成を保存します。ファイルが存在しない場合、Oracle JDeveloperはファイルを作成してそこに構成を保存します。たとえば、すべてのアダプタ構成情報をadapter.xml構成ファイルに保存することができます。コンポーネントを作成する際に構成設定を何も指定しない場合、入れる構成がないため、Oracle JDeveloperは新しい構成ファイルを作成しません。

注意:

XMLファイルの識別子および名前は大/小文字が区別されます。 アセンブリ・ファイルでコンポーネントIDを参照する場合は、同じ文字を使用してください。

このガイドの説明には、学習用のサンプルとなるアセンブリ・ファイルおよび構成ファイルが付いています。

3.4.1 アセンブリ・ファイルの作成

  1. Oracle JDeveloperでプロジェクトを選択し、「ファイル」「新規」「ギャラリから」の順に選択します。

    「新規ギャラリ」ダイアログが表示されます。

  2. 「新規ギャラリ」ダイアログの「カテゴリ」で、「OEP層」を展開し、「OEPファイル」を選択します。
  3. 「新規ギャラリ」ダイアログの「アイテム」で、「OEPアセンブリ・ファイル」を選択して「OK」をクリックします。

    「OEPアセンブリ・ファイルの作成」ダイアログが表示されます。

  4. 「OEPアセンブリ・ファイルの作成」ダイアログで、ファイル名およびディレクトリの場所を入力またはデフォルトを使用します。

    プロジェクトと関連付けるアセンブリ・ファイルの名前を入力します。

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

    左ペインのプロジェクトで、「OEPコンテンツ」→「Spring」に新規アセンブリ・ファイルが表示されます。

3.4.2 コンポーネント構成ファイルの作成

  1. Oracle JDeveloperでプロジェクトを選択し、「ファイル」「新規」「ギャラリから」の順に選択します。

    「新規ギャラリ」ダイアログが表示されます。

  2. 「新規ギャラリ」ダイアログの「カテゴリ」で、「OEP層」を展開し、「OEPファイル」を選択します。
  3. 「新規ギャラリ」ダイアログの「アイテム」で、「OEP構成ファイル」を選択して「OK」をクリックします。

    「OEP構成ファイルの作成」ダイアログが表示されます。

  4. 「OEP構成ファイルの作成」ダイアログで、ファイル名およびディレクトリの場所を入力またはデフォルトを使用します。

    特定のコンポーネント、コンポーネントのグループ、またはコンポーネントのタイプと関連付ける構成ファイルの名前を入力します。

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

    左ペインの「OEPコンテンツ」→「wlevs」のプロジェクトに新規構成ファイルが表示されます。

3.4.3 構成ファイルへのコンポーネントの追加

Oracle JDeveloperでは、「コンポーネント」ウィンドウから開いている構成ファイルにコンポーネントをドラッグできます。これは、アセンブリ・ファイルでは動作しません。

  1. Oracle JDeveloperで、コンポーネントを追加する構成ファイルを開きます。

    構成ファイルが中央パネルで開き、「コンポーネント」ウィンドウが右パネルに表示されます。

  2. コンポーネントを追加したい構成ファイルにカーソルを置きます。

    その場所に点滅するカーソルが表示されます。

  3. 「コンポーネント」ウィンドウで、追加するコンポーネントを探します。
  4. 開いている構成ファイルにコンポーネントをドラッグ・アンド・ドロップします。

    対象のコンポーネントのウィザードが表示されます。

    構成ファイル内の無効な場所を選択している場合、有効な場所を選択できるようにOracle JDeveloperはエラー・メッセージを表示します。

  5. 構成ウィザードが要求する構成情報を入力し、「OK」をクリックします。

    Oracle JDeveloperは構成ファイルに対象のコンポーネントの構成を追加し、必要に応じて対応するアセンブリ設定でアセンブリ・ファイルを更新します。

3.4.4 コンポーネントへの構成設定の追加

コンポーネントをEPNに追加する場合、カスタム構成設定を使用することもデフォルト構成を使用することもできます。デフォルト構成を使用する場合、Oracle JDeveloperは構成ファイルにそのコンポーネントのエントリを追加しません。また、構成プロセスで新しい構成ファイル名を指定した場合でも、Oracle JDeveloperは構成ファイルを作成しません。

後でデフォルト設定を使用することに決定した場合、「アセンブリ・ファイルおよび構成ファイル」に説明があるように構成ファイルを作成して完全なコンポーネント構成を追加するか、デフォルトのprocessor.xmlファイル内の構成を生成する必要があります。

次の例は、processor.xmlファイル内のAdapterOutputChannel用の構成エントリの生成方法を示しています。

チャネル構成の追加

  1. EPNダイアグラムのチャネル・コンポーネントを右クリックします。

    コンテキスト・メニューが表示されます。

  2. コンテキスト・メニューで「構成のソースの追加」を選択します。

    processor.xmlファイルが開き、コンポーネントのデフォルト構成を表示します。デフォルト構成は編集してカスタマイズできます。

    <?xml version="1.0" encoding="UTF-8"?>
    <wlevs:config xmlns:wlevs="http://www.bea.com/ns/wlevs/config/application">
      <channel>
        <name>AdapterOutputChannel</name>
      </channel>
    </wlevs:config>
    
  3. max-threads要素を追加してチャネルをマルチスレッド化します。
    <?xml version="1.0" encoding="UTF-8"?>
    <wlevs:config xmlns:wlevs="http://www.bea.com/ns/wlevs/config/application">
      <channel>
        <name>AdapterOutputChannel</name>
        <max-threads>4</max-threads>
      </channel>
    </wlevs:config>
    

    Oracle Stream Analyticsサーバーがこのチャネルのイベントを処理するために使用可能なスレッドの最大数は4です。

3.5 リレーション・チャネルの構成

デフォルトのチャネルは、名前、ID、システム・タイムスタンプ、および100ミリ秒(100,000,000ナノ秒)のタイムアウトのデフォルトのハートビートを持つ、シングル・スレッドのストリーム・チャネルです。詳細は、Oracle Stream Analyticsによるイベント処理用アプリケーションの開発のチャネルの構成を参照してください。アセンブリ・ファイルにis-relation="true"要素および属性を追加して、デフォルトのチャネルをリレーションに変更できます。

リレーション・チャネルは挿入、削除および更新操作をサポートしています。

  1. Oracle JDeveloper EPNエディタで「チャネル」ステージを右クリックし、「アセンブリのソースに移動」を選択します。

    アセンブリ・ファイルが表示されます。

  2. アセンブリ・ファイルのチャネル定義の隣でカーソルが点滅します。

    次のサンプルと同様の行がチャネル定義行です。

    <wlevs:channel id="TestChannel" event-type="TestEventType"/>
    
  3. チャネルをリレーションに変更するには、is-relation="true"設定を追加します。
    <wlevs:channel id="TestChannel" event-type="TestEventType" is-relation="true" primary-key="testPrimaryKey" />
    

    このチャネルをリレーションとして指定する場合は、primary-key属性も構成する必要があります。主キーは、各イベントを一意に識別する空白またはカンマ区切りのイベント・プロパティ名のリストです。

3.6 アプリケーション・タイムスタンプ・チャネルの構成

アプリケーションがチャネルにタイムスタンプを付けるように構成できます。この場合、イベントのタイムスタンプは、構成可能なwlevs:expression要素によって判定されます。標準的な式の例として、イベントでのプロパティへの参照があります。イベントに式がない場合、タイムスタンプは前のイベントから伝播されます。たとえば、別のダウンストリームOracle CQLプロセッサのアプリケーション・タイムスタンプ・チャネルにイベントを送信する、Oracle CQLプロセッサのシステム・タイムスタンプ・チャネルがある場合などです。

イベント・タイプが作成済である必要があります。チャネルは、データを正しいステージに送信するために、イベント・タイプを認識している必要があります。

  1. デフォルト・チャネルを作成します。
  2. アプリケーション・アセンブリ・ファイルでwlevs:application-timestamped子要素を追加します。
  3. wlevs:application-timestamped子要素に、Oracle Stream Analyticsがタイムスタンプ値を生成するために使用するwlevs:expression子要素を指定します。次に例を示します。
    <wlevs:channel id="fxMarketAmerOut" event-type="eventtype" >
        <wlevs:application-timestamped>
           <wlevs:expression>mytime+10</wlevs:expression>
        </wlevs:application-timestamped>
    </wlevs:channel>
    
  4. オプションのwlevs:application-timestamped属性、is-total-orderを構成します。trueの場合、is-total-order属性は、パブリッシュされたアプリケーション時間が最後に使用された値よりも必ず大きくなることを示します。

    次に例を示します。

    <wlevs:channel id="fxMarketAmerOut" event-type="eventtype" >
        <wlevs:application-timestamped is-total-order="true">
           <wlevs:expression>mytime+10</wlevs:expression>
        </wlevs:application-timestamped>
    </wlevs:channel>
    
  5. アセンブリ・ファイルを保存して閉じます。

3.7 JavaBeanイベント・タイプの作成および登録

  1. イベント・タイプを追加するOracle JDeveloperプロジェクトを選択します。

  2. 引数なしのpublicコンストラクタを持つJavaBeanを作成します。

  3. オプション。Oracle Coherenceでイベントをキャッシュする場合は、クラスをシリアライズ可能にします。

  4. JavaBeanにprivateフィールドおよびアクセッサ・メソッドを追加します。

  5. Oracle JDeveloperのEPNダイアグラムを開いた状態で、「イベント」タブを使用してJavaBeanの名前などのイベント・タイプのプロパティを構成します。

    「イベント」タブを使用すると、イベント・タイプの宣言および編集が可能です。作成または編集したイベント・タイプは、「イベント」タブを閉じる際にアプリケーション・アセンブリ・ファイルの対応するイベント・タイプ・リポジトリ・セクションに登録されます。

    1. 「イベント・タイプの定義」でアプリケーション・アセンブリ・ファイルを選択します。

    2. 「追加」(+)ボタンをクリックします。

      「イベント・タイプの詳細」パネルが左側に表示されます。

    3. 「イベント・タイプの詳細」「JavaBeanで定義されるプロパティ」を選択します。

    4. JavaBeanクラスの名前を入力します。

3.8 タプル・イベント・タイプの作成および登録

この手順では、Oracle Stream Analytics IDEのイベント・タイプ・リポジトリ・エディタを使用してタプルとしてのOracle Stream Analyticsイベント・タイプを作成および登録する方法について説明します。イベントを設計する際は、設計を『Oracle Fusion Middleware Oracle Stream Analyticsによるイベント処理用アプリケーションの開発』で説明されているイベント・データのタイプに限る必要があります。

Oracle JDeveloperでのタプル・イベント・タイプの作成

  1. イベント・タイプを追加するOracle JDeveloperプロジェクトを選択します。

  2. Oracle JDeveloperのEPNダイアグラムを開いた状態で、「イベント」タブを使用してJavaBeanの名前などのイベント・タイプのプロパティを構成します。

    「イベント」タブを使用すると、イベント・タイプの宣言および編集が可能です。作成または編集したイベント・タイプは、「イベント」タブを閉じる際にアプリケーション・アセンブリ・ファイルの対応するイベント・タイプ・リポジトリ・セクションに登録されます。

    1. 「イベント・タイプの定義」でアプリケーション・アセンブリ・ファイルを選択します。

    2. 「追加」(+)ボタンをクリックします。

      「イベント・タイプの詳細」パネルが左側に表示されます。

    3. 「イベント・タイプの詳細」「宣言的プロパティ」を選択します。

    4. 「タイプ名」フィールドで、新しいイベント・タイプの名前を入力します。

    5. 「イベント・タイプのプロパティ」で、「追加」(+)ボタンを使用して「イベント・タイプのプロパティ」リストにプロパティ行を追加します。

    6. 「名前」列にカーソルを置き、プロパティ名を編集します。

    7. 「タイプ」列にカーソルを置き、ドロップダウン・リストからデータ型を選択します。

      charデータ型のデフォルトの長さは256文字ですが、「文字の長さ」列にカーソルを置いて編集できます。

3.9 イベントBeanの作成

イベントBeanは、通過するイベントにロジックを適用するEPNコンポーネントです。イベントBeanのロジックは、JavaBeanイベント・タイプによって定義されます。

  1. (オプション)使用するJavaクラスを作成します。

    ステップ3では、既存のクラスを選択、または新しいクラスを作成して後でロジックを追加します。

  2. Oracle JDeveloperのEPNダイアグラムを開いた状態で、「イベントBean」コンポーネントを「コンポーネント」ウィンドウからEPNダイアグラムの空の領域にドラッグします。

    「新規EventBean」ウィザードが表示されます。

  3. 「新規EventBean」ウィザードに次の情報を入力します。

    「EventBean ID」: このイベントBeanの一意の識別子です。「EventBeanクラス」: このイベントBeanで使用するJavaBeanクラス(イベント・タイプ)を追加(+)または選択します。

    Javaクラス・イベント・シンク、イベント・ソース、またはその両方を作成する方法は、『Oracle Fusion Middleware Oracle Event Processingアプリケーションの開発』を参照してください。

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

    Oracle JDeveloperによってイベントBeanがEPNに追加されます。

  5. 上位コンポーネントをイベントBeanにドラッグし、イベントBeanをEPNの正しい位置に配置します。

    EPNダイアグラムが調整され、イベントBeanが正しい位置に表示されます。

例3-1 アセンブリ・ファイル

次のイベントBeanアセンブリ・ファイル・エントリは、イベントBean ID、関連付けられたクラス、およびイベントBeanは上位Bean出力チャネル・コンポーネントからのイベントをリスニングすることを示します。

<wlevs:event-bean id="eventBean" class="tradereport.TradeEvent" >
   <wlevs:listener ref="BeanOutputChannel"/>
<wlevs:event-bean>

例3-2 構成ファイル

次のイベントBeanの構成ファイル・エントリは、record-parameters子要素を使用して構成されたイベントBeanを示します。

 <event-bean>
    <name>eventBean</name>
      <record-parameters>
        <dataset-name>tradereport_sample</dataset-name>
          <event-type-list>
            <event-type>TradeEvent</event-type>
          </event-type-list>
          <batch-size>1</batch-size>
          <batch-time-out>10</batch-time-out>
        </record-parameters>
  </event-bean>

3.10 Spring Beanの作成

イベント処理ネットワークにクラスを含めるためにSpring BeanとしてJavaクラスを構成できます。これは、EPNに組み込む既存のSpring Beanがある場合、またはSpringの機能をJavaコードに組み込む場合の適切なオプションです。

  1. (オプション)『Oracle Fusion Middleware Oracle Stream Analyticsによるイベント処理用アプリケーションの開発』で説明されているように、使用するJavaBeanイベント・タイプを作成します。

    ステップ3では、既存のクラスを選択、または新しいクラスを作成して後でロジックを追加します。

  2. Oracle JDeveloperのEPNダイアグラムを開いた状態で、「Bean」コンポーネントを「コンポーネント」ウィンドウからEPNダイアグラムの空の領域にドラッグします。

    「新規Bean」ウィザードが表示されます。

  3. 「新規Bean」ウィザードに次の情報を入力します。

    「Bean ID」: このイベントBeanの一意の識別子です。「Beanクラス」: このBeanで使用するSpring機能を持つJavaBeanクラス(イベント・タイプ)を追加(+)または選択します。

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

    Oracle JDeveloperによってイベントBeanがEPNに追加されます。

  5. 上位コンポーネントをイベントBeanにドラッグし、イベントBeanをEPNの正しい位置に配置します。

    EPNダイアグラムが調整され、イベントBeanが正しい位置に表示されます。

3.11 表ソースの構成

表ソース・コンポーネントをアプリケーションに追加することによって、Oracle CQL問合せからリレーショナル・データベース表の中のデータにアクセスできます。表ソースを追加する場合、表ソースをリレーショナル・データベース表への読取りアクセス用のデータ・ソースと関連付けます。Oracle Stream Analyticsリレーショナル表ソースはプル・データ・ソースであり、Oracle Stream Analyticsはデータベースの読取りを行うために、定期的にイベント・ソースの新しいデータを確認します。

  • ストリームの結合は、NOWウィンドウでのみ行うことができます。

    表ソースの変更はストリーム・データに対してタイムリに調整できないため、表ソースとイベント・ストリームはNowウィンドウでのみ結合できます。

    複数のデータベース表またはビューを結合できます。

  • Oracle JDBCデータ・カートリッジを使用すると、Oracle CQL問合せを使用して複雑なSQL問合せと複数の表およびデータ・ソースを自由に統合できます。Oracle CQLデータ・カートリッジによるアプリケーションの開発のOracle JDBCカートリッジを参照してください。

    注意:

    Oracle CQL文からリレーショナル・データベース表にアクセスするにはOracle JDBCデータ・カートリッジを使用することをお薦めします。

NOWウィンドウとデータ・カートリッジのどちらを使用する場合でも、Oracle Stream Analyticsサーバー・ファイルに表ソースを定義する必要があります。

表ソースの作成

  1. Oracle JDeveloperでEPNダイアグラムを開きます。

  2. 「コンポーネント」ウィンドウの「基本コンポーネント」で、「表」コンポーネントをEPNの空白領域にドラッグします。

    「新規表」ウィザードが開きます。

  3. 「新規表」ウィザードで、次の値を入力して「OK」をクリックします。

    「表ID」: Stock 「イベント・タイプ」: TradeEvent 「データ・ソース」: StockDataSource

    デフォルトで、表ソース・ステージはイベント・タイプの名前をデータベースのデフォルトの表名として使用します。また、table-name要素で明示的に表名を指定することもできます。table-name要素には、イベント・データを取得するデータベース表の名前を指定します。

    TradeEventイベント・タイプは、リレーショナル・データベース内の列にマップされる5つのプライベート・フィールド(symbolpricelastPricepercChangeおよびvolume)があるJavaクラスから作成されます。

アセンブリ・ファイルには、Stock表とprocプロセッサを関連付ける次のエントリがあります。

<wlevs:table id="Stock" event-type="TradeEvent" data-source="StockDataSource"/>

<wlevs:processor id="proc">
 <wkevs:table-source ref="Stock" />
</wlevs:processor>

注意:

XMLTYPEプロパティは表ソースに対してサポートされていません。

データ・ソースの作成

  1. Oracle JDeveloperの構成ファイルで、次の行を追加してデータ・ソースを定義します。
      <data-source>
        <name>StockDataSource</name>
        <connection-pool-params>
          <initial-capacity>1</initial-capacity>
          <max-capacity>10</max-capacity>     
        </connection-pool-params>
        <driver-params>
          <url>jdbc:derby:</url>
          <driver-name>org.apache.derby.jdbc.EmbeddedDriver</driver-name>
          <properties>
            <element>
              <name>databaseName</name>
              <value>db</value>
            </element>
            <element>
              <name>create</name>
              <value>true</value>
            </element>
          </properties>
        </driver-params>
        <data-source-params>
          <jndi-names>
            <element>StockDataSource</element>
          </jndi-names>
          <global-transactions-protocol>None</global-transactions-protocol>
        </data-source-params>
      </data-source>
    
  2. ファイルを保存します。

例3-3 Stockデータベース表からのデータの読取り

構成後、別のイベント・ストリームであるかのようにStock表にアクセスするOracle CQL問合せを定義できます。次の例では、問合せはStockTradeIStreamChannelイベント・ストリームをStock表と結合しています。

SELECT StockTradeIStreamChannel.symbol, StockTradeIStreamChannel.price,
         StockTradeIStream.lastPrice, StockTradeIStream.percChange,
         StockTradeIStream.volume, Stock
FROM   StockTraceIStreamChannel [Now], Stock
WHERE  StockTradeIStreamChannel.symbol = Stock.symbol

表ソースの変更とストリーム・データはすぐには連係されないため、表ソースはNowウィンドウを使用してイベント・ストリームにのみ結合でき、また単一のデータベース表にのみ結合できます。

3.12 表シンクの構成

表シンク・コンポーネントをアプリケーションに追加すると、Oracle CQL問合せからリレーショナル・データベース表のデータを更新および削除できます。表シンクは上位コンポーネントからデータを受信し、受信したデータに応じて基礎となるリレーショナル・データベース表の更新操作および削除操作を行います。

表シンク・コンポーネントをアプリケーションに追加すると、受信したイベントをリレーショナル・データベースに格納できます。イベントが表シンクに入ると、データベースで永続化されてから下位のステージに送信されます。Oracle Stream Analyticsはデータベース表を作成しません。アプリケーションを実行する前にデータベース表を作成する必要があります。また、必要に応じて表のメンテナンスおよびバックアップを行う必要があります。

表シンクは、表ソースと同様の方法で作成できます。「表」コンポーネントをEPNダイアグラムにドラッグしてID、イベント・タイプおよびデータ・ソースを指定した後、アセンブリ・ファイル・エントリを編集して必要となるtable-nameおよびkey-properties要素を含めます。これらの要素は表ソースには不要です。

table-name要素には、イベント・データを格納するデータベース表の名前を指定します。更新操作および削除操作を行うOracle CQL問合せを有効にするため、key-properties要素にデータベース表の一意のキー値を指定します。

CQL、JavaおよびJDBC間で変換するデータ型

次の表は、CQL、JavaおよびJDBC間で変換するデータ型を示します。

CQLネイティブ型 Javaプリミティブ型 Javaラッパー型 JDBC型
BOOLEAN boolean Boolean BOOLEANBIT
INT int Integer INTEGER
BIGINT long Long BITINT
FLOAT float Float REAL
DOUBLE double Double DOUBLE
CHAR char[] String VARCHARLONGVARCHAR
BYTE byte[] Byte[] VARBINARYLONGVARBINARY
XMLTYPE なし java.sql.SQLXML サポート対象外
TIMESTAMP long java.util.datejava.sql.Timejava.sql.Timestamp TIMESTAMP
BIGDECIMAL なし java.math.BigDecimal NUMERIC
INTERVAL なし サポート対象外 VARCHARLONGVARCHAR
INTERVALYM なし サポート対象外 VARCHARLONGVARCHAR
OBJECT なし Class サポート対象外

アセンブリ・ファイル

<wlevs:table id="StockSink" event-type="TradeEvent" data-source="StockDataSource"
  table-name="StockEvents" key-properties="symbol" />

データ・ソースの構成

データ・ソースの構成は表ソースおよび表シンクと同じです。

StockEventsデータベース表へのデータの格納

次のOracle CQL問合せは入力チャネルからデータを取得し、表シンクに送信してイベント・データを永続化します。

SELECT * FROM StockTraceIStreamChannel

3.13 Oracle CQLパターンの使用

アプリケーションで簡単にOracle CQL問合せを作成できるように、Oracle JDeveloperは次の7つのOracle CQLパターンを提供しています。各Oracle CQLパターンは、Oracle CQLプロセッサのコンテキスト内に格納されます。プロセッサはすでにEPNに存在することも、存在しないこともあります。

  • 平均化ルール: 平均化ルール・コンポーネントを使用すると、指定したイベント数(表の行)の平均を計算できます。

  • 不足イベント・ルールの検出: 不足イベント・ルールの検出コンポーネントを使用すると、期待されるイベントが発生しない場合に検出を行うことができます。

  • パーティション化ルール: パーティション化ルール・コンポーネントを使用すると、イベント・パネルをイベント・プロパティによってパーティション化し、パーティション内の指定されたイベント数を表示できます。

  • 「後続のフィルタ問合せを使用した選択」: 「Selectフィルタ副問合せ」コンポーネントを使用すると、イベントをフィルタし、フィルタ基準を通過したイベントをビューに移入できます。

  • 複数ストリームからの選択: 複数ストリームからの選択コンポーネントを使用すると、2つのストリームを結合して相関イベントから選択することができます。

  • FromのあるSelect: FromのあるSelectコンポーネントを使用すると、特定のプロパティによってチャネルからイベントを選択できます。

  • パターン一致を使用したSELECT: パターン一致を使用したSELECTコンポーネントを使用すると、特定のプロパティ値によってチャネルからイベントを選択できます。

手順

使用可能なOracle CQLパターンをEPNに追加するには、次の手順を実行します。各Oracle CQLパターンは、Oracle CQLプロセッサのコンテキスト内に格納されます。プロセッサはすでにEPNに存在することも、存在しないこともあります。

プロセッサがすでにEPNに存在する場合、パターンを既存のプロセッサにドラッグ・アンド・ドロップします。プロセッサがEPNに存在しない場合、ステップ2から開始します。

  1. Oracle CQLパターンを格納するプロセッサを指定します。

    1. プロセッサがすでにEPNに存在する場合、パターンを既存のプロセッサにドラッグ・アンド・ドロップします。

    2. プロセッサがEPNに存在しない場合、EPNダイアグラムの空のスポットにパターンをドラッグします。

    対象のパターンの2段階のウィザードのステップ1で、デフォルト値が表示されます。

  2. 「Oracle CQLパターン・ウィザード, ステップ1/2」画面で、デフォルトを使用または次の値を入力します。既存のプロセッサにOracle CQLパターンをドラッグ・アンド・ドロップする場合、これらの値は変更できません

    「プロセッサID」: このOracle CQLパターンを格納するOracle CQLプロセッサの一意のID値です。Oracle JDeveloperはデフォルトの一意のIDを提供します。

    「ファイル名」: Oracle CQLパターン構成を格納する構成ファイルの名前です。Oracle JDeveloperはデフォルトで既存のprocessor.xml構成ファイルを提供します。既存のOracle CQLプロセッサを選択した場合、Oracle JDeveloperはOracle CQLパターン構成をプロセッサと同じファイルに格納するため、「ファイル名」フィールドは使用できません。

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

    該当する場合、対象のパターンの2段階のウィザードのステップ2で、デフォルト値が表示されます。

  4. 「Oracle CQLパターン・ウィザード, ステップ2/2」画面で、適切な場合はデフォルト値を使用し、必要な場合は値を入力します。

    フィールドの有効な値の詳細は、フィールドにカーソルを置いて右パネルのプロパティの説明を読むか、「ヘルプ」をクリックします。

    ステップ2の上部にはパラメータ・セクションがあり、下部にはOracle CQL文テンプレートがあります。上部セクションでパラメータを指定すると、次の図のようにテンプレートに色付きのコードで入力が反映されます。

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

    Oracle JDeveloperは、既存のルールを上書きすることなくプロセッサにOracle CQL処理コードを追加します。このサンプルのprocessor.xmlファイルには、MyProcessor Oracle CQLプロセッサ用の次のエントリが含まれています。

    <processor>
      <name>MyProcessor</name>
        <rules>
          <query id="RecordQuery"><![CDATA[
            SELECT name
            FROM MyChannel 
            WHERE name = “Johnson" ]]>
          </query>
        </rules>
    </processor>
    

    プロセッサがEPNに存在しない場合、Oracle CQLパターン・コードを含む新しいプロセッサがEPNに追加され、Sourceフィールドで示されるコンポーネントに接続されます。

ビューおよび問合せの有効なイベント・ソース

既存のOracle CQLプロセッサに追加されます。

  • プロセッサのイベントのソースであるすべてのチャネル

  • プロセッサのイベントのソースであるすべてのキャッシュ

  • プロセッサのイベントのソースであるすべての表

  • プロセッサのイベントのソースであるすべてのhadoop:files

  • プロセッサのイベントのソースであるすべてのnosql:stores

  • 現在のプロセッサのすべてのビュー

新しいプロセッサに追加されます。

  • すべてのチャネル

  • すべてのキャッシュ

  • すべての表

  • すべてのhadoop:files

  • すべてのnosql:stores

3.14 Oracle Coherenceキャッシュ・システムおよびキャッシュの構成

Oracle Coherenceキャッシング・システムおよびキャッシュを使用するようにアプリケーションを構成できます。アプリケーションをマルチサーバー・ドメインにデプロイしようとする場合は、このキャッシング・システムを使用します。Oracle Coherenceを使用して構成すると、第1キャッシュ・システムのみがサーバー内に構成されます。Oracle Stream Analyticsサーバーは、構成済の他のキャッシング・システムを無視します。

注意:

合法的にOracle CoherenceをOracle Stream Analyticsとともに使用するには、Coherence Enterprise Edition、Coherence Grid Edition、またはOracle WebLogic Application Gridのライセンスなどの有効なCoherenceライセンスを取得する必要があります。

Oracle Coherenceの詳細は、http://www.oracle.com/technetwork/middleware/coherence/overview/index.htmlを参照してください。

Oracle Coherenceキャッシュ・システムおよびキャッシュの作成

この手順では、Oracle CQLプロセッサ用のOracle Coherenceキャッシュ・システムおよびキャッシュを構成します。このキャッシュは、イベント・タイプを使用してリレーショナル・データベースの表の行を特定するキー・プロパティを指定します。このキャッシング・システムは公開されており、他のアプリケーションからキャッシュのデータにアクセスできます。

  1. Oracle JDeveloperでアプリケーションのEPNを開きます。
  2. 「コンポーネント」ウィンドウで「コヒーレンス・キャッシュ・システム」コンポーネントを選択し、EPNの空白領域にドラッグします。

    「コヒーレンス・キャッシュ・システム ステップ1/4」ダイアログが、次のデフォルト値とともに表示されます。

    「キャッシュ・システムID」: coherence-caching-system 「構成場所」: coherence-cache-config.xml

    coherence-cache-config.xmlファイルは、アプリケーションごとの構成ファイルです。そこには、cache-name要素内の個別のキャッシュ情報が含まれています。この手順を終えると、Oracle JDeveloperによってバンドルJARのMETA-INF/wlevs/coherenceディレクトリにcoherence-cache-config.xmlファイルが配置されます。

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

    「コヒーレンス・キャッシュ・システム ステップ2/4」ダイアログが表示されます。

  4. 「コヒーレンス・キャッシュ・システム - ステップ2/4」ダイアログで、次の値を指定します。

    「キャッシュ名」: Oracle Coherentキャッシュ・システムの最初のキャッシュの名前です。「値タイプ」: キャッシュに含まれる値のタイプです。イベント・タイプ・リポジトリの有効な型の名前である必要があります。

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

    「コヒーレンス・キャッシュ・システム ステップ3/4」ダイアログが表示されます。

  6. 「コヒーレンス・キャッシュ・システム - ステップ3/4」ダイアログで、「通知」チェック・ボックスを選択します。

    「通知」チェック・ボックスを選択すると、キャッシュ・システムが他のアプリケーションにこのキャッシュ・システムへのアクセスを許可します。

  7. 「次へ」をクリックします。

    「コヒーレンス・キャッシュ・システム - ステップ4/4」ダイアログが表示されます。

  8. 「コヒーレンス・キャッシュ・システム - ステップ4/4」ダイアログで、「終了」をクリックします。

例3-4 アセンブリ・ファイル

アセンブリ・ファイルには、キャッシュ・システムおよびcache1を作成した際に指定した情報が含まれています。このキャッシュは通知されます。

   <wlevs:cache id="cache1" value-type="TradeReport" advertise="true">
     <wlevs:caching-system ref="coherence-caching-system"/>
   </wlevs:cache>
   <wlevs:caching-system id="coherence-caching-system" provider="coherence"/>

注意:

EPNダイアグラムでCoherenceキャッシュ用のid設定を変更すると、アセンブリ・ファイルおよびcoherence-cache-config.xmlファイルのidが変更されます。ただし、アセンブリ・ファイルのソース・エディタでid設定を変更すると、アセンブリ・ファイルのidのみが変更されます。この場合、coherence-cache-config.xmlcache-name設定を手動で変更してアセンブリ・ファイルのid設定と一致させる必要があります。また、そのキャッシュへのすべての参照も変更する必要があります。

キャッシュが通知される場合、別のバンドル内にあるアプリケーションのEPNにあるコンポーネントがそのキャッシュを参照できます。次の例では、1つのバンドル内のプロセッサがcache-source要素を使用して、cacheprovidercache-idを持つ別のバンドルのキャッシュ・ソースを参照する方法を示しています。

<wlevs:processor id="myProcessor2">
    <wlevs:cache-source ref="cacheprovider:cache-id"/>
</wlevs:processor>

注意:

同一のOracle Stream Analyticsサーバーにデプロイされる1つ以上のアプリケーションのEPNアセンブリ・ファイルのOracle Coherenceキャッシュが存在する場合、ローダーまたはストアを使用して同一のキャッシュの複数のインスタンスを構成しないでください。

各EPNアセンブリ・ファイル内でローダーまたはストアを使用して同一のOracle Coherenceキャッシュをそれぞれ構成する、複数のアプリケーションを使用することによって、これを不注意で行う可能性があります。ローダーまたはストアのある同じキャッシュの複数のインスタンスを構成すると、Oracle Stream Analyticsは例外をスローします。

例3-5 構成ファイル

coherence-cache-config.xmlファイルは基本的なOracle Coherence構成ファイルで、任意のOracle Coherenceアプリケーションでtrueとなるように、Oracle Coherence DTDに準拠する必要があります。

coherence-cache-config.xmlの詳細は、Oracle Coherenceドキュメント(http://www.oracle.com/technetwork/middleware/coherence/overview/index.html)を参照してください。

Springを使用してキャッシュのローダーまたはストアを構成する場合は、Oracle Stream Analytics Oracle Coherenceファクトリを宣言する必要があります。ファクトリを指定するには、cachestore-scheme要素を使用し、Oracle CoherenceがOracle Stream Analyticsにコールして、キャッシュのために構成されるローダーまたはストアへの参照を取得できるようにするためのファクトリ・クラスを含めます。ローダーまたはストアの構成における唯一の差異は、method-name要素が、ローダーが使用されるときはgetLoaderの値を持ち、ストアが使用されているときはgetStoreの値を持つことです。キャッシュ名は、入力パラメータとしてファクトリに渡します。

<cache-config>  
    <caching-scheme-mapping>    
        <cache-mapping>       
            <cache-name>myCoherenceCache</cache-name>       
            <scheme-name>new-replicated</scheme-name>     
        </cache-mapping>             
        <cache-mapping>       
            <cache-name>myLoaderCache</cache-name>       
            <scheme-name>test-loader-scheme</scheme-name>     
        </cache-mapping>         
        <cache-mapping>       
            <cache-name>myStoreCache</cache-name>       
            <scheme-name>test-store-scheme</scheme-name>     
        </cache-mapping>
        <cache-mapping>
            <cache-name>
                cache1
            </cache-name>
            <scheme-name>
                new-replicated
            </scheme-name>
        </cache-mapping>
    </caching-scheme-mapping>      
    <caching-schemes>    
        <replicated-scheme>      
            <scheme-name>new-replicated</scheme-name>      
            <service-name>ReplicatedCache</service-name>      
            <backing-map-scheme>        
                <class-scheme>          
                    <scheme-ref>my-local-scheme</scheme-ref>					        
                </class-scheme>      
            </backing-map-scheme>    
        </replicated-scheme>        
        <class-scheme>       
            <scheme-name>my-local-scheme</scheme-name>       
            <class-name>com.tangosol.net.cache.LocalCache</class-name>       
            <eviction-policy>LRU</eviction-policy>       
            <high-units>100</high-units>       
            <low-units>50</low-units>     
        </class-scheme>        
        <local-scheme>       
            <scheme-name>test-loader-scheme</scheme-name>       
            <eviction-policy>LRU</eviction-policy>       
            <high-units>100</high-units>       
            <low-units>50</low-units>


<!-- A cachestore-scheme element that gets a loader starts here -->       
            <cachestore-scheme>          
                <class-scheme>
     <class-factory-name>com.bea.wlevs.cache.coherence.configuration.SpringFactory
     </class-factory-name>            
                    <method-name>getLoader</method-name>            
                    <init-params>              
                        <init-param>                
                            <param-type>java.lang.String</param-type>                
                            <param-value>myCoherenceCache</param-value>              
                        </init-param>
                        <init-param>
                            <param-type>
                                java.lang.String
                            </param-type>
                            <param-value>
                                cache1
                            </param-value>
                        </init-param>
                    </init-params>          
                </class-scheme>       
            </cachestore-scheme> 
     <!-- The cachestore-scheme element ends here -->          
        </local-scheme> 
   
        <local-scheme>      
            <scheme-name>test-store-scheme</scheme-name>      
            <eviction-policy>LRU</eviction-policy>      
            <high-units>100</high-units>      
            <low-units>50</low-units> 

<!-- A cachestore-scheme element that gets a store starts here --> 
            <cachestore-scheme>        
                <class-scheme>
     <class-factory-name>com.bea.wlevs.cache.coherence.configuration.SpringFactory
     </class-factory-name>          
                    <method-name>getStore</method-name>          
                    <init-params>            
                        <init-param>               
                            <param-type>java.lang.String</param-type>               
                            <param-value>myCoherenceCache</param-value>            
                        </init-param>
                        <init-param>
                            <param-type>
                                java.lang.String
                            </param-type>
                            <param-value>
                                cache1
                            </param-value>
                        </init-param>
                    </init-params>        
                </class-scheme>      
            </cachestore-scheme>
     <!-- The cachestore-scheme element ends here --> 
        </local-scheme>  
    </caching-schemes>
</cache-config>

例3-6 tangosol-coherence-override.xmlファイル(オプション)

tangosol-coherence-override.xmlファイルはサーバー単位でグローバルなファイルです。これには、Oracle Coherenceドキュメントで操作構成と呼ばれているものが含まれています。このファイルには、Oracle Coherenceキャッシュのサーバー単位のグローバルな構成設定が含まれています。このファイルはXMLエディタで作成し、構成するサーバーのOracle Stream Analyticsconfigディレクトリに置きます。

注意:

Oracle Coherenceをクラスタリングに使用する場合は、tangosol-coherence-override.xmlファイルを含めないでください。

次のXMLをOracle Coherence構成ファイルに追加し、tangosol-coherence-override.xmlファイルを参照します。Oracle Stream Analyticsの起動時にOracle Coherenceが既存のOracle Coherenceクラスタへの参加を試行しないように、cluster-name要素を含めます。これが発生すると、問題が発生してOracle Stream Analyticsが起動できなくなる場合があります。

...
<coherence xml-override="/tangosol-coherence-override.xml">
  <cluster-config>
    <member-identity>
      <cluster-name>com.bea.wlevs.example.provider</cluster-name>
    </member-identity>
...
</coherence>

Oracle Stream Analyticsクラスタの詳細は、Oracle Stream Analyticsの管理のネイティブ・クラスタリングを参照してください。

3.15 ローカル・キャッシング・システムおよびキャッシュの構成

アプリケーションを構成して、Oracle Stream Analyticsローカル・キャッシュ・システムおよびキャッシュを使用できます。Oracle Stream Analyticsローカル・キャッシング・システムは、アプリケーションをマルチサーバー・ドメインにデプロイする計画がない場合に適切です。アプリケーションをマルチサーバー・ドメインにデプロイする計画がある場合は、Oracle Coherenceキャッシュを使用します。

ローカル・キャッシュ・システムおよびキャッシュの作成

この手順では、通知されるOracle Stream Analyticsローカル・キャッシュを作成します。

  1. Oracle JDeveloperでアプリケーションのEPNを開きます。
  2. 「コンポーネント」ウィンドウから「ローカル・キャッシュ・システム」コンポーネントをEPNの空白領域にドラッグします。

    「ローカル・キャッシュ・システム - ステップ1/5」ダイアログが表示されます。

  3. 「ローカル・キャッシュ・システム - ステップ1/5」ダイアログで、次の値を指定します。

    「キャッシュ・システムID」: このローカル・キャッシュ・システムを一意に識別するIDです。「ファイル名」: 構成ファイルの名前です。デフォルトはprocessor.xmlです。cache.xmlなどのファイル名に変更できます。

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

    「ローカル・キャッシュ・システム - ステップ2/5」ダイアログが表示されます。

  5. 「ローカル・キャッシュ・システム - ステップ2/5」ダイアログで、「追加」(+)または「選択」ボタンを使用してcom.bea.wlevs.cache.spi.CachingSystemインタフェースを実装するクラスを指定します。
  6. 「ローカル・キャッシュ・システム - ステップ2/5」ダイアログで、「通知」チェック・ボックスを選択します。

    「通知」チェック・ボックスを選択すると、キャッシュ・システムが他のアプリケーションにこのキャッシュ・システムへのアクセスを許可します。

  7. 「次へ」をクリックします。

    「ローカル・キャッシュ・システム - ステップ3/5」ダイアログが表示されます。

  8. 「ローカル・キャッシュ・システム - ステップ3/5」ダイアログで、次の値を指定します。

    「キャッシュ名」: Oracle Coherentキャッシュ・システムの最初のキャッシュの名前です。「値タイプ」: データベース値をロードするイベント・タイプです。

  9. 「次へ」をクリックします。

    「ローカル・キャッシュ・システム - ステップ4/5」ダイアログが表示されます。

  10. 「ローカル・キャッシュ・システム - ステップ4/5」ダイアログで、デフォルトを使用または値を指定します。
  11. 「終了」をクリックします。

例3-7 アセンブリ・ファイル

ローカル・キャッシュ・システムを作成した際に指定した値はアセンブリ・ファイルに格納されます。

<wlevs:cache id="localcache" value-type="HelloWorldEvent">
  <wlevs:caching-system ref="caching-system"/>
    </wlevs:cache>
  <wlevs:caching-system id="caching-system" class="hellowworld.MyClass" advertise="false"/>

例3-8 構成ファイル

キャッシュを作成した際に指定した値は構成ファイルに格納されます。

  <caching-system>
    <name>caching-system</name>
    <cache>
      <name>localcache</name>
      <max-size>64</max-size>
      <eviction-policy>LFU</eviction-policy>
    </cache>
  </caching-system>

3.16 Javaクラスのデバッグ

ローカルまたはリモートOracle Stream Analyticsサーバー上で、Oracle Stream AnalyticsアプリケーションのJavaクラスをデバッグできます。

3.16.1 ローカルOracle Stream Analyticsサーバーでのデバッグ

サーバー接続の作成

  1. 「ファイル」→「新規」→「ギャラリから」の順に選択します。

    「新規ギャラリ」ダイアログが表示されます。

  2. 「新規ギャラリ」ダイアログの左ウィンドウで、「カテゴリ」→「一般」→「接続」の順に選択します。

  3. 「新規ギャラリ」ダイアログの右ウィンドウで、「OEP接続」を選択します。

  4. 「OEPサーバー接続の作成」ダイアログに情報を入力します。

    「OEPサーバー接続名」: LocalCon1 「OEPサーバー・ホーム・パス」: /Oracle/Middleware/my_oep/ 「デフォルト値の使用」: 未チェック「OEPサーバー・プロジェクト・ディレクトリ」: user_projects/domains/ basicapp_domain/defaultserver 「デフォルト値の使用」: チェック 「ホスト」: 127.0.0.1 「ポート」: 9002 「デフォルト値の使用」: 未チェック 「ユーザー名」: oepadmin 「ユーザー・パスワード」: welcome1 OEPサーバーの追加パラメータ: 空白

プロジェクトでのLocalCon1接続の使用

新しいプロジェクトでLocalCon1接続を使用することや、既存のプロジェクトのプロパティを変更してLocalCon1接続を使用することができます。

動作確認のみを行う場合、次のようにしてHelloWorld Oracle Stream Analyticsプロジェクトを作成します。

  1. Oracle JDeveloperで、「ファイル」→「新規」→「プロジェクト」を選択します。

  2. 「新規ギャラリ」ダイアログで、「OEPプロジェクト」を選択して「OK」をクリックします。

  3. OEPプロジェクトの作成ウィザードで、名前にHelloWorldProjectと入力し、「OEPスイート」を選択して「次へ」をクリックします。

  4. Java設定の構成ダイアログで、「次へ」をクリックしてデフォルトを使用します。

  5. OEPテクノロジ設定の構成ダイアログの「OEPアプリケーション・テンプレート名」ドロップダウン・リストで、HelloWorldを選択します。

  6. OEPテクノロジ設定の構成ダイアログの「OEPサーバー接続」ドロップダウン・リストで、LocalCon1を選択します。

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

既存のプロジェクトの接続をLocalCon1に変更するには、次のようにします。

  1. プロジェクトを右クリックし、コンテキスト・メニューから「プロジェクト・プロパティ」を選択します。

  2. 「プロジェクト・プロパティ」ダイアログの左ウィンドウで、「デプロイメント」を選択します。

  3. 「デプロイメント」ウィンドウでユーザー・プロジェクト設定ラジオ・ボタンを選択したままにし、「デプロイメント・プロファイル」で編集するプロファイルを選択します。

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

  5. 「デプロイメント・プロパティ」パネルのOEPサーバーへの接続ドロップダウン・リストで、LocalCon1を選択します。

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

サーバーの起動およびデバッグ・モードでのLoclCon1の実行

  1. -debugオプションを指定してOracle Stream Analyticsサーバーを起動します。

    1. /Oracle/Middleware/my_oep/user_projects/domains/<domain>/defaultserverに移動します。

    2. 適切な起動スクリプトを実行します。

      Windowsの場合:

      startwlevs.cmd -debug
      

      UNIXの場合:

      ./startwlevs.sh -debug
      
  2. プロジェクトを右クリックし、コンテキスト・メニューから「プロジェクト・プロパティ」を選択します。

    次のメッセージが「メッセージ - ログ」ウィンドウに表示されます。

    Listening for transport dt_socket at address 8453
    8453 is the default port.
    
  3. 「プロジェクト・プロパティ」ダイアログの左ウィンドウで、「実行/デバッグ」を選択します。

  4. 「実行/デバッグ」の右パネルで、デフォルトの設定を使用して「編集」をクリックします。

    新しい実行構成を作成する場合、最初に「新規」をクリックすることも可能です。

  5. 左ウィンドウで「起動設定」を選択し、右ウィンドウで「リモート・デバッグ」チェック・ボックスを選択します。

  6. 左ウィンドウで「ツール設定」→「デバッガ」→「リモート」の順に選択し、右パネルでホストおよびポート・パラメータを設定します。

    この例では、ホストはLocalHostでポートは8453です。

  7. 「OK」をクリックした後、再度「OK」をクリックし、ダイアログを閉じます。

ブレークポイントの設定

  1. ブレークポイントを設定するには、プロジェクトのJavaクラスを開きます。

    HellowWorldプロジェクトでは、HelloWorldBean.javaのソース・コード・ファイルを開きます。

  2. メソッドを選択し、[F5]を押してブレークポイントをONに切り替えます。

    HelloWorldBean.javaソース・コードでは、onInsertEventメソッドを選択します。

プロジェクトのデプロイ

  1. プロジェクトを右クリックし、コンテキスト・メニューから「デプロイ」→「新規デプロイメント・プロファイル」の順に選択します。

  2. 「デプロイメント・プロファイルの作成」ダイアログの「プロファイル・タイプ」ドロップダウン・リストで、「OEPプロジェクト・デプロイメント・プロファイル」を選択します。

  3. 「デプロイメント・プロファイルの作成」ダイアログの「デプロイメント・プロファイル名」フィールドにプロファイルの一意な名前を入力します。

    HellowWorldプロジェクトでは、プロファイル名はHelloWorldProfileなどとします。

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

  5. 「デプロイメント・プロパティ」ダイアログで、情報が正しいことを確認します。

    必要に応じて、修正を行います。

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

Javaクラスのデバッグ

  1. デバッグするプロジェクトを選択し、[Shift] + [F9]を押します。

    JPDAデバッガへの接続ダイアログが表示されます。

    ツール・バーの「デバッグ」ボタン(赤いテントウムシのアイコン)を選択することもできます。

  2. JPDAデバッガへの接続ダイアログで、情報が正しいことを確認します。

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

    「デバッグ中 <Project-Name> - ログ」パネルに、デバッガがサーバーに接続したことを示すメッセージが表示されます。

3.16.2 リモートOracle Stream Analyticsサーバー

リモート・スタンドアロンOEPのデバッグは、ローカルOracle Stream Analyticsサーバーでのデバッグと同様ですが、リモート・ホストで-debugフラグを使用して手動でOracle Stream Analyticsサーバーをデバッグ・モードで実行する必要がある点のみが異なります。Oracle JDeveloperでデバッガへの接続を定義する際には、リモート・ホストのアドレスを指定します。

3.16.3 Oracle WebLogic Server

WLSでのOEPのデバッグは、ローカルOracle Stream Analyticsサーバーでのデバッグと同様ですが、WLSをデバッグ・モードで手動で起動し、デバッグ・ポートをチェックする必要がある点のみが異なります。

3.17 イベント・インスペクタ・サービスによるテスト

コンポーネント構成ファイルで、ローカルまたはリモートHTTPパブリッシュ/サブスクライブ・サーバーのイベント・インスペクタ・サービスを構成します。コンポーネント構成ファイルで、イベント・インスペクタHTTPパブリッシュ/サブスクライブ・サーバーを構成します。サーバーで定義されているHTTPパブリッシュ/サブスクライブ・サーバーが1つのみで、ローカルまたはリモートHTTPパブリッシュ/サブスクライブ・サーバーを指定しない場合、イベント・インスペクタ・サービスはデフォルトでローカルHTTPパブリッシュ/サブスクライブ・サーバーを使用します。

ローカルHTTPパブリッシュ/サブスクライブ・サーバー

  1. Oracle Stream Analytics IDEでEPNエディタを開きます。

  2. 構成ファイルと関連付けたいずれかのコンポーネントを右クリックし、「構成のソースに移動」を選択します。

  3. 次の例のように、event-inspector name要素を追加します。

    <event-inspector>
        <name>myEventInspectorConfig</name>
        <pubsub-server-name>myPubSub</pubsub-server-name>
    </event-inspector>
    

    次の例に示すように、pubsub-server-nameの値myPubSubは、ローカルのOracle Stream Analyticsサーバー・ファイルで定義されたhttp-pubsub要素のname子要素の値です。

    <http-pubsub>
      <name>myPubSub</name>
      <path>/pubsub</path>
      <pub-sub-bean>
        <server-config>
          <supported-transport>
            <types>
              <element>long-polling</element>
            </types>
          </supported-transport>
          <publish-without-connect-allowed>true</publish-without-connect-allowed>
        </server-config>
        <channels>
            ...
        </channels>
      </pub-sub-bean>
    </http-pubsub>
    
  4. 保存してファイルを閉じます。

リモートHTTPパブリッシュ/サブスクライブ・サーバー

コンポーネント構成ファイルに、リモートのHTTPパブリッシュ・サブスクライブ・サーバーでイベント・インスペクタのサービスを構成します。または、ローカルHTTPパブリッシュ/サブスクライブ・サーバーを構成します。

  1. Oracle Stream Analytics IDEでEPNエディタを開きます。
  2. 構成ファイルと関連付けたいずれかのコンポーネントを右クリックし、「構成のソースに移動」を選択します。
  3. 次の例のように、event-inspector要素を追加します。
    <event-inspector>
      <name>myEventInspectorTraceConfig</name>
      <pubsub-server-url>http://HOST:PORT/PATH</pubsub-server-url>
    </event-inspector>
    

    HOST: リモートOracle Stream Analyticsサーバーのホスト名またはIPアドレスです。

    PORT: リモートOracle Stream Analyticsサーバー・ファイルで定義されている、リモートOracle Stream Analyticsサーバーのnetioポートです。デフォルトは9002です。

    PATH: リモートOracle Stream Analyticsサーバー・ファイルで定義されている、http-pubsub要素のpath子要素の値です。

    次の例に示すhttp-pubsub構成の場合、有効なpubsub-server-urlは、次のようになります。

    http://remotehost:9002/pubsub
    

    次の例に示すように、pubsub-server-nameの値myPubSubは、ローカルのOracle Stream Analyticsサーバー・ファイルで定義されたhttp-pubsub要素のname子要素の値です。

    <http-pubsub>
      <name>myPubSub</name>
      <path>/pubsub</path>
      <pub-sub-bean>
        <server-config>
          <supported-transport>
            <types>
              <element>long-polling</element>
            </types>
          </supported-transport>
          <publish-without-connect-allowed>true</publish-without-connect-allowed>
        </server-config>
        <channels>
              ...
        </channels>
      </pub-sub-bean>
    </http-pubsub>
    
  4. ファイルを保存して閉じます。

3.18 Oracle JDeveloperおよびサーバーの起動と停止

Oracle JDeveloperからOracle WebLogic Serverを起動および停止できます。コマンドラインまたはOracle JDeveloperからOracle Stream Analyticsを起動または停止できます。

Oracle JDeveloperの起動

  1. /Oracle/Middleware/soa/jdeveloper/jdev/binに移動します。

  2. ./jdevと入力します。

    「ロールの選択」ダイアログが表示されます。

  3. 「ロールの選択」ダイアログで「Studio開発者(すべての機能)」を選択し、「OK」クリックします。

    Oracle JDeveloperが起動するまで、しばらく待ちます。

Oracle JDeveloperの停止

  1. すべての作業を保存します。

  2. 「ファイル」→「終了」の順に選択します。

Oracle Stream Analyticsの起動

  1. /Oracle/Middleware/my_oep/user_projects/domains/<domain>/defaultserverに移動します。

  2. 適切な起動スクリプトを実行します。

    1. Windowsの場合:

      • startwlevs.cmd
        
    2. UNIXの場合:

      • ./startwlevs.sh
        

    パラメータ—Dprofile-<xxx> (ここで、 <xxx>は利用可能なプロファイル(<MW_HOME>/oep/features/bundleloader_profileName.xmlに指定されたロード済バンドル機能のセット)の1つになり、スクリプトstartwlevsで使用してサーバーを起動できます)。

    サーバーが起動すると、ターミナル・パネルにメッセージが表示されます。<The application context for "com.bea.wlevs.dataservices" was started successfully>と表示されると、Oracle Stream Analyticsサーバーの起動は完了です。

また、Oracle Stream Analyticsサーバーへの接続を定義すると、Oracle JDeveloperからOracle Stream Analyticsを起動できます。その場合、「接続」フォルダを展開すると、「アプリケーション・リソース」からOracle Stream Analyticsサーバーを起動できます。

Oracle Stream Analyticsの停止

  1. /Oracle/Middleware/my_oep/user_projects/domains/<domain>/defaultserverに移動します。

  2. 該当する停止スクリプトを実行します。

    1. Windowsの場合:

      • stopwlevs.cmd
        
    2. UNIXの場合:

      • ./stopwlevs.sh
        

    サーバーが起動すると、ターミナル・パネルにメッセージが表示されます。<The application context for "com.bea.wlevs.dataservices" was started successfully>と表示されると、Oracle Stream Analyticsサーバーの起動は完了です。