この章では、インライン・サービスのデプロイ、テストおよびデバッグを行う方法について説明します。
この章の内容は次のとおりです。
構成の済んだインライン・サービスは、ローカルにデプロイするか、テストのためにテスト環境にデプロイします。インライン・サービスは、「Development」、「QA」および「Production」の3つの状態にデプロイできます。
テスト段階では「QA」状態にデプロイしてから、テスト後に「Production」状態にデプロイできます。「Production」状態にデプロイする際は、「Release Inline Service locks」を選択します。インライン・サービスをビジネス・ユーザー向けにデプロイすると、ビジネス・ユーザーもインライン・サービスを更新および再デプロイできるようになります。
注意: Decision Studioを使用する方法およびコマンドラインのデプロイ・ツールを使用する方法によりインライン・サービスをデプロイできます。この項では、Decision Studioによるデプロイについて説明します。コマンドラインによるデプロイの詳細は、『Oracle Real-Time Decisionsインストレーションおよび管理ガイド』の「インライン・サービスのコマンドライン・デプロイ」を参照してください。 |
インライン・サービスをデプロイするには、「Project」→「Deploy」のメニュー項目を使用するか、タスク・バーの「Deploy」アイコンをクリックします。
「Deploy」ダイアログ・ボックスが表示されます。「Deploy」ダイアログ・ボックスには、図13-1に示すオプションがあります。
注意: インライン・サービスのデプロイには、サーバー・クラスタに対する適切な権限が必要です。クラスタ権限の詳細は、『Oracle Real-Time Decisionsインストレーションおよび管理ガイド』を参照してください。 |
表13-1は、「Deploy」ダイアログ・ボックスのオプションを示しています。
表13-1 「Deploy」ダイアログ・ボックスのオプション
オプション名 | 説明 |
---|---|
Project |
Real-Time Decision Serverにデプロイするプロジェクトを選択します。 |
Inline Service |
このプロジェクトに含まれているインライン・サービス。 |
Study Name |
このインライン・サービスのスタディ名を入力します。各インライン・サービスの学習は、スタディ名に関連付けられています。インライン・サービスを再デプロイして学習を再開するには、新しいスタディ名を付けてデプロイします。「Development」、「QA」および「Production」で別々のスタディ名を使用できます。 |
Deployment State |
デフォルトでは、インライン・サービスのデプロイの状態には、「Development」、「QA」、「Production」の3つがあります。他のユーザーにわかるように、「Deployment State」には、インライン・サービスの状態(開発、テストまたは本番)が示されています。 システム管理者が、カスタムのデプロイ状態を作成している場合があります。 |
Server |
デプロイ先のサーバーおよびポートを入力するには、このオプションをクリックします。「Server」ダイアログ・ボックスで、デプロイ先のサーバー・クラスタに対してデプロイ権限を持つ有効なユーザー名およびパスワードを入力します。クラスタに対する認可は、管理者がJConsoleを使用して付与します。 |
Release Inline Service lock |
デプロイされたインライン・サービスは自動的にロックされ、再デプロイは、デプロイを行ったユーザーしかできません。開発とテストが完了したインライン・サービスを本番環境にデプロイする際、「Release Inline Service lock」を選択すると、Decision Centerのユーザーがインライン・サービスを変更して再デプロイできるようになります。 |
Terminate active sessions (used for testing) |
デプロイしているインライン・サービスが本番環境にある場合は、アクティブなセッションが存在している場合があります。アクティブなセッションが存在している状態で新しいバージョンのインライン・サービスをデプロイすると、古いバージョンが維持され、アクティブなセッションにサービスを提供し続けます。テスト中の場合は、「Terminate active sessions (used for testing)」を選択してアクティブなセッションを終了します。本番のインライン・サービスでは、このオプションを選択解除したままにして、アクティブなセッションが存在するとき、本番バージョンのインライン・サービスで実行され続けるようにします。新規のセッションは新しいバージョンにルーティングされ、古いバージョンはアクティブなセッションがすべて完了すると終了します。 |
Do not activate after deployment |
このオプションは、インライン・サービスをサーバーにデプロイしてもプロセスを開始しないときに使用します。後日インライン・サービスをアクティブにする場合は、JConsoleを使用します。JConsoleの詳細は、『Oracle Real-Time Decisionsインストレーションおよび管理ガイド』を参照してください。 |
注意: カスタム・ページのあるインライン・サービスが特定のデプロイ状態(「Development」など)にデプロイされると、その状態のカスタム・ページのリストは、それ以前に任意のデプロイ状態にデプロイされていた同じインライン・サービスのカスタム・ページのリストよりも優先されます。 |
インライン・サービスをデプロイまたはダウンロードする際、またはデータソースをインポートする際には、Real-Time Decision Serverに接続する必要があります。接続には、インストール時に作成したユーザー名およびパスワードを使用するか、管理者にユーザー名およびパスワードを問い合せてください。httpsを使用したセキュアな方法で接続するには、「Secure connection」を選択します。
図13-2に「Connect to a server」ダイアログ・ボックスを示します。
デプロイされているインライン・サービスを変更する場合は、その変更と、ビジネス・ユーザーにより行われている可能性のある変更の両方が失われないよう、次の手順に従うことが重要です。デプロイされているインライン・サービスを変更する場合、ツールバーの「Download」アイコンを使用してReal-Time Decision Serverからダウンロードできます。次の方法を使用します。
デプロイされている目的のインライン・サービスを編集しているビジネス・ユーザーがいないことを確認します。
ダウンロードする場合は必ずインライン・サービスをロックして、編集中にビジネス・ユーザーが変更できないようにします。
Decision Studioで変更作業を行います。
インライン・サービスを再デプロイしてロックを解除します。
インライン・サービスがロックされている間、ビジネス・ユーザーはそのデプロイされているインライン・サービスを表示できますが、編集はできません。
注意: インライン・サービスの機能を強化するにはDecision Studioを使用する必要がありますが、インライン・サービスを再デプロイする場合はDecision Studioまたはコマンドライン・デプロイ・ツールのどちらでも使用できます。詳細は、『Oracle Real-Time Decisionsインストレーションおよび管理ガイド』の「インライン・サービスのコマンドライン・デプロイ」を参照してください。 |
Oracle RTDには、インライン・サービスのテストやデバッグを行うために次の機能が用意されています。
Decision Studioの「Problems」ビューおよび「Test」ビュー
システム・ログ
Load Generator
開発中に発生する場合があるエラー・メッセージの詳細は、付録A「開発エラー・メッセージ」を参照してください。
この項の内容は次のとおりです。
Load Generatorは、ユーザーをシミュレートしてインライン・サービスのデバッグおよびベンチマークを行うためのツールです。Load Generatorは、インライン・サービスのテストとパフォーマンスの特徴付けの両方に使用します。
Load Generatorの詳細は、第14章「Load Generatorについて」を参照してください。
「Problems」ビューでは、インライン・サービスの構築時にコンパイル・エラーや検証エラーを特定できます。コンパイル・エラーをダブルクリックすると、Javaパースペクティブが表示され、エラーが強調表示されます。
検証エラーをダブルクリックすると、インライン・サービス・パースペクティブが表示され、検証エラーのある要素に対する要素エディタも表示されます。
Decision Studioには、個々の統合点をテストできる「Test」ビューがあります。「Test」ビューでは、統合点をコールする運用システムをシミュレートできます。「Test」ビューには、インライン・サービス内の統合点がすべて含まれるドロップダウン・リストがあります。統合点をテストするには、セッション・キーおよびリクエスト・データに値を挿入し、「Run」アイコンをクリックして実行します。統合点についての情報は、「Results」、「Trace」、「Log」の3つのサブタブに表示されます。
「Results」タブには、アドバイザの統合点をコールした結果が示されます。結果を返すのはアドバイザのみです。インフォーマントのテスト、およびアドバイザとインフォーマント両方の統合点のデバッグには、logInfo()
を使用します。
logInfo()
文は、デバッグ手段として、コード内の様々な箇所で使用できます。この文は、アドバイザ、インフォーマント、デシジョン、関数などを、要素内で使用する際に役立ちます。この文は、要素の論理ペインに挿入し、様々な段階でログ・データに表示する手段として使用できます。
この項の内容は次のとおりです。
「Log」タブには、すべてのlogInfo()
文が表示されます。
logInfo
メソッドは、Decision Studioのオンライン・ヘルプで説明されているロギングAPIの一部です。com.sigmadynamics.supportClass SDOBase
クラスには、情報、デバッグ、警告、エラーの各レベルでメッセージをログに記録するためのメソッドが含まれています。一般的に、これらのロギング・メソッドは、文字列などの引数をパラメータとして受け入れます。
logInfo
の使用例を2つ、次に示します。
logInfo("Installation date = " + DateUtil.toString(session().getCustomer(). getInstallationDate()); logInfo("Customer age = " + session().getCustomer().getAge() );
注意: すべてのセッション・エンティティ属性の値または指定されたエンティティとその属性の値をOracle RTDのログに出力する方法の詳細は、第12.5.21項「エンティティ属性のロギングの拡張」を参照してください。 |
統合点のテスト時に、次のメソッドを使用して着信リクエスト・データを確認できます。入力されたパラメータがセッション属性にマップされる場合は、そのパラメータにget
メソッドがあります。
request.get$()
この$
は、先頭が大文字のパラメータ名です。
この属性がマップされない場合は、パラメータのフィールド名を使用して、同じ結果をもたらすメソッドがあります。
String request.getStringValue(fieldName) SDStringArray request.getStringArrayValue(fieldName) boolean request.isArgPresent(fieldName)
送信レスポンス・データは常に、SDChoiceArrayに格納されます。
SDChoiceArray choices = null;
デシジョンは統合点によって実行され、選択肢が格納されます。
if (session().isControlGroup()) { choices = RandomChoice.execute(); } else { choices = SelectOffer.execute(); }
選択肢を調べるには、配列から取得し、getSDOId
またはgetSDOLabel
を使用します。
if (choices.size() > 0) { Choice ch = choices.get(0); ch.getSDOId(); }
これを行うために最適な場所が、デシジョンの選択後ロジック論理です。デシジョンの実行後に選択後ロジックが実行されます。
システム・ログは、インライン・サービスのテストとデバッグおよびパフォーマンスの監視とチューニングに役立ちます。
Oracle RTDの主なシステム・ログ・ファイルは、次の場所にあります。
RTD_RUNTIME_HOME
\log\server.log
詳細は、『Oracle Real-Time Decisionsインストレーションおよび管理ガイド』の付録A「システムのログ・ファイルおよび構成ファイル」を参照してください。