ヘッダーをスキップ

Oracle Database Application Expressユーザーズ・ガイド リリース 3.0 E05267-02 |
| 目次 | 索引

前へ | 次へ |

# 10 アプリケーションのデバッグ

このセクションでは、デバッグ・モードの表示、SQLトレースの有効化、ページ・レポートの表示などのアプリケーションのデバッグ方法を説明します。また、コントロールまたはコンポーネントを手動で削除して問題を特定する方法も説明されます。

このセクションの内容は次のとおりです。

- パフォーマンス・チューニングについて

- セッション・ステートの確認

- デバッグ・モードへのアクセス

- SQLトレースの有効化およびTKPROFの使用

- アプリケーションとページのリソース使用の監視

- レポートの表示

- 問題のあるSQL問合せのデバッグ

- コントロールおよびコンポーネントの削除による問題の特定

参照: 「アプリケーション・ビルダーの概念」および「アプリケーション・ビルダーの使用」

## パフォーマンス・チューニングについて

多くの同時ユーザーが存在するアプリケーションでは、最適なパフォーマンスを保持することが重要です。アプリケーションのパフォーマンスを最適化するには、次の機能を使用する必要があります。

- アプリケーションではできるかぎりバインド変数を使用します。SQL問合せ、およびプロセスや検証から実行されるPL/SQLなどのアプリケーション・ロジックでバインド変数構文を使用すると、セッション・ステート値を参照できます。バインド変数を使用してセッション・ステートにアクセスすると、最も効率的にセッション・ステートを参照できます。

- `#TIMING#`置換文字列をリージョン・フッターに含めて、各リージョンのタイミングを表示します。

参照: 「バインド変数構文」 「置換文字列の理解」

## セッション・ステートの確認

多くのアプリケーションは、アプリケーション・コントロールに含まれるデータに基づいています。たとえばボタンは、セッション・ステートに格納された値に基づいて、条件付きで表示できます。アプリケーションの現行のセッション・ステートを表示するには、「開発者」ツールバーの「セッション」リンクをクリックします。

参照: 「開発者ツールバーについて」、「セッション・ステートの表示」、「セッション・ステート値の管理」および「セッション・ステートおよびユーザー・プリファレンスの管理」

## デバッグ・モードへのアクセス

デバッグ・モードでページを表示すると、ページをレンダリングするApplication Expressエンジンの動作状況を追跡できます。デバッグ・モードにアクセスするには、開発者ツールバーの「デバッグ」リンクをクリックします。

参照: 「開発者ツールバーについて」

デバッグ・モードでは、特定のApplication Expressエンジンの動作に対応する時間コードが表示されます。これは、エンジンによってセッション・ステートが設定されるタイミングを判断するために役立ちます。また、「デバッグ」ビューには、アイテム名および計算ポイントとプロセス・ポイントの詳細も表示できます。デバッグ・モードを終了するには、「開発者」ツールバーの「デバッグなし」をクリックします。

また、`f?p`構文を使用してアプリケーションをデバッグ・モードで実行することもできます。この場合、ページをコールして、デバッグ引数を`YES`に設定するだけです。次に例を示します。

    f?p=100:1:&APP_SESSION.::YES

参照: 「f?p構文を使用したページのリンク」

## SQLトレースの有効化および TKPROFの使用

セッションをトレースすると、アプリケーションを効率的にデバッグできます。データベースの観点では、各ページ・リクエストが単一のデータベース・セッションとみなされます。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ユーティリティを使用するには、次の操作を実行します。

1. 権限を付与されたユーザーとしてSQL*Plusにログインします。

2. 次の文を実行します。

       show parameter USER_DUMP_DEST

3. トレース・ファイルが作成されたディレクトリにナビゲートします。

4. 次の構文を使用して、オペレーティング・システムのプロンプトで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]

   必要な引数は、入力ファイルと出力ファイルのみです。

5. オンライン・ヘルプを表示するには、引数なしでTKPROFを起動します。

参照: TKPROFプログラムの使用の詳細は、『Oracle Databaseパフォーマンス・チューニング・ガイド』のアプリケーション追跡ツールの使用に関するセクションを参照してください。

## アプリケーションとページのリソース使用の監視

Oracle Application Expressでは、パッケージ`DBMS_APPLICATION_INFO`をコールして、アプリケーションおよびページで使用されるリソースを簡単に監視できます。Application Expressエンジンがページをレンダリングまたは処理すると、モジュールが`APEX`に設定され、アプリケーションIDおよびページ番号が含められます。設定後は、`V$SESSION`および`V$SQLAREA`ビューを問い合せて、トランザクションを監視できます。

