ヘッダーをスキップ
Oracle® Real User Experience Insightユーザーズ・ガイド
12c リリース3 (12.1.0.4) for Linux x86-64
E49732-01
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

N Oracle FormsおよびOracle E-Business Suiteのサポート

この付録では、Oracle E-Business Suite(EBS)およびOracle Formsベースのアプリケーションの正確な監視のために提供されるサポートについて詳しく説明します。詳細は、オラクル社の担当者に問い合せてください。

N.1 概要

RUEIで提供される監視のサポートはEBS R12に対して検証されています。ただし、古いバージョンのForms(11.2より前のリリース)については、"正しくない"フォーム名が使用されます。

デフォルトでは、レポートされるForms名は、構成スクリプトでアップロードされたマッピングに基づいて、Formsウィンドウ・タイルから導出されます。ただし、環境変数FORMS_RUEI_SEND_FORM_NAMEが設定されている場合、Formsサーバーは、ウィンドウ作成メッセージとともにFormsモジュール名を送信します。

環境情報はdefault.envファイルに設定されます。別のファイル名を使用できますが、これをformsweb.cfgファイルに指定する必要があります。これには、次のような利点があります。

Oracle Forms環境を拡張してテクニカルなフォーム名が送信されるようにするには、次の表内の該当するパッチを適用します。

表N-1 Formsのパッチおよび変数

E-Businessのバージョン Formsのバージョン FormsのパッチおよびRUEI対応 使用するForms変数

11i

6.0.8

パッチ16542522

FORMS60_RUEI_SEND_FORM_NAME

12

10.1.2.3

パッチ16784403

FORMS_RUEI_SEND_FORM_NAME

12

11.1.2

デフォルトの機能

FORMS_RUEI_SEND_FORM_NAME


Oracle Formsのサポート

Oracle Formsは、サーブレットとソケットという2つのモードで構成できます。サーブレット・モードでは、Javaサーブレット(Forms Listenerサーブレット)がForms JavaクライアントとOracleAS Formsサービスの通信を管理します。ソケット・モードではデスクトップ・クライアントがFormsサーバーに直接アクセスします。RUEIではサーブレット・モードとソケット・モードの両方がサポートされます。サーブレット・モードおよびソケット・モードでのOracle Formsの操作と構成の詳細は、次のサイトを参照してください。

http://metalink.oracle.com/metalink/plsql/ml2_documents.showNOT?p_id=384241.1

Oracle Formsが構成されているモードを確認する方法は、N.8項「ソケット・モードとサーブレット・モードのチェック」を参照してください。

Formsのみのユーザー

このマニュアルで提供する情報はすべてのEBSユーザーに関連するものです。ただし、情報がEBSユーザーまたはFormsのみのユーザーに固有の場合は明記しています。

N.2 Formsのみの環境の使用

Formsのみの環境を使用するユーザーは、この項で説明する点に特に注意する必要があります。

RUEIでEBSベース・アプリケーションについての正確なレポートを行うには、本番環境の情報が必要です。特に、機能領域とレポートされる名前をマッピングする必要があります。これは、N.7項「RUEIとEBS本番環境の同期化」で説明するようにcreate_EBS_info.pl Perlスクリプトを実行して行います。このスクリプトを実行して、生成される.txtファイルを.zipファイルに含めてアップロードすることを、Formsのみの環境のユーザーにお薦めします。

機能マッピングの手動作成

create_EBS_info.plスクリプトは、いくつものEBSデータベース表を使用して、Oracle Formsインスタンスのインストールと構成に関する情報を取得します。使用される正確なデータベース表をN.10項「データベース表」に示します。

ただし、このスクリプトで使用されるAPPLSYS.FND_APPLICATION、APPLSYS.FND_APPLICATION_TL、APPLSYS.FND_FORM、APPLSYS.FND_FORM_TLおよび他の表は、Formsのみの環境には存在しません。このため、RUEIで提供されるデフォルト(テンプレート)のマッピング(この項で後から説明)を利用するか、対応する.txtファイルを手動で作成することで必要なマッピングを指定できます。

これらのファイルを手動で作成するときは、次のタブ区切りファイルが必要です。

作成した構成ファイルは、目的のスイートごとに.zipファイルに含めてアップロードする必要があることに注意してください。.zipファイルには、空でない.txtファイルしか含めることができません。また、これらのファイルはすべてルート・ディレクトリに存在する必要があります。つまり、サブディレクトリは許可されていません。実際の本番環境に基づいた適切な構成ファイルを目的のスイート用にアップロードする必要があります。構成ファイルの更新の手順は、N.7項「RUEIとEBS本番環境の同期化」に記載しています。

デフォルト(テンプレート)マッピングの利用

必要なマッピングの手動作成が現実的ではない場合は、すでにRUEIに構成されているデフォルト(テンプレート)マッピングを利用できます。この方法で適切なレベルのレポートを得られますが、次の制限事項があります。

最新の一致情報

一般的にFormsのみの環境は時間とともに変化するため、マッピング情報を定期的に確認することを強くお薦めします。上記の制限は、最後にcreate_EBS_info.plスクリプトを実行してから、またはマッピング・ファイルを手動で作成してから環境に追加されたすべてのフォームに適用されることに注意してください。

Formsベース環境のメモリー要件

Formsベース・トラフィックの監視には、大容量のメモリーが必要になることに注意してください。たとえば、10,000件の同時Formsセッションの監視には、約10GBのコレクタ・メモリーが必要になります。このため、Formsベース・トラフィックをリモート・コレクタとして監視するコレクタには、少なくとも16GBのRAMをデプロイすることをお薦めします。または、単一サーバー・デプロイメントを使用している場合、サーバーには少なくとも32GBのRAMが必要です。

さらに、コレクタで使用できるシステム・メモリーのレベルを確認することをお薦めします。24GBのRAMを備えた単一サーバー・デプロイメントでは50%に設定する必要があります。32GBのRAMでは40%に設定する必要があります。使用できるコレクタのメモリー量を増やす方法の詳細は、次の場所を参照してください。

https://support.oracle.com/CSP/ui/flash.html#tab=KBHome%28page=KBHome&id=%28%29%29,%28page=KBNavigator&id=%28from=BOOKMARK&bmDocType=PROBLEM&bmDocTitle=Remote%20Collector%20not%20able%20to%20run%20due%20to%20memory%20restrictions&bmDocDsrc=KB&bmDocID=762361.1&viewingMode=1143%29%29

