この章では、基本的なOracle Stream Explorerアプリケーションの構築について説明します。手順には、主なOracle Stream Explorerのアプリケーション・プログラミングの概念についての説明も含まれています。
この章の構成は、次のとおりです。
基本的なOracle Stream Explorerアプリケーションは、簡単な株式取引の警告システムのモデルとなります。このアプリケーションは、株式取引に関するサンプル・データの受信や、データのある特性の監視を行い、その結果に基づいて一部のデータをコンソールに表示します。次の図は、このアプリケーションの完成したイベント処理ネットワーク(EPN)ダイアグラムです。
この説明を実行するには、Oracle JDeveloperおよびOracle Stream Explorer JDeveloperプラグインを含む12cバージョンのOracle Stream Explorerのダウンロードおよびインストールが必要です。ダウンロードに同梱されているインストール手順に従って正しく設定を行っていることを確認します。
JAVA_HOME
変数がJDK7_u55以上を、PATH
変数がインストール済JDKのbin
ディレクトリを指すように設定されていることを確認します。
export JAVA_HOME=<path to installation directory> export PATH=${JAVA_HOME}/bin:${PATH}
この説明では、インストール・ディレクトリは/Oracle/Middleware/my_oep/
です。
オプションで、WLEVS_HOME
変数がインストール・ディレクトリを指すように設定できます。Oracle Stream Explorer JDeveloperプラグインは、ローカルOracle Stream Explorerサーバーの検出にこの変数を使用します。
注意:
この説明ではOracle Stream Explorerに特有の機能を紹介しますが、読者が基本的なJavaプログラミングに精通していることを仮定しています。
Oracle JDeveloperでは、アプリケーションは制御構造の最高レベルです。アプリケーションは、作業に必要なすべてのオブジェクトのビューです。アプリケーションは、プログラム開発中のすべてのプロジェクトの経過を記録します。プロジェクトは、Oracle JDeveloperのプログラムまたはプログラムの一部を定義する一連のファイルの論理コンテナです。プロジェクトには、複数層アプリケーションの様々な層、または複合アプリケーションの様々なサブシステムなどを表すファイルが含まれます。プロジェクトのファイルは任意のディレクトリに配置でき、かつ、単一のプロジェクトに含めることができます。
Oracle JDeveloperの起動
/Oracle/Middleware/my_oep/jdeveloper/jdev/bin
に移動します。
./jdev
と入力します。
「ロールの選択」ダイアログが表示されます。
「ロールの選択」ダイアログで「Studio開発者(すべての機能)」を選択し、「OK」クリックします。
Oracle JDeveloperが起動するまで、しばらく待ちます。
TradeReportアプリケーションの作成
TradeReportアプリケーションには、「プロジェクト」および「アプリケーション」リソース・ウィンドウが含まれています。「プロジェクト」ウィンドウに、TradeReportプロジェクトが表示されます。TradeReportプロジェクトには、spring
およびwlevs
サブフォルダがあるOEP Content
フォルダが含まれています。Oracle JDeveloperの右側の「IDE接続」の下に、「リソース」ウィンドウがあります。
「プロジェクト」ウィンドウ
springサブフォルダには、TradeReport.context.xml
アセンブリ・ファイルが含まれています。アセンブリ・ファイルはSpring Frameworkに準拠し、TradeReport EPNの内容および構造を含んでいます。
アセンブリ・ファイルは、各EPNステージのデフォルトの構成も含んでいます。デフォルトの構成は、実行中にアプリケーションを再デプロイせずに変更することはできません。EPNダイアグラム上でステージの追加や接続を行うと、Oracle JDeveloperは行った作業をこのファイルに取得します。このファイルを手動で編集することもできます。
注意:
EPNアセンブリ・ファイルのXMLスキーマは、Spring Framework構成ファイルの拡張です。SpringのWebサイトhttp://www.springsource.org/spring-framework
を参照してください。
wlevsサブフォルダには、デフォルトのprocessor.xml
構成ファイルが含まれています。wlevs
フォルダ内のファイルは、実行時にOracle Stream Explorer Visualizerで編集できる構成を持つコンポーネントについて記述しています。Oracle JDeveloperを使用してコンポーネントを作成する際は、構成をprocessor.xml
ファイルに入れることも、別のコンポーネント構成ファイルを指定して同じファイルにコンポーネント・タイプをグループ化することもできます。構成ファイルを手動で編集することもできます。
EPNダイアグラムはアプリケーションを構成しているコンポーネントを示しています。イベント・データはダイアグラムの左からアプリケーションに入り、右に向かってステージからステージに移動します。
EPNダイアグラムは、基礎となるEPN構成のグラフィック表示です。EPNにコンポーネントを追加する際に、Oracle JDeveloperはTradeReport.context.xml
アセンブリ・ファイルおよび構成ファイルに情報を書き込みます。
MANIFEST.MFは、Oracle Stream ExplorerサーバーにデプロイするOSGiバンドルの内容についての記述です。
「リソース」ウィンドウ
Oracle JDeveloperの右側の「IDE接続」の下にある「リソース」ウィンドウは、実行中のサーバー接続についての情報を提供しています。
Oracle Stream Explorerアプリケーションでは、すべてのイベントがイベント・タイプを持っています。イベント・タイプとは、イベントが取ることのできる値セットと、そのデータに対して行うことができる操作という形で、特定の種類のイベント・データを定義する構造です。
Oracle Stream Explorerは、新しいイベント・タイプの作成用にいくつかのデータ構造をサポートしています。そのデータ構造とは、JavaBean
クラス、タプル、およびjava.util.Map
クラスです。JavaBean
クラスは新しいイベント・タイプの最善の構造で、この説明で取引イベントを定義するために使用されています。
生のイベント・データがOracle Stream Explorerアプリケーションに到着すると、アプリケーションはそのデータを特定のイベント・タイプのイベントにバインドします。イベント・タイプは、保持できるデータのセットと、そのセット内の各データに必要となるタイプという形で定義できます。
この説明では、イベント・データはCSVファイルから一貫性のある次のようなカンマ区切り値の行としてアプリケーションに渡されます。
IBM,15.5,3.333333333,3000,15 SUN,10.8,-1.818181818,5000,11 ORCL,14.1,0.714285714,6000,14 GOOG,30,-6.25,4000,32 YHOO,7.8,-2.5,1000,8
このCSVファイルにはデータ列のラベルはありませんが、ラベルが存在する場合には表4-1に示すようなJavaデータ型に対応します。Oracle Stream Explorerでは、イベント・タイプを定義するJavaデータ型をプロパティと呼びます。
表4-1 イベント・データのイベント・タイプへのマッピング
考えられる列 | Javaデータ型 |
---|---|
銘柄記号 |
String |
1株当たりの価格 |
Double |
変化率 |
Double |
株式取引量 |
Integer |
終値 |
Double |
TradeEvent JavaBeanの作成
TradeReportプロジェクトを選択します。
Oracle JDeveloperで、TradeReportプロジェクトがハイライトされます。
「ファイル」→「新規」→「ギャラリから」の順に選択します。
「新規ギャラリ」ダイアログが表示されます。
「新規ギャラリ」ダイアログの左パネルで「一般」を、右パネルで「Javaクラス」を選択し、「OK」をクリックします。
「Javaクラスの作成」ダイアログが表示されます。
Javaクラスの作成ダイアログで、「名前」フィールドにTradeEventと入力し、次のデフォルト設定を入力または確認します。
「名前」: TradeEvent 「パッケージ」: tradereport 「拡張」: java.lang.Object 「アクセス修飾子」: public 「その他の修飾子」: <なし> 「スーパークラスからのコンストラクタ」: チェック 「抽象メソッドの実装」: チェック
「OK」をクリックします。
Oracle JDeveloperは、tradereport.TradeEvent
JavaBeanクラスを「アプリケーション・ソース」フォルダの「プロジェクト」に追加します。Oracle JDeveloperの中央のウィンドウの自身のタブに、スタブ・コードが表示されます。
package tradereport; public class TradeEvent { public TradeEvent() { super (); } }
private変数およびアクセッサ・メソッドの作成
TradeEventクラスで、次の例のように各プロパティ(Javaデータ型)用のprivate変数を追加します。
package tradereport; public class TradeEvent { // One variable for each field in the event data. private String symbol; private Double price; private Double lastPrice; private Double percChange; private Integer volume; public TradeEvent () { super(); } }
アクセッサ・メソッドを生成するために、ソース・エディタの任意の部分を右クリックします。
ソース・エディタ・ポップアップ・メニューが表示されます。
ソース・エディタ・ポップアップ・メニューで、「アクセッサの生成」を選択します。
「アクセッサの生成」ダイアログが表示されます。
「アクセッサの生成」ダイアログで、「すべて選択」ボタンをクリックしてから、「OK」をクリックします。
TradeEvent.javaタブを閉じ、ファイルを保存します。
TradeEventイベント・タイプの構成
「OEPコンテンツ」フォルダのTradeReportプロジェクトで、EPNダイアグラムをダブルクリックします。
空のEPNダイアグラムが中央のウィンドウに表示されます。
EPNダイアグラムの下の「イベント・タイプ」タブを選択します。
「イベント・タイプの定義」ウィンドウには、TradeReport.context.xml
フォルダと、上部の「追加」(+)および「削除」(x)ボタンが表示されます。
「イベント・タイプの定義」ウィンドウで、TradeReport.context.xmlフォルダを選択し、「追加」をクリックします。
イベント・タイプを定義するコントロールが、右側の「イベント・タイプの詳細」の下に表示されます。
「タイプ名」フィールドに、TradeEventと入力します。
イベント・タイプ名はJavaBeanクラス名と同じである必要はありませんが、同じ名前にすることによって、どのイベント・タイプがどのクラスと対応しているかがわかりやすくなります。
「Java Beanで定義されたプロパティ」ラジオ・ボタンを選択し、「クラス」ボックスのJavaBeanの名前を入力するか検索します。
JavaBeanの名前はtradereport.TradeEventです。
注意:
「宣言で定義されたプロパティ」ラジオ・ボタンは、イベントをタプルとして定義するものです。
EPNダイアグラム・エディタを閉じ、ファイルを保存します。
EPNアセンブリ・ファイルの表示
Oracle Stream Explorerはイベント・タイプをイベント・タイプ・リポジトリで管理し、TradeEvent
イベント・タイプにはtradereport.TradeEvent
クラスが含まれ(マッピングされ)ていることがわかります。
アダプタは、EPNを出入りするデータを管理します。この例では、ロード・ジェネレータ・ユーティリティと協調し、アプリケーションをテストするためのデータ・フィードをシミュレートするcsvgenアダプタを使用します。ロード・ジェネレータは、サンプル・データ・フィード情報を含むASCIIファイルを読み取り、ポート順に各行のデータを送信します。csvgenアダプタは同じポートでデータをリスニングします。csvgenアダプタ・ロジックは、CSVファイルから読み取ったデータをTradeEvent
イベント・タイプのイベントに変換します。
注意:
アプリケーションを最終の本番環境にデプロイする前に、アプリケーションが本番環境で受信する着信データのタイプを読み取れるよう、入力アダプタを切り替える必要があります。
使用可能な入力および出力アダプタの詳細は、Oracle Stream Explorerによるイベント処理のためのアプリケーション開発を参照してください。
この手順では、アダプタを宣言し、プロパティを設定します。完了すると、EPNダイアグラムはTradeReport EPNの最初のステージを作成するアダプタを表示します。
csvgenアダプタの作成およびプロパティの設定
チャネルとは、ロジックを使用してイベントをEPNのあるステージから次のステージに転送するパイプです。この手順では、新しく生成されたイベントをStockTradeCSVAdapterから次のステージに運ぶチャネルを追加します。
AdapterOutputChannelの作成
EPNダイアグラムを開いた状態で「基本コンポーネント」に移動し、「チャネル」コンポーネントをEPNダイアグラムの空白領域にドラッグします。
「新規チャネル」ダイアログが表示されます。
「新規チャネル」ダイアログに、次の値を入力します。
「チャネルID」: AdapterOutputChannel。イベント・タイプ: TradeEvent。
「OK」をクリックします。
AdapterOutputChannelコンポーネントがEPNダイアグラムに表示されます。
AdapterOutputChannelは、TradeEvent
タイプのイベントをEPNダイアグラムの次のステージに伝達します。TradeEvent
イベント・タイプにはTradeEvent JavaBean
クラスが実装されていることを思い出してください。
アダプタとチャネルの接続
次に、チャネルから取引イベントを受信してそのイベントの情報を確認するリスナー・イベント・シンクを追加します。リスナー・イベント・シンクとは、取引イベントをリスニングして処理するロジックを実装するJavaクラスです。このタイプのJavaクラスは、リスナーJavaクラスとも呼ばれます。
次の手順は、取引イベントのリスニング、銘柄記号と取引量情報の取得、および銘柄記号と取引量情報のコンソールへの表示を行うリスナー・イベント・シンクの作成方法を示しています。
リスナー・イベント・シンクの作成
TradeReportプロジェクトを選択し、「ファイル」→「新規」→「Javaクラス」の順に選択します。
Javaクラスの作成ダイアログで、「名前」フィールドにTradeListenerと入力し、次の設定を確認します。
「名前」: TradeListener 「パッケージ」: tradereport 「拡張」: java.lang.Object 「アクセス修飾子」: public 「その他の修飾子」: <なし> 「スーパークラスからのコンストラクタ」: チェック 「抽象メソッドの実装」: チェック
Javaクラスの作成ダイアログの「実装」エリアで「追加」(+)ボタンをクリックして、リスナーがイベント・シンクとなるために実装する必要があるインタフェースを選択します。
「クラス・ブラウザ」ダイアログで、「検索」タブまたは「階層」タブを使用してcom.bea.wlevs.ede.api.StreamSinkクラスを探します。
「一致するクラス」でcom.bea.wlevs.ede.api.StreamSinkクラスをハイライトし、「OK」をクリックします。
Javaクラスの作成ダイアログに戻ります。
Javaクラスの作成ダイアログで、「OK」をクリックします。
Oracle JDeveloperは、TradeListener JavaBeanを「アプリケーション・ソース」フォルダの「プロジェクト」に追加します。Oracle JDeveloperの中央のパネルに、スタブ・コードが表示されます。
package tradereport; import com.bea.wlevs.ede.api.EventRejectedException; import com.bea.wlevs.ede.api.StreamSink; public class TradeListener implements StreamSink { public TradeListener() { super(); } @Override public void onInsertEvent(Object object) throws EventRejectedException { // TODO Implement this method } }
TradeListener
クラスで、onInsertEvent
メソッドを次のように編集します。
@Override public void onInsertEvent(Object event) throws EventRejectedException { if (event instanceof TradeEvent){ String symbolProp = ((TradeEvent) event).getSymbol(); Integer volumeProp = ((TradeEvent) event).getVolume(); System.out.println(symbolProp + ":" + volumeProp); } }
onInsertEvent
メソッドは取引イベントをリスニングし、TradeEvent
を受信すると、tradereport.TradeEvent
get
メソッドを呼び出して銘柄記号および取引量を取得し、銘柄記号および取引量情報をコンソールに表示します。
TradeListener.javaタブを閉じ、ファイルを保存します。
イベント・シンクのイベントBeanとしてのEPNダイアグラムへの追加
注意:
デフォルト構成の他に、チャネル用の構成ファイル・エントリはありません。processor.xml
ファイルを編集してチャネル構成をカスタマイズするか、チャネル用にchannel.xml
などの別の構成ファイルを作成してカスタム・チャネル構成を追加できます。「コンポーネントへの構成設定の追加」を参照してください。
次に、Oracle CQLプロセッサを追加し、ある基準に基づいてイベントをフィルタします。Oracle CQLプロセッサは、AdapterOutputChannelと次の項で作成する出力チャネルを仲介します。
Oracle CQLプロセッサには、記述するOracle CQLコードが含まれています。Oracle CQLコードは、AdapterOutputChannelからプロセッサに送信されるイベントに問合せを行います。この問合せは、4000株以上の取引量がある取引イベントのみを取得します。Oracle Stream Explorerは取得したイベントを出力チャネルに渡し、イベントはListenerBeanに送信されて処理されます。ListenerBeanは取引イベントのリスニング、銘柄記号と取引量情報の取得、および銘柄記号と取引量情報のコンソールへの表示を行うことを思い出してください。
CQL問合せは、着信する各trade
イベントからsymbolおよびvolumeプロパティを選択し、volumeプロパティの値が4000を超えるかをテストし、1回につき条件を満たした1つのイベントを出力します。NOW
演算子は、システムの直近の瞬間に発生したイベントを含む時間ウィンドウを作成します。
<query id="GetHighVolume"><![CDATA[ select trade.symbol, trade.volume from AdapterOutputChannel [now] as trade where trade.volume > 4000 ]]> </query>
GetHighVolumeプロセッサおよび問合せの追加
このサンプル・アプリケーションをテスト用にデプロイするには、次のアクションを実行します。
Oracle Stream Explorerドメインの作成
ドメインを作成するために、Oracle Stream Explorer構成ウィザードを開始します。
構成ウィザードを起動します。
Windowsでは、\Oracle\Middleware\my_oep\oep\common\bin\に移動し、config.cmdを実行します。
UNIXでは、/Oracle/Middleware/my_oep/oep/common/bin
に移動し、./config.shを実行します。
構成ウィザードの「ようこそ」画面が表示されます。
「ようこそ」画面で「次へ」をクリックします。
「ドメインの作成または更新の選択」画面が表示されます。
「ドメインの作成または更新の選択」画面で、「新規OEPドメインの作成」を選択して「次へ」をクリックします。
ドメインの作成または更新画面が表示されます。
ドメインの作成または更新画面の「ユーザー名」フィールドにoepadminと入力し、パスワードにwelcome1と入力して確認します。
「次へ」をクリックします。「サーバーの構成」はデフォルトを使用して、「次へ」をクリックします。
「ドメイン・アイデンティティ・キーストアの構成」画面が表示されます。
「ドメイン・アイデンティティ・キーストアの構成」画面で、パスワードにwelcome1を入力して確認し、「次へ」をクリックします。
「構成オプション」画面が表示されます。
「構成オプション」画面で、オプションの構成は行わずに「次へ」をクリックします。
「OEPドメインの作成」画面が表示されます。
「OEPドメインの作成」画面でbasicapp_domainと入力し、場所を書き留めます。
場所は、/Oracle/Middleware/my_oep/user_projects/domains
のようになります。
「作成」をクリックしてしばらく待った後、「完了」をクリックします。
Oracle Stream Explorerサーバーの起動
/Oracle/Middleware/my_oep/user_projects/domains/basicapp_domain/defaultserver
に移動します。
適切な起動スクリプトを実行します。
Windowsの場合:
prompt> startwlevs.cmd
UNIXの場合:
prompt> ./startwlevs.sh
サーバーが起動すると、ターミナル・ウィンドウにメッセージが表示されます。<The application context for "com.bea.wlevs.dataservices" was started successfully>
と表示されると、Oracle Stream Explorerサーバーの起動は完了です。
Oracle Stream Explorerサーバー接続の作成
「ファイル」→「新規」→「ギャラリから」の順に選択します。
「新規ギャラリ」ダイアログが表示されます。
「新規ギャラリ」ダイアログの「カテゴリ」→「一般」で、「接続」を選択します。
「新規ギャラリ」ダイアログの「アイテム」で、「OEP接続」を選択して「OK」をクリックします。
「OEPサーバー接続の作成」ダイアログが表示されます。
「OEPサーバー接続の作成」ダイアログで、次の情報を入力します。
「接続が作成される場所」: 「IDE接続」: 選択 「リモートOEPサーバー」: 未チェック 「OEPサーバー接続名」: OEPBasicAppConnection 「OEPサーバー・ホーム・パス」: /Oracle/Middleware/my_oep/ 「デフォルト値の使用」: 未チェック「OEPサーバー・プロジェクト・ディレクトリ」: user_projects/domains/ basicapp_domain/defaultserver 「デフォルト値の使用」: チェック 「ホスト」: 127.0.0.1 「ポート」: 9002 「デフォルト値の使用」: 未チェック 「ユーザー名」: oepadmin 「ユーザー・パスワード」: welcome1 OEPサーバーの追加パラメータ: 空白
「OEPサーバー接続の作成」ダイアログで、「接続のテスト」をクリックします。
「接続のテスト」ボタンの下の領域に「成功」と表示される場合、情報は正確に入力されています。エラーが表示された場合、「成功」と表示されるまで、訂正して再度テストを行います。
「成功」メッセージが表示された後に、「OK」をクリックします。
デプロイメント・プロファイルの作成
TradeReportプロジェクトを右クリックし、「デプロイ」→「新規デプロイメント・プロファイル」の順に選択します。
「デプロイメント・プロファイルの作成」ダイアログが表示されます。
「デプロイメント・プロファイルの作成」ダイアログで、次の値を入力します。
「プロファイル・タイプ」: 「OEPプロジェクト・デプロイメント・プロファイル」
注意:
「プロファイル・タイプ」として「OEPプロジェクト・デプロイメント・プロファイル」が正しく選択されていることを確認します。
「デプロイメント・プロファイル名」: basicapp_profile
「OK」をクリックします。
「デプロイメント・プロパティ」ダイアログが表示されます。
「デプロイメント・プロパティ」ダイアログで、情報を検証します。
ローカルOEPサーバー接続: OEPBasicAppConnection (127.0.0.1:9002) 「シンボリック名」: TradeReport.TradeReport 「バンドル名」: TradeReport.TradeReport 「バンドルのバージョン」: 1.0.0 「OSGi JARファイル」: /home/<username>/jdeveloper/mywork/TradeReport/TradeReport/deploy/basicapp_profile.jar
「OK」をクリックします。
アプリケーションのデプロイ
TradeReportプロジェクトを右クリックします。
コンテキスト・メニューが表示されます。
コンテキスト・メニューで「デプロイ」→「basicapp_profile」の順に選択します。
「デプロイメント・アクション」ダイアログが表示されます。
「デプロイメント・アクション」ダイアログで、「OSGiバンドルのターゲット・プラットフォームへのデプロイ」を選択します。
「次へ」をクリックします。
「Summary」ダイアログ・ボックスが表示されます。
「サマリー」ダイアログで情報を確認します。
「終了」をクリックします。
中央のパネル下部の「デプロイメント - ログ」パネルで、デプロイメント成功のメッセージが表示されます。
「リソース」ウィンドウ右側の「IDE接続」で、「OEPサーバー」→「OEPBasicAppConnection」→「アプリケーション」に移動します。
BasicApplication.BasicApp[Running}接続が表示されます。
デプロイメント・プロファイルによって、必要となるライブラリJARファイルを含むOSGiバンドルが作成されます。
ロード・ジェネレータを使用すると、テスト・データをロードしてOracle Stream Explorerアプリケーションが本番環境にデプロイされた際の動作を確認することが可能です。
通常は、アプリケーションをデプロイしてからロード・ジェネレータを起動します。ロード・ジェネレータをデプロイ前に起動することも可能ですが、ポート9200にリスナーがないというメッセージが表示されます。アプリケーションをデプロイすると、メッセージは消えます。
テスト・データの参照
任意のテキスト・エディタでインストール済のOracle Stream Explorerに含まれるStockData.csvファイルを開きます。
デフォルトで、ファイルは次の場所にあります。
/Oracle/Middleware/my_oep/oep/utils/load-generator/StockData.csv
StockData.csvファイルを表示します。カンマ区切り値の行が複数含まれ、各行は1件の取引を表しています。
注意:
StockData.csv
ファイルのイベント・プロパティの順番は、csvgenアダプタの作成およびプロパティの設定で指定したイベント・プロパティの順番と一致している必要があります。
ロード・ジェネレータ・プロパティの検証
任意のテキスト・エディタでインストール済のOracle Stream Explorerに含まれるStockData.propファイルを開きます。
デフォルトで、ファイルは次の場所にあります。
/Oracle/Middleware/my_oep/oep/utils/load-generator/StockData.prop
StockData.propファイルで、次のプロパティを検証します。
test.csvDataFile
: ロード・ジェネレータが読み取るCSVファイルの名前です。この例では、値はStockData.csvです。
test.port
: ロード・ジェネレータがイベント・データを送信するポート番号です。CSVアダプタを構成する際に指定したポートの値9200である必要があります。
test.packetType
: ロード・ジェネレータが処理するデータ・フォーマットのタイプです。この例では、値はCSVです。
ロード・ジェネレータには、test.csvDataFile
およびtest.port
プロパティが必須です。他のプロパティはオプションですが、ロード・ジェネレータがCSV形式の入力であることを認識できるように、少なくともtest.packetType
を設定する必要があります。
StockData.propファイルを閉じ、変更している場合は保存します。
ロード・ジェネレータの起動
StockData.prop
プロパティ・ファイルを使用して、ロード・ジェネレータを実行します。
Windowsの場合:
prompt> runloadgen.cmd StockData.prop
UNIXの場合:
prompt> ./runloadgen.sh StockData.prop
サンプルの作業を終えたら、ロード・ジェネレータおよびOracle Stream Explorerサーバーを停止できます。
ロード・ジェネレータの停止
ディレクトリを/Oracle/Middleware/my_oep/oep/utils/load-generatorに変更します。
[Ctrl] + [C]を押します
サーバーの停止