## レポートの表示

ページ内の問題を特定する場合は、ページで実行されているファンクションを明確に理解している必要があります。このために、アプリケーション・ビルダーには多数のページおよびアプリケーションのレポートが含まれています。

ページ・レポートの表示

ページ・レポートを表示するには、次のステップを実行します。

1. 該当するページ定義にナビゲートします。「ページ定義へのアクセス」を参照してください。

2. 「ページ定義」の上部の次のいずれかのボタンをクリックします。

   - イベント: 現在定義されているページ・コントロールおよびプロセスの詳細を表示するレポートにリンクします。詳細は、「ページ・イベントについて」を参照してください。

   - オブジェクト: カレント・ページで参照されるデータベース・オブジェクトのリストが表示されます。詳細は、「データベース・オブジェクトの依存性について」を参照してください。

   - 履歴: 最近変更されたページの履歴が表示されます。詳細は、「履歴について」を参照してください。

参照: 「ページ定義での「ビュー」リストの使用」

アプリケーション・レポートの表示

アプリケーション・レポートを表示するには、次のステップを実行します。

1. 「作業領域」ホームページで、「アプリケーション・ビルダー」アイコンをクリックします。

2. アプリケーションを選択します。

3. 「タスク」リストで、「アプリケーション・レポート」をクリックします。

4. 表示するレポートのタイプを選択します。

   - 共有コンポーネント・レポートは、アプリケーション内の各ページに表示できる共通する要素に関する情報を提供します。これらのレポートは、ロジック、ナビゲーション、セキュリティ、ユーザー・インタフェース、グローバリゼーションおよびファイルなどのカテゴリでグループ化されます。レポートの例には、「アプリケーション・アイテム」、「計算」、「ブレッドクラム・エントリ」、「認証スキーム」、および「ショートカット」などがあります。

   - ページ・コンポーネント・レポートは、ページのレンダリング時に実行されるコントロールとロジックに関する詳細情報（たとえば、ブランチ、ボタン、計算、アイテム、リージョンなど）を提供します。

   - アクティビティ・レポートは、カレント・アプリケーション内の開発者アクティビティの詳細を提供します。使用可能なレポートには、「開発者別の変更」、「日別開発者別の変更」、「開発者別の変更のチャート」、「ページ・パフォーマンス」、および「最近の変更」などがあります。

   - クロス・アプリケーション・レポートは、複数のアプリケーションに適用される情報を提供します。使用可能なレポートには、「アプリケーション属性」、「アプリケーション・コメント」、「ビルド・オプション」、「ビルド・ステータスとアプリケーション・ステータス」、「ページ・コンポーネント・カウント」、「セキュリティ・プロファイル」、「認証スキーム」、および「アプリケーション別のデフォルトのテンプレート」などがあります。

参照: 「データベース・オブジェクトの依存性レポートの概要」および「リージョン・ソースの検索レポートの概要」

## 問題のあるSQL問合せのデバッグ

問合せが正常に実行されていない可能性がある場合、SQL*Plus、SQL DeveloperまたはSQLコマンドでの実行を試してください。いずれの方法でも、アプリケーションのコンテキスト外で問合せがテストされるため、問題を簡単に判別できます。

## コントロールおよびコンポーネントの削除による問題の特定

ページを正常に実行できない場合は、コントロールとコンポーネントを一度に1つずつ削除することをお薦めします。この方法を使用すると、問題の原因となっている可能性があるコントロールまたはコンポーネントを迅速に判別できます。条件属性「なし」を選択すると、コントロールまたはコンポーネントを無効にできます。

条件付き属性を使用してコントロールまたはコンポーネントを削除するには、次のステップを実行します。

1. 該当するページ定義にナビゲートします。「ページ定義へのアクセス」を参照してください。

2. 無効にするコントロールまたはコンポーネントの名前を選択します。

   該当する属性ページが表示されます。

3. 「条件タイプ」が表示されるまでスクロールして、「条件タイプ」リストから「なし」を選択します。

4. 「変更の適用」をクリックして、ページ定義に戻ります。

5. ページを再度実行します。

6. ページが正常に実行されるまで、コントロールまたはコンポーネントの削除を続けます。

参照: 「ページ定義の概要」、「ページ属性の編集」、「条件付きのレンダリングおよびプロセスの理解」および「ページまたはアプリケーションの実行」