N.3 監視の有効範囲の検証

多くの場合、EBSソフトウェアは標準以外のポート(8000など)を使用するように構成されます。EBSインストールが実行しているポートを確認するには、ログインURLを調べてください。これは次の形式になっています。

https(s)://hostname:portnumber/OA_HTML/AppsLogin

portnumberが定義済ポート(後で説明)の1つとして構成されていることを確認します。また、HTTPSポートが指定される場合は、WebサーバーのSSL秘密鍵のコピーをコレクタ・システムにインポートするようにしてください。モードとポート番号の識別方法の詳細は、N.8項「ソケット・モードとサーブレット・モードのチェック」を参照してください。ポート番号を確認するには、13.3項「監視の有効範囲の管理」に記載されている手順を実行します。

N.4 EBSスイート定義の作成

EBSベースのアプリケーションのスイート定義を作成できます。作成方法は、サポートされている他のOracle Enterpriseアーキテクチャの場合と同じです。スイートを作成する手順は、10.1項「スイートの使用」に記載されています。

Formsを使用するEBSスイートの場合は、「拡張」セクションを選択し、その他タブをクリックすることに注意します。スイートの概要が、図N-1に示されるように変わります。

図N-1 拡張スイート構成セクション

図N-1の説明が続きます
「図N-1 拡張スイート構成セクション」の説明

これらの設定の使用方法は次の項に記載されています。

N.5 追跡テクノロジの指定

RUEIではセッション情報はCookieに基づいています。Cookieは、ヒットを特定のアクセスに結び付けるために使用されます。一般的にCookieはユーザー・ログイン・ページにも結び付けられるため、RUEIは同じCookieを持つ後続のすべてのヒットにユーザー名を含めることができます。EBSにはいくつものCookieがあります。ただし、これらは通常は使用できません。主な問題点は、一意性が不十分であること(たとえばoracle.uix)および用途が狭すぎることです(たとえば、JSESSIONIDはWebサイトの/OA_HTML/部分にしか使用できません)。

クライアント側のCookieメカニズムを実装することをお薦めします。この手順は、12.2項「セッション・トラッキング・メカニズムの指定」に記載されています。


注意:

Formsのみの環境では、ビジターがForms内のアプリケーションにログオンすると、Formsログオン・ページのユーザーIDが自動的に追跡されます。

N.5.1 カスタムCookieの構成

ドメイン全体に対応する一意のCookieを構成できない場合は、次の手順を実行する必要があります。

  1. EBSサーバーで$OA_HTML/AppsLocalLogin.jspファイルを探します。これは通常は$JAVA_TOPディレクトリにあります。

  2. 次のJavaScriptコードをページに追加します。

    <SCRIPT LANGUAGE="JavaScript">if(document.cookie.indexOf('RUEItrack=')==-1){document.cookie='RUEItrack='+parseInt(Math.random()*2147418112)+new Date().getTime()+';path=/;domain='+document.location.host.substring(document.location.host.lastIndexOf('.', document.location.host.lastIndexOf('.') - 1));}</SCRIPT>
    
  3. EBSログイン・ページを開き、ヘッダーの調査分析ツール(Mozilla Firefox用のLive HTTP Headersプラグインなど)を使用してRUEItrack値がクライアント側に設定されていることを確認します。

重要:

また、既存のRUEItrack Cookieを分析するとき、そのCookieがすべてのオブジェクトのヒットとリクエスト(.gifファイルや.jsファイルなど)のためにクライアント側に存在することを確認します。あるいは、上記のJavaScriptコードをt.htmファイルまたはAppsLocalLogin.jspファイルに追加して、パッチ・プルーフにすることができます。つまり、EBSのパッチまたはリリースを後でインストールしても上書きされないようになります。このJavaScriptを両方のファイルには追加しないでください。

N.5.2 Cookie構成の確認

Cookieの構成を確認する手順は、次のとおりです。

  1. ブラウザですべてのCookieを消去します。

  2. EBSアプリケーションに(再)ログインします。

  3. Oracle Formsをロードする操作を実行します。

  4. Oracle Formsでいくつかの操作を実行します。

  5. ログアウトします。

  6. 少なくとも10分間待機します。

  7. RUEIレポータ環境を開きます。

  8. 「データの参照」を選択し、「すべてのセッション」グループを開いて「セッション診断」を選択します。記録されたセッション(ユーザーID別または時間別)を探します。アプリケーションについてフィルタリングできます。

  9. セッションを開いて、次の点を確認します。

    • ログイン以外にページ・ビューがあること。これで、セッションIDがログイン後にOAフレームワークに保存されていることが確認されます。

    • 少なくともある程度のOracle Formsアクティビティが未定義アクションとして記録されていること。これで、サーブレット・コールが正しく記録されていることが確認されます。

    • データ・ブラウザでレポートされるページ名に、図N-2でのハイライト表示部分のようなイベントが示されること。

      図N-2 ページ名の例

      図N-2の説明が続きます
      「図N-2 ページ名の例」の説明

すべてのヒットが同じCookieに関連していない場合、問題がある場所を調べて(たとえば、Cookieのドメインまたはパス・オプション)、適切な方法で解決することをお薦めします。

N.5.3 セッションの追跡、相関変数およびセッションURL引数

相関変数とセッションURL引数に関して指定する必要がある追跡メカニズムは、いくつかのフロー・チャートを使用して決定することをお薦めします。

Formsセッション・パラメータ

図N-3に示す方法でセッション・パラメータを決定できます。ソケット・モードで実行している場合、この設定は対応していません。そうでない場合は、各Formsセッションに一意の値を提供する引数をForms URLで調べる必要があります。通常、この引数はURLでセミコロンまたは疑問符の後にあります。たとえば、jsessionidまたはJServSessionIdformsです。指定したパラメータがURLで見つからない場合、Cookieが検索されます。

図N-3 Formsセッション・パラメータ

図N-3の説明が続きます
「図N-3 Formsセッション・パラメータ」の説明

相関変数

相関変数を使用すると、セッション(TCP上のソケット・モード)を1つのエンドユーザー・セッションにマージできます。図N-4に示す方法で相関変数を決定できます。

