この付録では、Oracle E-Business Suite(EBS)およびOracle Formsベースのアプリケーションの正確な監視のために提供されるサポートについて詳しく説明します。 詳細は、オラクル社の担当者に問い合せてください。
RUEIで提供される監視のサポートはEBS R12に対して検証されています。 ただし、古いFormsバージョン(11.2より前のリリース)の場合、フォーム名は正しくありません。
デフォルトでは、レポートされるForms名は、構成スクリプトでアップロードされたマッピングに基づいて、Formsウィンドウ・タイルから導出されます。 ただし、環境変数FORMS_RUEI_SEND_FORM_NAMEが設定されている場合、Formsサーバーは、ウィンドウ作成メッセージとともにFormsモジュール名を送信します。
環境情報はdefault.env
ファイルに設定されます。 別のファイル名を使用できますが、これをformsweb.cfg
ファイルに指定する必要があります。 これには、次のような利点があります。
同じウィンドウ・タイトルのトラフィック内の複数のForms名を区別できます。
Formsを追加作成した場合でも、構成スクリプトを再実行する必要がありません。
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が構成されているモードの検証の詳細は、「ソケットおよびサーブレット・モードの確認」を参照してください。
Formsのみのユーザー
このマニュアルで提供する情報はすべてのEBSユーザーに関連するものです。 ただし、情報がEBSユーザーまたはFormsのみのユーザーに固有の場合は明記しています。
Formsのみの環境を使用するユーザーは、この項で説明する点に特に注意する必要があります。
RUEIでEBSベース・アプリケーションについての正確なレポートを行うには、本番環境の情報が必要です。 特に、機能領域とレポートされる名前をマッピングする必要があります。 「RUEIとEBS本番環境との同期」で説明されているように、これはcreate_EBS_info.pl
Perlスクリプトを実行することで実行されます。 このスクリプトを実行して、生成される.txt
ファイルを.zip
ファイルに含めてアップロードすることを、Formsのみの環境のユーザーにお薦めします。
機能マッピングの手動作成
create_EBS_info.pl
スクリプトは、いくつものEBSデータベース表を使用して、Oracle Formsインスタンスのインストールと構成に関する情報を取得します。 使用されるデータベース表については、「Database表」で説明します。
ただし、このスクリプトで使用されるAPPLSYS.FND_APPLICATION、APPLSYS.FND_APPLICATION_TL、APPLSYS.FND_FORM、APPLSYS.FND_FORM_TLおよび他の表は、Formsのみの環境には存在しません。 このため、RUEIで提供されるデフォルト(テンプレート)のマッピング(この項で後から説明)を利用するか、対応する.txt
ファイルを手動で作成することで必要なマッピングを指定できます。
これらのファイルを手動で作成するときは、次のタブ区切りファイルが必要です。
EBS_formname2details.txt
: 各フォームの機能の説明を指定します。 このファイルの各行は次のような形式です。
formname
{TAB}form_description
次に例を示します。
ADSAPCRD Credit Card Expense Transaction Entry ADSAPPRC Procurement Card Transaction Entry ADSCONC Running Jobs ADSCONC Tax Locations ADSCSCRC Healthcare CC ADSMAILI Mail InformationADSRSETUP ADS Repurpose Setup ADSSOE Custom Order EntryADSSOE View Person Life Event Information AKDAPREG Application Module Parameters Registry
EBS_formname2appshort.txt
: 各フォームが含まれているアプリケーション名の短縮形(3文字)を指定します。 このファイルの各行は次のような形式です。
formname
{TAB}short_application_name
次に例を示します。
ADSAPCRD ads ADSAPPRC ads ADSCONC ads ADSCSCRC ads ADSMAILI ads ADSRSETUP ads ADSSOE ads AKDAPREG ak AKDATTRS ak AKDFLOWB ak
EBS_appsort2appname.txt
: 短縮形(3文字)のアプリケーション名と完全なアプリケーション名のマッピングを指定します。 このファイルは次のような形式です。
short_application_name
{TAB}application_name
次に例を示します。
abm Activity Based Management (Obsolete) ad Applications DBA ads Applications Demonstration Services ads_dev ADS Development ahl Complex Maintenance Repair and Overhaul ahm Hosting Manager(Obsolete) ak Common Modules-AK alr Alert ame Approvals Management amf Fulfillment Services (Obsolete)
作成した構成ファイルは、目的のスイートごとに.zip
ファイルに含めてアップロードする必要があることに注意してください。 .zipファイルには、空でない.txt
ファイルしか含めることができません。 また、これらのファイルはすべてルート・ディレクトリに存在する必要があります。 つまり、サブディレクトリは許可されていません。 実際の本番環境に基づいた適切な構成ファイルを目的のスイート用にアップロードする必要があります。 構成ファイルを更新する手順は、「RUEIとEBS本番環境との同期」を参照してください。
デフォルト(テンプレート)マッピングの利用
必要なマッピングの手動作成が現実的ではない場合は、すでにRUEIに構成されているデフォルト(テンプレート)マッピングを利用できます。 この方法で適切なレベルのレポートを得られますが、次の制限事項があります。
form_name
: 通常、これは、8-characterの技術名を機能的な説明に変換します。 ただし、説明がない場合は、8文字のテクニカル名がかわりにレポートされます。
app
: 通常、これはアプリケーションでフォーム名を接続するマッピング・ファイルから導出されます。 ただし、導出されない場合は、フォーム名の先頭3文字がかわりにレポートされます。
application_name
: 通常、これはマッピング・ファイルから導出されます。 ただし、これは使用できないため、app
がレポートされます。
最新の一致情報
一般的にFormsのみの環境は時間とともに変化するため、マッピング情報を定期的に確認することを強くお薦めします。 上記の制限は、最後にcreate_EBS_info.pl
スクリプトを実行してから、またはマッピング・ファイルを手動で作成してから環境に追加されたすべてのフォームに適用されることに注意してください。
Formsベース環境のメモリー要件
Formsベース・トラフィックの監視には、大容量のメモリーが必要になることに注意してください。 たとえば、10,000件の同時Formsセッションの監視には、約10GBのコレクタ・メモリーが必要になります。 このため、Formsベース・トラフィックをリモート・コレクタとして監視するコレクタには、少なくとも16GBのRAMをデプロイすることをお薦めします。 または、単一サーバー・デプロイメントを使用している場合、サーバーには少なくとも32GBのRAMが必要です。
さらに、コレクタで使用できるシステム・メモリーのレベルを確認することをお薦めします。 24GBのRAMを備えた単一サーバー・デプロイメントでは50%に設定する必要があります。32GBのRAMでは40%に設定する必要があります。 使用できるコレクタのメモリー量を増やす方法の詳細は、次の場所を参照してください。
多くの場合、EBSソフトウェアは標準以外のポート(8000など)を使用するように構成されます。 EBSインストールが実行しているポートを確認するには、ログインURLを調べてください。 これは次の形式になっています。
https(s)://hostname
:portnumber
/OA_HTML/AppsLogin
定義されたポートのいずれかとしてportnumber
が構成されていることを確認します(これらについては後述します)。 また、HTTPSポートが指定される場合は、WebサーバーのSSL秘密キーのコピーをコレクタ・システムにインポートするようにしてください。 モードおよびポート番号の識別方法の詳細は、「ソケットおよびサーブレット・モードの確認」を参照してください。 ポート番号を検証するには、「ネットワーク・ベースのモニタリングの有効範囲の管理」で説明されている手順に従います。
EBSベースのアプリケーションのスイート定義を作成できます。作成方法は、サポートされている他のOracle Enterpriseアーキテクチャの場合と同じです。 スイートの作成手順については、「スイートの使用」で説明します。
Formsを使用するEBSスイートの場合は、拡張セクションを選択し、その他タブをクリックすることに注意します。 スイートの概要が、図N-1に示されるように変わります。
図N-1 拡張スイート構成セクション
これらの設定の使用方法は次の項に記載されています。
RUEIではセッション情報はCookieに基づいています。 Cookieは、ヒットを特定のアクセスに結び付けるために使用されます。 一般的にCookieはユーザー・ログイン・ページにも結び付けられるため、RUEIは同じCookieを持つ後続のすべてのヒットにユーザー名を含めることができます。 EBSにはいくつものCookieがあります。 ただし、これらは通常は使用できません。 問題になるのは、それほど完全に一意ではなく(たとえば、oracle.uix
)、広い範囲ではありません(たとえば、JSESSIONIDはWebサイトの/OA_HTML/
部分にのみ使用されます)。
クライアント側のCookieメカニズムを実装することをお薦めします。 その手順については、「セッション・トラッキング・メカニズムの指定」で説明します。
注意:
Formsのみの環境では、ビジターがForms内のアプリケーションにログオンすると、Formsログオン・ページのユーザーIDが自動的に追跡されます。
Cookieの構成を確認する手順は、次のとおりです。
すべてのヒットが同じCookieに関連していない場合、問題がある場所を調べて(たとえば、Cookieのドメインまたはパス・オプション)、適切な方法で解決することをお薦めします。
相関変数とセッションURL引数に関して指定する必要がある追跡メカニズムは、いくつかのフロー・チャートを使用して決定することをお薦めします。
Formsセッション・パラメータ
図N-7に、セッション・パラメータを決定する方法を示します。 ソケット・モードで実行している場合、この設定は対応していません。 そうでない場合は、各Formsセッションに一意の値を提供する引数をForms URLで調べる必要があります。 通常、この引数はURLでセミコロンまたは疑問符の後にあります。 たとえば、jsessionid
またはJServSessionIdforms
です。 指定したパラメータがURLで見つからない場合、Cookieが検索されます。
相関変数
相関変数を使用すると、セッション(TCP上のソケット・モード)を1つのエンドユーザー・セッションにマージできます。 図N-8に、相関変数を決定する方法を示します。
一意のクライアントIPアドレスが使用される場合、この設定は対応していません。 ソケット・モードで実行している場合、HTTPトラフィックとソケットモード・トラフィックの両方で得られる相関変数(INDEX_INITIAL_CMDLINEに含まれる)の値がセッションの注釈として付けられます。 EBS環境の場合、これは常にicx_ticket
変数を含みます。 EBS以外の環境の場合、他の変数を指定する必要があります。 HTTPレイヤーでは、変数はフォーム初期化コールの問合せ部分、または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-9に、セッション・トラッキングCookieを決定する方法を示します。
一意のクライアントIPアドレスが識別される場合は、デフォルトのクライアントIPベースの追跡を使用できます。 または、ホスト全体に対して一意の値を持つCookieが使用可能な場合は、JavaScriptを使用してこのCookieを作成できます。 その他の場合は、デフォルトのEBS(JSESSIONID)追跡スキームを使用する必要があります。
たとえば、セッションCookieを追加するためにログイン・ページを変更できない場合があるとします。 その場合は、Forms以外のトラフィックの別のEBS Cookie(たとえばJSESSIONID)を選択できます。相関関数を使用して、Forms以外のトラフィックをFormsベースのトラフィックに結び付けることができます。 このとき、Forms以外のヒットはJSESSIONIDを使用して識別され、共有ヒットはJSESSIONIDと相関引数の組合せで識別され、Formsヒットはセッション・トラッキング変数jsessionid
と最初のコマンド行の相関引数の組合せで識別されます。
Formsソケット・モードでは、アクティブなソケットモード・セッションが非アクティブになってから数分間は、コレクタがセッションを廃棄できないように設定できます。 この設定はFormsソケット・モードのみに対応することに注意してください。 デフォルトでは10分に設定されています。
ご使用の環境でEBSフレームワークがどのように実装されているかをRUEIで認識するための手順は、次のとおりです。
注意:
この項の内容は、Forms名のレポート機能が有効になっている環境には該当しません。 詳細は、「フォーム名レポート」を参照してください。 以前のリリースへのバックポートが済んでいるため、将来的にはすべてのEBS/Formsユーザーがforms名のレポート機能を有効にすると考えられます。
注意:
create_EBS_info.pl
スクリプトの実行中に警告またはエラー・メッセージを受信した場合は、「Create_EBS_info.plスクリプト・レポートFRM-91500エラー」の重要なトラブルシューティング情報を参照してください。
例N-1 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がフォームの機能説明ではなくフォーム名でレポートされます。 ほとんどカスタマイズが行われていない環境ではこれは問題になりません。
この項では、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-10に示すように接続モードが含まれています。
関連する接続モードの情報をハイライト表示しています。
EBSの実装およびEBSのインスタンスはホスト名で識別できます。場合によっては、URL接頭辞で識別できます。 一般的に、EBSスイートにアクセスする方法は2つあります。ホスト名のみを使用する方法、または完全修飾ホスト名(ドメインを含む)を使用する方法です。 通常は、URL接頭辞なしでドメインのみを指定してください。特に設定を行っていないアプリケーションはデフォルトの場所でアクセスされます。
formsのソケット・モードでは、server-ipを指定する必要があります。 サーバーが複数ある場合、formsソケット・モードを正常に機能させるため、各サーバーのserver-ip/portの組合せを指定する必要があります。
次のEBSデータベース表は、カスタマイズに関する情報を取得するためにcreate_EBS_info.pl
スクリプトで使用されます。
APPLSYS.FND_FORM_FUNCTIONS
Function_id、application_id。
Function_idは、EBS_function_id2*.txt
ファイルにデータを移入するために使用されます。
APPLSYS.FND_FORM_FUNCTIONS
User_function_name。
APPLSYS.JDR_PATHS
名前およびツリー構造。
Path_nameは、EBS_pathname2*.txt
ファイルにデータを移入するために使用されます。
APPLSYS.FND_APPLICATION
アプリケーション短縮名。
Application_nameは、EBS_appshort2*.txt
ファイルにデータを移入するために使用されます。
APPLSYS.FND_APPLICATION_TL
アプリケーション名
APPLSYS.FND_FORM
Form_name、application_id
Form_nameは、EBS_formname2*.txt
ファイルにデータを移入するために使用されます。
APPLSYS.FND_FORM_TL
User-form-name。
APPLSYS.FND_RESPONSIBILITY
職責キー
APPLSYS.FND_RESPONSIBILITY_TL
職責の説明
APPLSYS.JDR_ATTRIBUTES
APPLSYS.FND_NEW_MESSAGES
MESSAGE_NUMBER、MESSAGE_TEXTおよびTYPE列を使用して、EBS_msgid2details.txt
ファイルに移入します。
容易に取得できるように、select
文ではJDR_UTILSおよびJDR_MDS_INTERNALパッケージが使用されます。
各EBSフレームワークを分析して、すべてのヒットがオブジェクト・ヒットまたは、アクション・ヒットおよびページ・ヒットとして分類されるように正しい構成を得る必要があります。 フレームワーク固有の考慮事項を次に示します。
OA
OAフレームワークは、M-V-C(Model-View-Controller)モデルを使用して構築されます。 コントローラはHTTPレベルで確認できる部分であるため、RUEIに関連するのはコントローラのみです。 コントローラは、特定のページを表示するか、またはそのページを構築する別の場所にビジターをリダイレクトするかを内部的に決定します。 リダイレクトはRUEIの標準機能であり、自動的に認識されます。
URLパラメータに基づいてページ名が定義されます(リダイレクトの場合は、前のページのパラメータを含む元のURLではなく、リダイレクト先URLのURLを使用する必要があります)。 コントローラの他に、このフレームワークには固定URL(OALogout.jsp
のようなコントローラをバイパスする)も含まれます。 このようなファイルはJTTベース・ファイルと一緒に認識されます。
JTT
JTTフレームワークは、M-V-C(Model-View-Controller)モデルを使用して構築されます。 すべてのアプリケーションに1つのコントローラがあるのではなく、アプリケーションごとに1つ(または複数)のコントローラがある点で、OAフレームワーク定義とは異なります。 つまり、関連する.jsp
ファイルの数が多く、関連するすべての.jsp
ファイルの調査が必要になります。 .jsp
ファイルをサーバー側で分析すると、アプリケーション定義の判別が可能です(.jsp
ファイルの場所に基づいて)。
デフォルトのRUEIインストールでは様々なタイプのエラーが認識されます。「コンテンツ・メッセージの翻訳の定義」を参照してください。 これらはネットワーク・エラーおよびHTTPエラーです。 また、事前定義済のコンテンツ・メッセージがすべての標準FRMおよびメッセージ・ディクショナリ・アイテム(つまり、接頭辞APP_を使用したメッセージ)に自動的に提供されます。 デフォルトでは、タイプエラーのメッセージのみがエラーとしてレポートされ、他のすべてのメッセージ・タイプ(注意やヒントなど)が通知としてレポートされます。 Oracle Formsトラフィックの場合、個々のforms要素交換ですべての読取可能テキスト文字列から指定のコンテンツ・メッセージが検索されます。
メッセージ・ディレクトリのカスタマイズを作成した場合、create_EBS_info.pl
スクリプトを実行してRUEIインストールにマージすることをお薦めします。
運用上の理由で、メッセージID(APP-FND-01702など)が正規化されます(つまり、先頭のゼロが無視されます)。 文字列の比較を実行する場合、このことを考慮する必要があります。
Oracle Formsエラーの原因
Formsセッション中に発生するエラーは、様々なレイヤーが原因となっている可能性があります。
ネットワーク・エラーは、すべてのアプリケーションと同じ方法でRUEIでレポートされます。
HTTPサーバー・エラー(500、404など)は、すべてのアプリケーションと同じ方法でRUEIでレポートされます。
Formsサーブレット・エラー(サーブレット接続エラー)は、対応するifError
コードと一緒にレポートされます。 これは、Formsフレームワークで発生する内部通信エラーです。
デフォルトでは、レポートされるForms名は、構成スクリプトでアップロードされたマッピングに基づいて、Formsウィンドウ・タイルから導出されます。 ただし、環境変数FORMS_RUEI_SEND_FORM_NAME
が設定されている場合、Formsサーバーは、ウィンドウ作成メッセージとともにFormsモジュール名を送信します。 デフォルトでは、環境情報がdefault.env
ファイルに設定されます。 別のファイル名を使用できますが、これをformsweb.cfg
ファイルに指定する必要があります。 これには、次のような利点があります。
同じウィンドウ・タイトルのトラフィック内の複数のForms名を区別できます。
さらにFormsを作成しても、構成スクリプトの再実行は必要ありません(「RUEIとEBS本番環境との同期」を参照)。
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がメモに含まれる情報を通知するため、メッセージを送信します。 この情報はセッション診断内で表示できます(「セッション診断機能の使用」を参照)。 メッセージはクライアントに表示されないので注意してください。
OAフレームワークの詳細は、次のサイトを参照してください。
http://www-apps.u s.oracle.com:1100/fwk/fwksite/510/devguide/ess/ess_state.htm
OAベースのトラフィックは次のようにRUEIにマッピングされます。
コントローラは、ユーザーが開始するアクションのキー・インジケータとして使用されます。 コントローラに密接に関連するヒットは、そのページの構成要素と仮定されます。 OAフレームワークには、OA.jsp
とRF.jsp
という2つのコントローラがあります。
ページの名前は、コントローラに送られるパラメータに基づいて付けられます。 function_id、_rc、akRegionCode、OAFunc、pageおよびregionというパラメータが考慮されます。 (新しい)フォームまたは職責への参照を含まないページは、前のページのフォーム名または職責を保ちます。
パラメータ・マッピング
マッピングが可能なのは、監視対象のデプロイメントと一致するIDがEBS_*.txt
ファイルに含まれる場合のみであることに注意してください。 正しい構成ファイルを取得するために、スクリプト(「RUEIとEBS本番環境との同期」)を使用してデプロイメント環境から正しい情報を取得します。
このスクリプトでは、関連する情報を取得するために次の2つの方法が使用されます。
ローカルJSPファイルを分析して、すべてのJSPファイルの名前をJTT環境から取得します。 これは、$APPL_TOPディレクトリでfind
文を実行して行います。
create_EBS_info.pl
スクリプトの一連のSQL文が、データベースからOAフレームワークの機能名を取得します。 詳細設定は次の各項で説明します。
すべてのアクションがページに関連するとは限りません。 このため、この項ではアクション(HTTPリクエストなど)がどのようにページ・ビューとしてレポートされるかを説明します。
ページについてのリクエストが受信されるたびに、OAフレームワークはOAPageContextを作成します。これは新しいページの処理が完了するまで存続します。 特に、OAPageBean(ページ処理の中心機能)によってOAPageContextが作成されます。
RUEIでのレポートは、HTTPレベルで表示されるリクエストに基づきます。 ページが1つのリクエスト内で変化する場合、計測された時間は元のページに対してレポートされます。
Webアプリケーションの作業ユニットは、リクエスト/レスポンスのペアです。ブラウザによってリクエストが送信され、サーブレットによってリクエストが処理され、レスポンスが戻されます。 レスポンスの送信は、1つのリクエストの終了、または完了したリクエストと新規リクエストの間の境界を表します。 同様に、OAPageBeanがあるページの処理を完了したとき、これは現在のページと新しいページの境界です。したがって、次のシナリオでユーザーがページXからページAに、次にページBにナビゲートする場合、ページXとページAの間およびページAとページBの間に2つのリクエスト境界があります。また、ページ境界も、ページXとページAの間およびページAとページBの間という概念的に同じ場所にあります。 また、ページXとページA、およびページAとページBの間の概念上同じ場所に、2つのページ境界があります。 図N-11にこれを示します。
図N-11 同じリクエスト境界とページ境界
異なるリクエスト境界とページ境界
ただし、状況によっては、リクエストとページの境界は同じではありません。 次のJSP Forwardのケースについて考えてみます。
図N-11に示すようにユーザーがページXからページAにナビゲートします。
ページAでユーザーが選択するコントロールが、レスポンスで表示するページを決める前にページAのコードを評価する必要があるというものです。 このため、ブラウザはリクエストをページAに発行し、OAフレームワークがリクエストを処理します(ページのためのOAPageContextの作成など)。 ページAで処理が完了すると、図N-12に示す最初のページ境界に到達します。
ページAのコード内では、ユーザーがどのコントロールを選択したかを開発者が評価して、JSP ForwardをページBに発行します。 OAフレームワークは、ページAを再表示しないためにこの時点ではHTTPレスポンスを送らず、ページBの処理を開始します(このページのための新しいOAPageContextの作成など)。 ページBで処理が終了すると、2番目のページ境界に到達します。
ここでページBをユーザーに表示する必要があるため、HTTPレスポンスがブラウザに送信されます。 このときにリクエスト境界に到達します。
図N-12 異なるリクエスト境界とページ境界(JSP Forward)
表N-2に示すEBS固有のデータ・アイテムがRUEIでレポートされます。
表N-2 EBS固有のデータ・アイテム
項目 | 説明 |
---|---|
1ページ当たりのデータベース時間(ミリ秒) |
1ページ当たりのデータベース時間。 これは、Chronosまたはエンド・ユーザーの監視が有効になっている場合のみ使用できます。 |
合計Database時間(ミリ秒) |
合計データベース処理時間 |
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ユーザー入力 |
識別できる場合、アクティビティ中にユーザーが入力したリテラル・テキスト。 |
次の資料が役に立つ場合があります。
OracleアプリケーションでSSLを使用するためのHTTPサーバーの構成(ノート341904.1)。
Oracle Forms Service 10g: SSLでのトランスポート・レイヤー・セキュリティの構成(ホワイト・ペーパー)
Oracle Application Server Forms Services利用ガイド10gリリース2(10.1.2)、5.11 Oracle Forms ServicesおよびSSL
JPIクライアント(Sunプラグイン)のためにSSLを有効にする方法(ノート307429.1)。
現在、RUEIはEBSのすべての機能には対応していません。 特に次の制約事項がすでに判明しています。
Formsフレームワークにはレポートを作成する機能が含まれます。 この機能ではユーザーが高度な構成を行うことができます。 結果として、レポートを自動的に追跡することができません。 また、レポートのために関連するビジネス指向名が含まれる便利な変換用の表もありません。 解決方法としては、判明しているレポートURLを変換ファイルに基づいて正しいレポート名に記述し直すことしかできません。
この問題に関する補足情報ですが、一部のユーザーがjobs機能を使用してレポートを作成していることに注意してください。 この方法は安全ではありません。前後の番号を簡単に推測できるため、権限を持たないユーザーがレポートを表示できる可能性があるためです。 名前(数字のみ)がランダムであるため、このようなタイプのレポートの使用時にレポートに関するレポートを生成しても役に立ちません。
ここで説明した問題のために、Formsのレポートは監視されません。
レポートは、最後にアクティブになった部分に基づいて行われます。 したがって、1人のエンドユーザーが複数のブラウザ・ウィンドウで同時に参照しているとき、レポートされるページ名には正しくない情報が含まれることがあります。
現在、OAおよびJTTフレームワークに基づくアプリケーションしかサポートされません。 このため、Oracle Applications Manager(OAM)やOracle Portalのようなパッケージは現時点ではサポートされていません。
リッチ・インターネット・アプリケーション(RIA)・フレームワーク(Ajaxなど)を使用するアプリケーションは、再生機能が低下する場合があります。 これは、Oracle Formsベース・アプリケーションの場合に特に見られます。
エンド・ユーザー・モニタリングは、アプレットからWebサーバーへの送信をトリガーするフォーム機能です。 RUEIでは、これらのメッセージを使用して、データベース時間および関連するKPIを記録します。 このKPIが不要な場合は、このセクションをスキップできます。
エンド・ユーザーのモニタリング機能は、Forms 6iにChronosメッセージングとして導入されました。 この機能は、Oracle Forms 9.0.4では使用できません。 リリース10.1.2以上では、この機能はエンド・ユーザー・モニタリングと呼ばれます。
使用しているOracle Formsのバージョンに応じて、次の関連する項で説明されている手順に従ってください。 Oracle Formsを使用していない場合、このセクションの残りの部分はスキップできます。
エンド・ユーザー・モニタリングの有効化(Oracle Formsバージョン10.1.2以上)
リリース10.1.2以上の場合は、エンド・ユーザー・モニタリングをアクティブ化するには、次のステップを実行する必要があります。
特定のアプリケーションのモニタリングを有効にするように$ORACLE_HOME/forms/server/formsweb.cfg
ファイルを構成します。 次の項目を設定します。
EndUserMonitoringEnabled=true EndUserMonitoringURL=http://EBS-hostname:EBS-portnumber/oracle_smp_chronos/oracle_smp_chronos_sdk.gif
Formsサーバーを再起動して、変更をアクティブにします。 これらの変更は、新しいセッションでのみ使用できるようになります。
追加情報は、Oracle Application Server Forms Servicesデプロイメント・ガイド10gリリース2 (10.1.2)を参照してください。 これはhttp://download.oracle.com/docs/cd/B25527_01/doc/frs/forms/B14032_02/chronos.htm#sthref606で入手できます。 このガイドで説明したwebキャッシュ機能は、RUEIの正しい動作には必要ありません。 ガイドに記載されているURLが正しくないため、以降のリリース・ノートには明確です。
データ・モニタリングの有効化(Oracle Formsバージョン6i用)
Formsリリース6iの場合は、前述の手順の代替としてChronosのモニタリングを使用する必要があります。 Chronosのモニタリングを有効にするには、次の手順を実行します:
リリース6.0.8.28.0用のパッチ7130248がOracle Formsシステムにインストールされていることを確認します。
次の行を追加して、$ORACLE_HOME/forms/server/formsweb.cfgファイルを構成します:
ChronosEnabled=true ChronosURL=http://EBS-hostname:EBS-portnumber/oracle_smp_chronos/oracle_smp_chronos_sdk.gif
注意:
ChronosEnabled
およびEndUserMonitoringEnabled
の設定は大/小文字を区別し、trueに設定する必要があります。
Chronosエンド・ユーザー・モニタリングの検証
次の手順を実行して、Chronosヒットが送信されることを確認します:
フォームにログインします。
Oracle Formsが実行されているJVMのJavaコンソールを開きます。
2を押すことで、トレース・レベル2をアクティブ化します。
コミットを導く一部のフォームベースの処理を実行します。
レポートされたトレース出力に、ファイル/oracle_smp_chronos/oracle_smp_chronos_sdk.gifが含まれていることを確認します。 例を「図N-13」に示します
図N-13 Java Console
RUEIレポータ・システムのログ・ファイルにヒットが表示されることを確認するには、モニforceユーザーとして次のコマンドを使用します:
zgrep oracle_smp_chronos $WEBSENSOR_HOME/data/*/http/currentdate/http-*
注意:
上記のコマンドでタイムスタンプを使用すると、表示されるリストが制限されます。 currentdate
は、yyyymmdd
の形式で指定する必要があります。
この項では、EBSアプリケーションを監視するときに特によく発生する問題について説明します。 カスタマ・サポートに問い合せる前に、この項の内容を確認してください。
予期されるネットワーク・トラフィックがレポートされないように見える場合は、次の点を確認することをお薦めします。
RUEIが、OA、JTT、PLS、Oracle Formsおよびサーブレット・フレームワークに基づくEBSアプリケーションを監視できること。 一般的に、スイートはインストールごとに異なる特定のポートで実行するように構成されます。 これもRUEIに指定する必要があります。 構成→セキュリティ→プロトコルを選択します。 定義されたポート設定を確認し、EBSアプリケーションの要件を満たすようにします。
RUEIシステムでデータの受信が開始しても、自動的にレポートされないこと。 最小でも1つのアプリケーションを定義する必要があります。 このアプリケーションは、少なくとも関連するドメイン名と、そのドメイン内の一意のページIDスキームを含む必要があります。
監視対象のトラフィックにVLANカプセル化トラフィックが含まれる場合は、そのトラフィックがRUEIで構成されていることを確認します。 システム→構成→セキュリティ→ネットワーク・フィルタ→VLANトラフィックを順に選択して、定義済の設定を確認します。 この機能の使用方法の詳細は、「VLANフィルタの定義」を参照してください。
EBSには、追加設定せずにセッション・トラッキングのために使用可能なCookieはないことに注意してください。 したがって、Cookieはログイン・ページで作成される必要があります。 このCookieがアプリケーション全体に対応します。 デフォルトでは、Jession
Cookieはアプリケーション・リンクのみに対応し、イメージ、CGIおよびライブラリには対応しません。 oracle.uix
Cookieはすべてのヒットに対応しますが、ビジターごとに一意ではありません。
トラフィック・サマリー機能(「システム」、「ステータス」、「レポータ統計」の順に選択)はアプリケーション・ロジックに基づいているため、アプリケーション以外のトラフィック(スイート、サービス、SSOsなど)はトラフィック・概要には表示されません。
EBSスイート定義を構成した後で、EBSアプリケーションにログインし、アプリケーションでクリティカル・パスを実行することを強くお薦めします。 その後、RUEI内で記録されたアクションを検索し、セッション診断機能を使用して、アクションが正しくレポートされていることを確認します。 具体的には、次のとおりです。
説明がレポートされ、コードはレポートされないことを確認します。 アプリケーション名のかわりにコードまたはページグループ名のかわりにページグループ・レベルがレポートされる場合、create_EBS_info.pl
スクリプトから導出された情報が正常にアクティブ化されていません。
短いセッションが多数レポートされる場合は、Formsトラフィックが測定されていません。
.jsp
ファイルが多数レポートされる場合は、手動ページ・ネーミングの必要性を示します(ユーザーが必要とする場合)。
レポートされるトラフィックの大部分を識別されないアクションが占める場合、Formsの追跡が正常に機能していません。 次の項目に注意する必要があります。
ステータス・バーやテキストフィールドなど(図N-6を参照)が表示されない場合は、監視対象トラフィックの特定の特性が取得されていません。 この場合は、カスタマ・サポートに問い合せてください。
「モニタリングの有効範囲の確認」の説明に従って、サーバー・ポートが正しく構成されていることを確認します。 特に、これは通常のHTTPポートとしてではなく、Formsサーブレット・モード・ポートとして構成されている必要があります。
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
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
一部のシステムではzip機能はPerlパッケージと一緒にインストールされません。 この場合は次のメッセージが表示されます。
The Archive::Zip package is not available on this system.
このメッセージの後で、サンプル・コマンドによってアーカイブの作成方法が示されます。 アーカイブには空のファイルを含めないこと、およびファイルをディレクトリに入れないことに注意してください。 これらに違反すると、RUEIにアップロードできません。 または、適切なディレクトリでコマンドzip
EBS_*txt
を実行することもできます。
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環境でのファイルのデプロイ方法がわかる情報も提供してください。
create_EBS_info.pl
スクリプトを実行しているときにエラーまたは警告(あるいは両方)を受け取った場合は、エラーや警告の種類に応じて次のようにします。
データベース関連:
次のコマンドを発行して、create_EBS_INFO.pl
スクリプトに指定されているconnectstring
を確認します:
sqlplusconnectstring
@temporarysqlfile
Forms関連:
frmcmp
またはfrmcmp_batch
が正常に機能していません。 詳細なトラブルシューティング情報は、Note 266731.1 (https://support.oracle.com/CSP/ui/flash.html
)から入手できます。
frmcmp
またはfrmcmp_batch
がsig 11セグメント・エラーを返します。 これはGRDDHIST.fmb
について発生することがわかっています。
脚注の凡例
脚注 1:スクリプトは、本番環境と同じ場合にも、受入れ環境で実行できます。