このセクションでは、デバッグ・モードの表示、SQLトレースの有効化、ページ・レポートの表示など、アプリケーションのデバッグ方法を説明し、コントロールまたはコンポーネントを手動で削除して問題を特定する方法を説明します。
内容は次のとおりです。
多くの同時ユーザーが存在するアプリケーションでは、最適なパフォーマンスを保持することが重要です。 アプリケーションのパフォーマンスを最適化するには、次の機能を使用する必要があります。
アプリケーションではできるかぎりバインド変数を使用します。SQL問合せ、およびプロセスや検証から実行されるPL/SQLなどのアプリケーション・ロジックでバインド変数構文を使用すると、セッション・ステート値を参照できます。バインド変数を使用してセッション・ステートにアクセスすると、最も効率的にセッション・ステートを参照できます。
#TIMING#
置換文字列をリージョン・フッターに含めて、各リージョンのタイミングを表示します。
多くのアプリケーションは、アプリケーション・コントロールに含まれるデータに基づいています。 たとえば、ボタンは、セッション・ステートに格納されている値に基づいて、条件付きで表示できます。アプリケーションの現行のセッション・ステートを表示するには、「開発者」ツールバーの「セッション」リンクをクリックします。
デバッグ・モードでページを表示すると、ページをレンダリングするApplication Expressエンジンの動作状況を追跡できます。デバッグ・モードにアクセスするには、「開発者」ツールバーの「デバッグ」リンクをクリックします。
デバッグ・モードでは、特定のApplication Expressエンジンの動作に対応する時間コードが表示されます。これは、エンジンによってセッション・ステートが設定されるタイミングを判断するために役立ちます。また、「デバッグ」ビューには、アイテム名および計算ポイントとプロセス・ポイントの詳細も表示できます。 デバッグ・モードを終了するには、「開発者」ツールバーの「デバッグなし」をクリックします。
また、f?p
構文を使用してアプリケーションをデバッグ・モードで実行することもできます。この場合、ページをコールして、デバッグ引数をYES
に設定するのみです。次に例を示します。
f?p=100:1:&APP_SESSION.::YES
セッションをトレースすると、アプリケーションを効率的にデバックできます。データベースの観点では、各ページ・リクエストが単一のデータベース・セッションとみなされます。 SQLトレースを有効にすると、Oracle Application Expressによって一時ファイルが作成されます。このファイルは、TKPROFユーティリティを使用して解析できます。
Oracle Application ExpressでSQLトレースを有効にするには、f?p
構文を使用して引数p_trace=YES
を設定します。 たとえば、アプリケーション100の1ページ目の表示をトレースするには、次の構文を使用します。
http:/.../f?p=100:1&p_trace=YES
TKPROFユーティリティを使用するには、次の操作を実行します。
トレース・ファイルが作成されたディレクトリにナビゲートします。
オペレーティング・システム・プロンプトから、次の構文を使用してTKPROFユーティリティを実行します。
tkprof filename1 filename2 [waits=yes|no] [sort=option] [print=n] [aggregate=yes|no] [insert=filename3] [sys=yes|no] [table=schema.table] [explain=user/password] [record=filename4] [width=n]
必要な引数は、入力ファイルおよび出力ファイルのみです。
オンライン・ヘルプを表示するには、引数を指定せずにTKPROFを起動します。
参照: TKPROFプログラムの使用方法については、『Oracle Databaseパフォーマンス・チューニング・ガイド』のアプリケーション・トレース・ツールの使用方法に関する項を参照してください。 |
Oracle Application Expressでは、DBMS_APPLICATION_INFO
をコールして、アプリケーションおよびページで使用されるリソースを簡単に監視できます。 Application Expressエンジンがページをレンダリングまたは処理すると、モジュールがAPEX
に設定され、アプリケーションIDおよびページIDが含められます。 設定後は、V$SESSION
およびV$SQLAREA
ビューを問い合せて、トランザクションを監視できます。
ページ内の問題を特定する場合は、ページで実行されているファンクションを明確に理解している必要があります。 これを行うために、Application Builderには多数のページおよびアプリケーションのレポートが含まれています。
ページ・レポートの表示
ページ・レポートを表示するには、次のステップを実行します。
該当する「ページ定義」にナビゲートします。
「作業領域」ホームページにナビゲートします。
「アプリケーション・ビルダー」アイコンをクリックします。
アプリケーションを選択します。
ページを選択します。
「ページ定義」が表示されます。
「ページ定義」の上部の次のいずれかのボタンをクリックします。
イベント: 現在定義されているページ・コントロールおよびページ・プロセスの詳細を示すレポートにリンクします。詳細は、「「ページ・イベント」の概要」を参照してください。
オブジェクト: カレント・ページで参照されるデータベース・オブジェクトのリストを表示します。 詳細は、「「データベース・オブジェクトの依存性」の概要」を選択します。
履歴: 最近変更されたページの履歴を表示します。 詳細は、「「履歴」の概要」を参照してください。
アプリケーション・レポートの表示
アプリケーション・レポートを表示するには、次のステップを実行します。
「作業領域」ホームページで、「アプリケーション・ビルダー」アイコンをクリックします。
アプリケーションを選択します。
「タスク」リストで、「アプリケーション・レポートの表示」をクリックします。
表示するレポートのタイプを選択します。
共有コンポーネント・レポートは、アプリケーション内のすべてのページに表示される共通の要素に関する情報を提供します。レポートは、ロジック、ナビゲーション、セキュリティ、ユーザー・インタフェース、グローバリゼーション、ファイルなどのカテゴリごとに分類されています。レポートの例には、アプリケーション・アイテム、計算、ブレッドクラム・エントリ、認証スキーム、ショートカットなどがあります。
ページ・コンポーネント・レポートは、ページのレンダリング時に実行されるコントロールとロジックに関する詳細情報(たとえば、ブランチ、ボタン、計算、アイテム、リージョンなど)を提供します。
アクティビティ・レポートは、カレント・アプリケーション内の開発者アクティビティの詳細を提供します。使用可能なレポートには、開発者別の変更、日ごとの開発者別の変更、開発者別の変更のチャート、ページ・パフォーマンス、最近の変更などがあります。
クロス・アプリケーション・レポートは、複数のアプリケーションに適用される情報を提供します。使用可能なレポートには、アプリケーション属性、アプリケーション・コメント、ビルド・オプション、ビルド・ステータスとアプリケーション・ステータス、ページ・コンポーネント数、セキュリティ・プロファイル、認証スキーム、アプリケーション別のテンプレート・デフォルトなどがあります。
問合せが正常に実行されていない可能性がある場合、SQLコマンドライン(SQL*Plus)またはSQLコマンドで実行することをお薦めします。 いずれの方法でも、アプリケーションのコンテキスト外で問合せがテストされるため、問題を簡単に判別できます。
ページを正常に実行できない場合は、コントロールとコンポーネントを1つずつ削除することをお薦めします。この方法を使用すると、問題の原因となっている可能性があるコントロールまたはコンポーネントを迅速に判別できます。条件属性「なし」を選択すると、コントロールまたはコンポーネントを無効にできます。
条件付き属性を使用してコントロールまたはコンポーネントを削除するには、次のステップを実行します。
該当する「ページ定義」にナビゲートします。
「作業領域」ホームページにナビゲートします。
「アプリケーション・ビルダー」アイコンをクリックします。
アプリケーションを選択します。
ページを選択します。
「ページ定義」が表示されます。
無効にするコントロールまたはコンポーネントの名前を選択します。
該当する属性ページが表示されます。
「条件タイプ」までスクロールして、「条件タイプ」リストから「なし」を選択します。
「変更の適用」をクリックして、「ページ定義」に戻ります。
ページを再度実行します。
ページが正常に実行されるまで、コントロールまたはコンポーネントの削除を続けます。