一意のクライアントIPアドレスが使用される場合、この設定は対応していません。ソケット・モードで実行している場合、HTTPトラフィックとソケットモード・トラフィックの両方で得られる相関変数(「INDEX_INITIAL_CMDLINE」に含まれる)の値がセッションの注釈として付けられます。EBS環境の場合、これは常にicx_ticket変数を含みます。EBS以外の環境の場合、他の変数を指定する必要があります。HTTPレイヤーにおいて、Formsの初期化コールの問合せ部分で、またはgp1=....&gv1=...のような構文で、この変数が見つかります。ここで、gp1に値の名前を示します。

HTTPレイヤーにおいて、次のように確認できる場合があります。

/OA_HTML/frmservlet?…&gp15=icx_ticket&gv15=255. 184.210.99jE82BtqiYLHJ8T6-bLxTLw…

または、次のように確認できます。

/OA_HTML/frmservlet?…&env=NLS_LANG='AMERICAN_AMERICA'+…+icx_ticket='255.184.210.99.jE82BtqiYLHJ8T6-bLxTLw..'+…

Formsレイヤーでは、変数INDEX_INITIAL_CMDLINEがコレクタのログ・ファイルで確認できることに注意してください。次に例を示します。

&Runform-001.INDEX_INITIAL_CMDLINE=server module=/oracle/r12/VIS12/apps/apps_st/appl/fnd/12.0.0/forms/US/FNDSCSGN fndnam=APPS  config='VIS12'  icx_ticket='255.184.210.99.jE82BtqiYLHJ8T6-bLxTLw..' resp='FND/APPLICATION_DEVELOPER' secgrp='STANDARD' start_func='FND_FNDPOMPO' other_params=…

セッション・トラッキングCookie

図N-5に示す方法でセッション・トラッキングCookieを決定できます。

図N-5 セッション・トラッキングCookie

図N-5の説明が続きます
「図N-5 セッション・トラッキングCookie」の説明

一意のクライアントIPアドレスが識別される場合は、デフォルトのクライアントIPベースの追跡を使用できます。または、ホスト全体に対して一意の値を持つCookieが使用可能な場合は、JavaScriptを使用してこのCookieを作成できます。その他の場合は、デフォルトのEBS(JSESSIONID)追跡スキームを使用する必要があります。

たとえば、セッションCookieを追加するためにログイン・ページを変更できない場合があるとします。その場合は、Forms以外のトラフィックの別のEBS Cookie(たとえばJSESSIONID)を選択できます。相関関数を使用して、Forms以外のトラフィックをFormsベースのトラフィックに結び付けることができます。このとき、Forms以外のヒットはJSESSIONIDを使用して識別され、共有ヒットはJSESSIONIDと相関引数の組合せで識別され、Formsヒットはセッション・トラッキング変数jsessionidと最初のコマンド行の相関引数の組合せで識別されます。

N.6 Formsサーバー・モードのタイムアウトの指定

Formsソケット・モードでは、アクティブなソケットモード・セッションが非アクティブになってから数分間は、コレクタがセッションを廃棄できないように設定できます。この設定はFormsソケット・モードのみに対応することに注意してください。デフォルトでは10分に設定されています。

N.7 RUEIとEBS本番環境の同期化

ご使用の環境でEBSフレームワークがどのように実装されているかをRUEIで認識するための手順は、次のとおりです。


注意:

この項の内容は、Forms名のレポート機能が有効になっている環境には該当しません。詳細は、N.13項「Forms名のレポート」を参照してください。以前のリリースへのバックポートが済んでいるため、将来的にはすべてのEBS/Formsユーザーがforms名のレポート機能を有効にすると考えられます。

  1. create_EBS_info.plスクリプトをEBSサーバーのホーム・ディレクトリにコピーします。これはRUEIシステムのRUEI_DATA/processor/local/downloadディレクトリにあります。

    スクリプトの前提条件を次に示します。

    • Perl 5.8.1以上がインストールされていること。

    • PerlモジュールArchive::Zip (手作業によるzip操作を軽減)。

    formsのデプロイメントの前提条件を次に示します。

    • formsコンパイラ(f60genやfrmcmpなど) (パス内)。

    • fmbファイルへのアクセス(-dirパラメータで場所を指定)。

    EBSのデプロイメントの前提条件を次に示します。

    • sqlplus(パス内)。

    • EBSリポジトリ(読取専用)にアクセスするための接続文字列。

    • JTT環境(EBS内)については、jttファイルへのアクセス(-dirパラメータで場所を指定)が必要です。

  2. create_EBS_info.plスクリプトをEBSサーバーで任意のユーザーとして実行します脚注1。このスクリプトにより、環境内で識別されたページIDにIDが割り当てられます。create_EBS_info.plスクリプトは次の構文で実行してください。

    create_EBS_info.pl -part=all|DB|JTT|FORM [-connectstring=connectstring] [-debug] [-exeloc=exedir] [-dir=dir1,dir2]
    

    構造の各要素の意味は、次のとおりです。

    • partオプションには、生成されるファイルのサブセットを指定します。次のように指定できます。

      • all: すべてのファイルが生成されます。これはデフォルトです。以下の3つのオプションを組み合せたものです。

      • DB: このオプションは主としてEBS環境用です。構成ファイルのサブセットが生成されます。このオプション(またはallオプション)を使用する場合は、-connectstringパラメータを指定する必要があります。また、-exelocパラメータも指定する必要があります。これには、SQLPlus実行可能ファイルの場所を指定してください(PATHのいずれかのディレクトリにない場合)。

      • JTT: このオプションは主としてEBS環境用です。すべてのJavaベース・ファイルが生成されます。Javaファイルの場所はAPPL_TOP設定に基づきます。設定がない場合、-dirパラメータで指定されるディレクトリが使用されます。

      • FORM: このオプションは主としてFormsベース環境用です。すべてのFormsベース・ファイルが生成されます。このオプション(またはallオプション)を指定する場合は、-exelocパラメータを指定する必要があります。これには、frmcmpまたはfrmcmp_batch実行可能ファイルの場所を指定してください(PATHのいずれかのディレクトリにない場合)。Forms(.fmb)ファイルの場所はAPPL_TOP設定に基づきます。設定がない場合、-dirパラメータで指定されるディレクトリが使用されます。

    • connectstringには、データベースにアクセスできるようにSQLPlusに渡す文字列を指定します。これは、Formsのみの環境では必要ありません。

    • debugは、デバッグ・モードを有効にする必要があることを示します。

    • execlocは、実行可能ファイルがPATHのディレクトリのいずれかに存在しないこと、exedirディレクトリを検索する必要があることを示します。複数のディレクトリを指定するには、カンマで区切るか-exelocオプションを複数指定する必要があることに注意してください。

    • dir1dir2などには、JavaまたはForms関連の情報を検索するディレクトリを指定します。複数のディレクトリを指定するには、カンマで区切るか-dirオプションを複数指定する必要があることに注意してください。

    スクリプトはAPPLSYSスキーマを読み取り、現在のディレクトリに.txtファイルを生成します。次に例を示します。

    perl create_EBS_info.pl -part=all -connectstring=APPS/APPS@linux-ebs-r12-pc:1522/VIS12
    perl create_EBS_info.pl -part=all -connectstring=APPS/APPS@VIS12
    

    複数インスタンス環境では、目的のインスタンスごとにスクリプトを実行し、作成される.txtファイルを別に保存します。また、インスタンスごとに別のスイート定義を作成します。


    注意:

    EBSアプリケーションに新たなカスタマイズを行う(または既存のカスタマイズを変更する)場合は、スクリプトを再実行して、生成されるzipファイルを再インポートする必要があります。

  3. スクリプトを実行すると、実行したディレクトリにいくつかの.txtファイルが作成されます。関連するすべての.txtファイルは、.zipファイルにまとめて格納されます。RUEIレポータ・システムへのファイルのアップロードに使用できる場所に、この.zipファイルをコピーします。

  4. 10.1.2項「構成ファイルのアップロード」で説明している手順を実行し、生成されたファイルをレポータ・システムにアップロードします。


注意:

create_EBS_info.plスクリプトの実行中に警告またはエラー・メッセージを受け取った場合は、N.20.4項「create_EBS_info.plスクリプトでFRM-91500エラーがレポートされる」にある重要なトラブルシューティング情報を参照してください。

Perlインタプリタ

デフォルトではPerlインタプリタはMicrosoft Windowsには同梱されていません。多くの場合、Oracleデータベースおよび他のOracle製品の一部としてインストールされます。PerlインタプリタをMicrosoft Windowsシステムで探すには、「スタート」「検索」「ファイルやフォルダ」を選択して、perl.exeを入力します。見つかった実行可能ファイルを使用して、構成スクリプトを実行します。

Perl実行可能ファイルがない場合は、RUEIシステムで上記の問合せのDBの部分を実行できます(システムからEBSデータベースへの接続が可能な場合)。これは、リモート・ホストのEBSデータベースのAPPSスキーマを参照するconnectstring-part=DBオプションを使用して実現できます。データベースベースのEBSカスタマイズのみが生成されることに注意してください(JTT/JavaベースのカスタマイズまたはFormsベースの変更は生成されません)。

create_EBS_info.plスクリプトの実行を省略した場合でも、RUEIによってEBSおよびFormsアクティビティのレポートは行われます。ただし、レポートされる名前はカスタマイズを反映しません。たとえば、職責が職責名ではなく職責キーでレポートされ、Formsがフォームの機能説明ではなくフォーム名でレポートされます。ほとんどカスタマイズが行われていない環境ではこれは問題になりません。

N.8 ソケット・モードとサーブレット・モードのチェック

この項では、Oracle Formsサーバーがサーブレット・モードとソケット・モードのどちらで実行しているかをチェックする方法を説明します。

Oracle Applicationsリリース12

Oracle Applicationリリース12は、デフォルトの構成ではサーブレット・モードで実行します。

次のコマンドを使用します。

$ grep connectMode FORMS_WEB_CONFIG_FILE

現在の接続モードがレポートされます。

connectMode=servlet

または、次のコマンドを使用します。

$ grep frmConnectMode CONTEXT_FILE

現在の接続モードがレポートされます。

<forms_connect oa_var="s_frmConnectMode">servlet</forms_conr....

Oracle Applicationsリリース11

Oracle Applicationリリース11は、デフォルトの構成ではソケット・モードで実行します。

次のコマンドを使用します。

$ grep connectMode FORMS60_WEB_CONFIG_FILE

現在の接続モードがレポートされます。

connectMode=socket

次のコマンドを使用します。

$ grep xsport FORMS60_WEB_CONFIG_FILE

目的のポート番号が必要です。

xsport=9095

または、次のコマンドを使用します。

$ grep socket CONTEXT_FILE

現在の接続モードがレポートされます。

<forms_connect oa_var="s_frmConnectMode">socket</forms_conr....

HTMLソースのチェック

最後に、Oracle Formsアプリケーションの起動に使用するページのHTMLソースもチェックできます。Internet Explorerで行う場合は、「表示」「ソース」を選択します。図N-6に示すように接続モードが含まれています。

図N-6 起動ページの詳細例

図N-6の説明が続きます
「図N-6 起動ページの詳細例」の説明

関連する接続モードの情報をハイライト表示しています。

N.9 ホスト名およびURL接頭辞

EBSの実装およびEBSのインスタンスはホスト名で識別できます。場合によっては、URL接頭辞で識別できます。一般的に、EBSスイートにアクセスする方法は2つあります。ホスト名のみを使用する方法、または完全修飾ホスト名(ドメインを含む)を使用する方法です。通常は、URL接頭辞なしでドメインのみを指定してください。特に設定を行っていないアプリケーションはデフォルトの場所でアクセスされます。

formsのソケット・モードでは、server-ipを指定する必要があります。サーバーが複数ある場合、formsソケット・モードを正常に機能させるため、各サーバーのserver-ip/portの組合せを指定する必要があります。

N.10 データベース表

次のEBSデータベース表は、カスタマイズに関する情報を取得するためにcreate_EBS_info.plスクリプトで使用されます。

容易に取得できるように、select文ではJDR_UTILSおよびJDR_MDS_INTERNALパッケージが使用されます。

N.11 アクション、ページおよびオブジェクト

各EBSフレームワークを分析して、すべてのヒットがオブジェクト・ヒットまたは、アクション・ヒットおよびページ・ヒットとして分類されるように正しい構成を得る必要があります。フレームワーク固有の考慮事項を次に示します。

OA

OAフレームワークは、M-V-C(Model-View-Controller)モデルを使用して構築されます。コントローラは、特定のページを表示するか、そのページを構成する別の場所にビジターをリダイレクトするかを内部で決定します。コントローラは、特定のページを表示するか、またはそのページを構築する別の場所にビジターをリダイレクトするかを内部的に決定します。リダイレクトはRUEIの標準機能であり、自動的に認識されます。

URLパラメータに基づいてページ名が定義されます(リダイレクトの場合は、前のページのパラメータを含む元のURLではなく、リダイレクト先URLのURLを使用する必要があります)。コントローラの他に、このフレームワークには固定URL(OALogout.jspのようなコントローラをバイパスする)も含まれます。このようなファイルはJTTベース・ファイルと一緒に認識されます。

JTT

JTTフレームワークは、M-V-C(Model-View-Controller)モデルを使用して構築されます。すべてのアプリケーションに1つのコントローラがあるのではなく、アプリケーションごとに1つ(または複数)のコントローラがある点で、OAフレームワーク定義とは異なります。つまり、関連する.jspファイルの数が多く、関連するすべての.jspファイルの調査が必要になります。.jspファイルをサーバー側で分析すると、アプリケーション定義の判別が可能です(.jspファイルの場所に基づいて)。

N.12 関数エラー

デフォルトのRUEIインストールでは様々なタイプのエラーを認識できます。8.2.11.1項「コンテンツ・メッセージの説明の定義」を参照してください。これらはネットワーク・エラーおよびHTTPエラーです。また、事前定義済のコンテンツ・メッセージがすべての標準FRMおよびメッセージ・ディクショナリ・アイテム(つまり、接頭辞「APP_」を使用したメッセージ)に自動的に提供されます。デフォルトでは、タイプ「エラー」のメッセージのみがエラーとしてレポートされ、他のすべてのメッセージ・タイプ(「注意」や「ヒント」など)が通知としてレポートされます。Oracle Formsトラフィックの場合、個々のforms要素交換ですべての読取可能テキスト文字列から指定のコンテンツ・メッセージが検索されます。

メッセージ・ディレクトリのカスタマイズを作成した場合、create_EBS_info.plスクリプトを実行してRUEIインストールにマージすることをお薦めします。

運用上の理由で、メッセージID(APP-FND-01702など)が正規化されます(つまり、先頭のゼロが無視されます)。文字列の比較を実行する場合、このことを考慮する必要があります。

Oracle Formsエラーの原因

Formsセッション中に発生するエラーは、様々なレイヤーが原因となっている可能性があります。

N.13 Forms名のレポート

デフォルトでは、レポートされるForms名は、構成スクリプトでアップロードされたマッピングに基づいて、Formsウィンドウ・タイルから導出されます。ただし、環境変数FORMS_RUEI_SEND_FORM_NAMEが設定されている場合、Formsサーバーは、ウィンドウ作成メッセージとともにFormsモジュール名を送信します。デフォルトでは、環境情報がdefault.envファイルに設定されます。別のファイル名を使用できますが、これをformsweb.cfgファイルに指定する必要があります。これには、次のような利点があります。

N.14 追加メッセージのレポート

Oracle Forms 11gリリース2(以上)では、MESSAGEビルトインの使用をサポートします。これにより、カスタマイズした文字列をフォームに含むことができます。これは、特にデバッグの目的に役立ちます。RUEI監視トラフィックでは、2つの定数をMESSAGEビルトインのuser_responseパラメータ内で使用できます。これらは、RUEI_BEGINおよびRUEI_ENDです。次に例を示します。

MESSAGE('my message1', RUEI_BEGIN);
...
...
MESSAGE('my message1' RUEI_END);

FormsサーバーがMESSAGEビルトインを処理する場合、RUEIがメモに含まれる情報を通知するため、メッセージを送信します。この情報は、セッション診断機能内に表示できます(第4章「診断機能の使用」を参照)。メッセージはクライアントに表示されないので注意してください。

N.15 OAフレームワークでのページ名の推定

OAフレームワークの詳細は、次のサイトを参照してください。

http://www-apps.us.oracle.com:1100/fwk/fwksite/510/devguide/ess/ess_state.htm

OAベースのトラフィックは次のようにRUEIにマッピングされます。

パラメータのマッピング

マッピングが可能なのは、監視対象のデプロイメントと一致するIDがEBS_*.txtファイルに含まれる場合のみであることに注意してください。正しい構成ファイルを取得するには、スクリプト(N.7項「RUEIとEBS本番環境の同期化」を参照)を使用してデプロイメント環境から正しい情報を取得します。

このスクリプトでは、関連する情報を取得するために次の2つの方法が使用されます。

N.16 ページ・コンテキスト

すべてのアクションがページに関連するとは限りません。このため、この項ではアクション(HTTPリクエストなど)がどのようにページ・ビューとしてレポートされるかを説明します。

ページについてのリクエストが受信されるたびに、OAフレームワークはOAPageContextを作成します。これは新しいページの処理が完了するまで存続します。特に、OAPageBean(ページ処理の中心機能)によってOAPageContextが作成されます。

RUEIでのレポートは、HTTPレベルで確認されるリクエストに基づくことに注意してください。ページが1つのリクエスト内で変化する場合、計測された時間は元のページに対してレポートされます。

N.16.1 リクエストとページの境界

Webアプリケーションの作業ユニットは、リクエスト/レスポンスのペアです。ブラウザによってリクエストが送信され、サーブレットによってリクエストが処理され、レスポンスが戻されます。レスポンスの送信は、1つのリクエストの終了、または完了したリクエストと新規リクエストの間の境界を表します。同様に、OAPageBeanがあるページの処理を完了したとき、これは現在のページと新しいページの「境界」です。したがって、次のシナリオでユーザーがページXからページAに、次にページBにナビゲートする場合、ページXとページAの間およびページAとページBの間に2つのリクエスト境界があります。また、ページ境界も、ページXとページAの間およびページAとページBの間という概念的に同じ場所にあります。また、ページXとページA、およびページAとページBの間の概念上同じ場所に、2つのページ境界があります。これを図N-7に示します。

図N-7 同じリクエスト境界とページ境界

図N-7の説明が続きます
「図N-7 同じリクエスト境界とページ境界」の説明

異なるリクエスト境界とページ境界

ただし、状況によっては、リクエストとページの境界は同じではありません。次のJSP Forwardのケースについて考えてみます。

  • 図N-7に示すようにユーザーがページXからページAにナビゲートします。

  • ページAでユーザーが選択するコントロールが、レスポンスで表示するページを決める前にページAのコードを評価する必要があるというものです。このため、ブラウザはリクエストをページAに発行し、OAフレームワークがリクエストを処理します(ページのためのOAPageContextの作成など)。ページAで処理が完了すると、図N-8に示す最初のページ境界に到達します。

  • ページAのコード内では、ユーザーがどのコントロールを選択したかを開発者が評価して、JSP ForwardをページBに発行します。OAフレームワークは、ページAを再表示しないためにこの時点ではHTTPレスポンスを送らず、ページBの処理を開始します(このページのための新しいOAPageContextの作成など)。ページBで処理が終了すると、2番目のページ境界に到達します。

  • ここでページBをユーザーに表示する必要があるため、HTTPレスポンスがブラウザに送信されます。このときにリクエスト境界に到達します。

図N-8 異なるリクエスト境界とページ境界(JSP Forward)

図N-8の説明が続きます
「図N-8 異なるリクエスト境界とページ境界(JSP Forward)」の説明

N.17 データ・アイテム

表N-2に示すEBS固有のデータ・アイテムがRUEIでレポートされます。

表N-2 EBS固有のデータ・アイテム

項目 説明

1ページ当たりのデータベース時間(ミリ秒)

1ページ当たりのデータベース時間。

合計データベース時間(ミリ秒)

合計データベース処理時間。

EBSアクション

ユーザーによって実行されたアクションの説明(これは、フレームワークに基づいて決定されます)

EBSコンポーネント

アクティブ・コンポーネントの説明(このフレームワークで決定できる場合)

EBSフォーム階層

測定されたアクティビティ中にOracle Formsプロトコル内でアクティブだった要素のコンポーネント階層。

EBSフォーム・メッセージ

Oracle Formsメッセージの開始/終了を示す特定のプログラムされたメッセージに関連する情報。

EBSフォーム名

アクティビティに関連するOracle Formsの名前。

EBSフォーム名の説明

アクティブだったOracle Forms名の説明。

EBSフレームワーク

使用されるEBSフレームワーク。たとえば、FORMS (Oracle Forms traffic)、OA (Oracle Applicationフレームワーク)、JTT (JTTフレームワーク)、servlet (サーブレット)、other-traffic (未分類ページ設定が選択されている場合にのみ表示されます。実際のURLを表示するにはpage-URLを使用します)です。

EBS JSPファイル名

使用されるJSPベース・ファイルの名前。たとえば、ログインイベントまたはrunformsなどのアクションが含まれることがあります。

EBS Javaクラス

ユーザー・アクティビティに対してアクティブだったコンポーネントのクラス名。

EBSモジュール

エンド・ユーザーがナビゲートしていた場所のEBSモジュール。

EBSモジュール・コード

エンド・ユーザーがナビゲートしていた場所のEBSモジュール。

EBS職責

アクティビティ中にアクティブだった職責。

EBS職責ID

アクティビティ中にアクティブだった職責ID。

EBSユーザー入力

識別できる場合、アクティビティ中にユーザーが入力したリテラル・テキスト。


N.18 リソース

次の資料が役に立つ場合があります。

N.19 既知の制限事項

現在、RUEIはEBSのすべての機能には対応していません。特に次の制約事項がすでに判明しています。

N.20 トラブルシューティング

この項では、EBSアプリケーションを監視するときに特によく発生する問題について説明します。カスタマ・サポートに問い合せる前に、この項の内容を確認してください。

N.20.1 ネットワーク・トラフィックが測定されていないように見える

予期されるネットワーク・トラフィックがレポートされないように見える場合は、次の点を確認することをお薦めします。

  • RUEIが、OA、JTT、PLS、Oracle Formsおよびサーブレット・フレームワークに基づくEBSアプリケーションを監視できること。一般的に、スイートはインストールごとに異なる特定のポートで実行するように構成されます。これもRUEIに指定する必要があります。「構成」「セキュリティ」「プロトコル」を選択します。定義されたポート設定を確認し、EBSアプリケーションの要件を満たすようにします。

  • RUEIシステムでデータの受信が開始しても、自動的にレポートされないこと。最小でも1つのアプリケーションを定義する必要があります。このアプリケーションは、少なくとも関連するドメイン名と、そのドメイン内の一意のページIDスキームを含む必要があります。

  • 監視対象のトラフィックにVLANカプセル化トラフィックが含まれる場合は、そのトラフィックがRUEIで構成されていることを確認します。「システム」「構成」「セキュリティ」「ネットワーク・フィルタ」「VLANトラフィック」を順に選択して、定義済の設定を確認します。この機能の使用方法の詳細は、13.4.2項「VLANフィルタの定義」に記載されています。

  • EBSには、追加設定せずにセッション・トラッキングのために使用可能なCookieはないことに注意してください。したがって、Cookieはログイン・ページで作成される必要があります。このCookieがアプリケーション全体に対応します。デフォルトでは、Jession Cookieはアプリケーション・リンクのみに対応し、イメージ、CGIおよびライブラリには対応しません。oracle.uix Cookieはすべてのヒットに対応しますが、ビジターごとに一意ではありません。

  • トラフィック・サマリー機能(「システム」「ステータス」「データ処理」の順に選択)はアプリケーション・ロジックに基づいているため、トラフィックの概要にはアプリケーション以外(スイート、サービス、SSOなど)のトラフィックは示されません。

EBSスイート定義を構成した後で、EBSアプリケーションにログインし、アプリケーションでクリティカル・パスを実行することを強くお薦めします。その後、RUEIで記録されたアクションを検索し、セッション診断機能を使用してそれらが正しくレポートされていることを確認します。具体的には、次のとおりです。

  • 説明がレポートされ、コードはレポートされないことを確認します。アプリケーション名のかわりにコードまたはページグループ名のかわりにページグループ・レベルがレポートされる場合、create_EBS_info.plスクリプトから導出された情報が正常にアクティブ化されていません。

  • 短いセッションが多数レポートされる場合は、Formsトラフィックが測定されていません。

  • .jspファイルが多数レポートされる場合は、手動ページ・ネーミングの必要性を示します(ユーザーが必要とする場合)。

N.20.2 識別されないアクションが多数レポートされる

レポートされるトラフィックの大部分を識別されないアクションが占める場合、Formsの追跡が正常に機能していません。次の項目に注意する必要があります。

  • ステータス・バーやテキストフィールドなど(図N-2を参照)が表示されない場合は、監視対象トラフィックの特定の特性が取得されていません。この場合は、カスタマ・サポートに問い合せてください。

  • N.3項「監視の有効範囲の検証」の説明に従って、サーバー・ポートが正しく構成されていることを確認します。特に、これは通常のHTTPポートとしてではなく、Formsサーブレット・モード・ポートとして構成されている必要があります。

N.20.3 Formsのみの環境におけるuser-id識別の構成

formsプロトコルは通常のhttpトラフィック(RUEIのネイティブ)と同じではないため、formsのみの環境にuser-idソースを構成する場合は多少の知識が必要になります。この項では、このような環境でuser-idを構成する方法について説明します。

使用できるソースのタイプは2種類で、これらがクライアント・リクエストとして構成されている必要があります。

  • Oracle Formsクライアント要素

    formsの階層構造によって送信されるforms要素内の値です。

  • Oracle Formsクライアント・プロパティ

    user-idが含まれる、一意の名前を持つプロパティ。

user-idの構成に必要な情報はコレクタのログ(場所は次の例を参照)から取得されます。

$RUEI_DATA/processor/data/c_localhost/http/20130207/proc1/

このディレクトリにナビゲートし、すべてのファイルを対象にしてログイン・アクションを実行したユーザーを検索します。次はこのコマンドの例です。

zgrep paul http-201*.gz

次のような出力が生成されます。

2013/01/30:10:31:33:205   3       -        235.174.222.186 2949    -   10.161.124.51   80      POST    /forms/lservlet;jsessionid=1510821202615f4b6f7d688710fdd8f6c47
d629bcea4f11bfaf296ba87eda0c9.e3mLchuRax4Ne3eSc3yQbh4Mbi1ynknvrkLOlQzNp65In0      1.1     -       
ORA_TAHITI_PREFS=86910bc3181a2b82;ORA_UCM_INFO=65241d61bd16d97d;ORA_UCM_VER=19df918e29822249;ORA_UCM_SRVC=0753cd488af8cbcb; WEB2000userid=fffcec715cd9b15b;scouser=dc87defb85e08290;
__utma=af4005efe0fdbb6f;__utmz=abb9352a6918ccb5;__qca=85a88405530a5b63;loginCookieDate=726b29c7e447ad61;checkerStorage=25660f1ee2708d50;s_nr=c6802213d9578355;s_cc=0036758e0041e45f;
s_sq=220c178208c68ade;ORASSO_AUTH_HINT=056febb7e15cabf6;gpv_p24=f252faefe6be2601;gpw_e24=f252faefe6be2601;ORA_ML_STATE=53b69c923b02dfdc;
ORA_ML_CLUSTER=7a0d1d9745276966;ORA_CSM_MODE=05cfeff006960dea;ORA_CSM_LOCALE=00000ca900000d42    nllx012.nl.oracle.com   -       -       Java1.3.1.26-internal   1376    31      0       0       1       200     application/octet-stream        -       
Oracle-Application-Server-10g/10.1.2.2.0 Oracle-HTTP-Server     -       268     59189   127     366     494     3       -       -       -       -       -       -       0       0       2:0:3:51645090  -       -       &Pragma=6&User-Agent=Java1.3.1.26-internal&Content-Length=31    -       -       &cl_enc=X-none&sv_enc=X-none&url_enc=none       
&LogonDialog.INDEX_LOGON_USERNAME_VALUE={val:paul;frm:no-form;hier:;class:LogonDialog;seqno:0039;name:;
i:INDEX_LOGON_USERNAME_VALUE}&LogonDialog.INDEX_LOGON_DATABASE_VALUE={val:;frm:no-form;hier:;class:LogonDialog;seqno:0039;name:;
i:INDEX_LOGON_DATA}   &hitinfo=no-selected-properties&form=Copyright (c) 1995-2009, Oracle Corporation&formtitle=Copyright (c) 1995-2009, 
Oracle Corporation&form=Copyright (c) 1995-2009, Oracle Corporation&FormStatusBar.INDEX_STBAR_REMOVE_LAMPS={val:1;frm:no-form;hier:FormWindow-2.FormCanvas-3.;
class:FormStatusBar;seqno:4;name:;i:INDEX_STBAR_REMOVE_LAMPS} -       no-reply-body   other   274     
dynamic -       235.174.222.186 -       -  

要素とプロパティの区別

通常は前述の例で示したプロパティ要素の構成で間に合います。これは、user-idが含まれる引数(INDEX_LOGON_USERNAME_VALUE)をその他の要素(一般的にはINDEX_VALUE)と区別できるためです。プロパティ用の構成を行うには、次を設定します。

  • ソース: Oracle Formsクライアント・プロパティ

  • 値: INDEX_LOGON_USERNAME_VALUE

user-idが入力されるフィールドに一般名が付与されている場合があります。この場合、コレクタはこれをINDEX_VALUEというプロパティ名で記録します。これは次の例で確認できます。

2013/02/04:13:06:24:655    9    -    10.173.25.160    62439    -    10.62.38.50    8888    POST    /forms/lservlet;jsessionid=Bm1cRPkXdrdXTKYS9zy2nPjQCQn3WQY
FGHm1gWSCthY8ngWTxqty!1966339776    -    -    -    fefr1atp08.ods:8888    -    -  
Mozilla/4.0 (Windows 7 6.1) Java/1.6.0_24    372    34    0    0    1    200    application/octet-stream    -    -    -    325    19    362    1    -    4    -    -    -    -    -    -    0    0    -    -    -    &Pragma=6&Content-Length=34    &X-ORACLE-DMS-ECID=004pEJg2tBjFs1l6wvjc6G0003gD00RG0X    -    
&cl_enc=X-none&sv_enc=X-none&url_enc=none    &TextFieldItem.INDEX_VALUE={val:paul;frm:RE_FM_INICIO;hier:RE_FM_INICIO.FormCanvas-2.FormCanvas-3.;class:TextFieldItem;seqno:4;name:Enter value for Username;i:INDEX_VALUE}&TextFieldItem.INDEX_SELECTION=
{val:point_6_6;frm:RE_FM_INICIO;hier:RE_FM_INICIO.FormCanvas-2.FormCanvas-3.;
class:TextFieldItem;seqno:4;name:Enter value for Username;i:INDEX_SELECTION}&TextFieldItem.INDEX_CURSOR_POSITION={val:6;frm:RE_FM_INICIO;
hier:RE_FM_INICIO.FormCanvas-2.FormCanvas-3.;
class:TextFieldItem;seqno:4;
name:Enter value for Username;
i:INDEX_CURSOR_POSITION}&TextFieldItem.INDEX_SKEY={val:point_9_0;
frm:RE_FM_INICIO;hier:RE_FM_INICIO.FormCanvas-2.FormCanvas-3.;
class:TextFieldItem;seqno:4;
name:Enter value for Username;
i:INDEX_SKEY}    &TextFieldItem.INDEX_AUTOSCROLL={val:void;frm:RE_FM_INICIO;hier:RE_FM_INICIO.FormCanvas-2.FormCanvas-3.;
class:TextFieldItem;seqno:4;
name:Enter value for Username;
i:INDEX_AUTOSCROLL}&TextFieldItem.INDEX_AUTOSCROLL={val:***;frm:RE_FM_INICIO;
hier:RE_FM_INICIO.FormCanvas-2.FormCanvas-3.;
class:TextFieldItem;seqno:5;
name:Enter value for Password;
i:INDEX_AUTOSCROLL}    -    no-replay    other    62    dynamic    -    10.73.5.60    -    -    -

この場合は要素構成アイテムを使用する必要があります。入力されている値はforms内でのその要素までの階層パスです。

この値を検索するときには、次の例のような'sed'コマンドを使用すると便利です。

USER=paul; zgrep $USER http-201* |sed "s,^.*={val:${USER};[^}]*;hier:\([^};]*\);class:\([^};]*\);seqno:\([^;}]*\)[^}]*;i:INDEX_\([^;}]*\)[;}].*,found elem: \\1\\2-\\3.INDEX_\\4,g"
found elem: RE_FM_INICIO.FormCanvas-2.FormCanvas-3.TextFieldItem-4.INDEX_VALUE

構造の各要素の意味は、次のとおりです。

  • USERは、事前に検出した完全ログイン名です。

  • zgrep $USER http-201*は読み取るファイルの名前です。

  • found elemは結果です。

このパラメータに次の値を設定します。

  • ソース: Oracle Formsクライアント要素

  • 値: RE_FM_INICIO.FormCanvas-2.FormCanvas-3.TextFieldItem-4.INDEX_VALUE

N.20.4 create_EBS_info.plスクリプトでFRM-91500エラーがレポートされる

create_EBS_info.plスクリプトをUNIXシステムで実行すると、次のエラーが複数回レポートされます。

FRM-91500: Unable to start/complete the build.

これは、frmbatchスクリプトがユーザー・インタフェースにアクセスできないために発生します。次の項目に注意する必要があります。

  • DISPLAY変数が正しく設定されていることを確認します。これはxclockまたはxeyesなどX Window Systemのツールを使用して確認できます。また、別のサーバーのX Windows Systemを使用できるようにするSSHのXフォワードも検討してください。

  • frmcmp_batchスクリプトは、X Windows Systemなしで機能しようとします。これは、create_EBS_info.pl構成スクリプトで使用される最初のスクリプトです。次のコマンドを使用して表示モードを設定します。

    $ set ORACLE_TERM=vt220; export ORACLE_TERM
    

N.20.5 PerlのZip機能が使用できない

一部のシステムではzip機能はPerlパッケージと一緒にインストールされません。この場合は次のメッセージが表示されます。

The Archive::Zip package is not available on this system.

このメッセージの後で、サンプル・コマンドによってアーカイブの作成方法が示されます。アーカイブには空のファイルを含めないこと、およびファイルをディレクトリに入れないことに注意してください。これらに違反すると、RUEIにアップロードできません。または、適切なディレクトリでコマンドzip EBS_*txtを実行することもできます。

N.20.6 frmcmp_batchスクリプトが失敗する

frmcmp_batchスクリプトが不明なエラーで失敗し、次のようなレポートが生成されます。

execution of 'frmcmp_batch module=XXX/XXX/XXX.fmb module_type=form batch=yes logon=no forms_doc=yes strip_source=yes build=no output_file=/tmp/XXX.txt' failed: 11. Ignoring /XXX/XXX/XXX.fmb

これは、レポートされた.fmbファイルが.txt形式に変換できなかったこと(おそらくは破損のため)を示しています。すべての.fmbファイルのうち少数のみがレポートされる場合は、問題ありません。実際、レポートされたフォームは本番環境で機能しない可能性が高いためです。ただし、レポートされたフォームをWebサイトのビジターが頻繁に使用しており、異常がないことがわかっている場合は、この問題をレポートしてください。このとき、関連する.fmbファイルと一緒に、EBS環境でのファイルのデプロイ方法がわかる情報も提供してください。

N.20.7 create_EBS_info.plスクリプトで警告/エラーが生成される

create_EBS_info.plスクリプトを実行しているときにエラーまたは警告(あるいは両方)を受け取った場合は、エラーや警告の種類に応じて次のようにします。

  • データベース関連:

    • 次のコマンドを発行して、create_EBS_INFO.plスクリプトに指定されているconnectstringを確認します。

      sqlplus connectstring @temporarysqlfile
      
  • Forms関連:

    • frmcmpまたはfrmcmp_batchが正常に機能していません。この問題のトラブルシューティング情報の詳細は、「ノート266731.1」(https://support.oracle.com/CSP/ui/flash.html)を参照してください。

    • frmcmpまたはfrmcmp_batchがsig 11セグメント・エラーを返します。これはGRDDHIST.fmbについて発生することがわかっています。



脚注

脚注1:このスクリプトは、本番環境と同じであれば検収環境でも実行できます。