このセクションでは、デバッグ・モードの表示、SQLトレースの有効化、ページ・レポートの表示などのアプリケーションのデバッグ方法を説明します。また、コントロールまたはコンポーネントを手動で削除して問題を特定する方法も説明されます。
内容は次のとおりです。
多くの同時ユーザーが存在するアプリケーションでは、最適なパフォーマンスを保持することが重要です。アプリケーションのパフォーマンスを最適化するには、次の機能を使用する必要があります。
アプリケーションではできるかぎりバインド変数を使用します。SQL問合せ、およびプロセスや検証から実行されるPL/SQLなどのアプリケーション・ロジックでバインド変数構文を使用すると、セッション・ステート値を参照できます。バインド変数を使用してセッション・ステートにアクセスすると、最も効率的にセッション・ステートを参照できます。「バインド変数構文について」を参照してください。
#TIMING#
置換文字列をリージョン・フッターに含めて、各リージョンのタイミングを表示します。「置換文字列の理解」を参照してください。
Oracle Application Express Advisor(アドバイザ)によって、Oracle Application Expressアプリケーションの整合性と品質をチェックできます。アドバイザはコンパイラまたはLINTのように機能し、疑わしい動作またはエラーにフラグを付けます。アドバイザを実行すると、基礎となるメタデータに基づいてアプリケーションの整合性をチェックします。
内容は次のとおりです。
アプリケーションをデプロイする前に、Oracle Application Express Advisorを使用して、アプリケーションで様々なチェックを実行できます。アドバイザでは、エラー、セキュリティ問題、パフォーマンスのボトルネック、有用性および品質保証についてチェックします。
アドバイザをアプリケーション全体で実行するには、次のステップを実行します。
該当するアプリケーションにナビゲートします。
「作業領域」ホームページで、「アプリケーション・ビルダー」アイコンをクリックします。
アプリケーション・ビルダーのホームページが表示されます。
アプリケーションを選択します。
アプリケーションのホームページが表示されます。
「ユーティリティ」をクリックします。
「アドバイザ」をクリックします。
アドバイザ・ページが表示されます。
「実行する場合は選択」で、選択されたチェックを確認します。必要に応じてチェック・ボックスを有効化および無効化します。
ページ上部の「チェックの実行」をクリックします。
結果ページが表示されます。チェックを次回実行するときは、現在のアドバイザの設定が使用されます。
アドバイザに加えた変更を削除するには、「タスク」で「プリファレンスの削除」を選択します。
アドバイザを再び実行するには、「チェックの実行」をクリックします。
アドバイザを単一ページ上で実行するには、次のステップを実行します。
該当するアプリケーションにナビゲートします。
「作業領域」ホームページで、「アプリケーション・ビルダー」アイコンをクリックします。
アプリケーション・ビルダーのホームページが表示されます。
アプリケーションを選択します。
アプリケーションのホームページが表示されます。
ページを選択します。
ページ定義ページが表示されます。
「ユーティリティ」をクリックします。
ユーティリティ・オプションのリストが表示されます。
「チェック」をクリックします。
結果ページが表示されます。結果レポートは前回のアドバイザの設定を使用して生成されます。
設定を変更するには、「設定の変更」をクリックします。
アドバイザ・ページが表示されます。
「実行する場合は選択」で、選択されたチェックを確認します。必要に応じてチェック・ボックスを有効化および無効化します。
チェックを再び実行するには、ページ上部の「チェックの実行」をクリックします。
結果ページが表示されます。チェックを次回実行するときは、現在のアドバイザの設定が使用されます。
結果をフィルタするには、「フィルタ結果」のチェック・ボックスを有効化および無効化して、「フィルタの適用」をクリックします。
アドバイザを再実行して、レポートされた問題が修正されたことを確認するには、「再チェック」をクリックします。
多くのアプリケーションは、アプリケーション・コントロールに含まれるデータに基づいています。たとえばボタンは、セッション・ステートに格納された値に基づいて、条件付きで表示できます。アプリケーションの現行のセッション・ステートを表示するには、「開発者」ツールバーの「セッション」リンクをクリックします。
参照: 「開発者ツールバーについて」、「セッション・ステートの表示」、「セッション・ステート値の管理」およびOracle Application Express管理ガイドの「セッション・ステートおよびユーザー・プリファレンスの管理」 |
デバッグ・モードは予期しないアプリケーション動作を追跡するために使用する組込みメカニズムです。開発者ツールバーの「デバッグ」と「デバッグなし」リンクをクリックすることによって、現在のページとセッションのデバッグ・モードを有効化および無効化します。デバッグ・レポートを表示するには、開発者ツールバーの「デバッグの表示」リンクをクリックします。
内容は次のとおりです。
アプリケーション定義の編集ページの「デバッグ」属性を使用して、アプリケーションレベルでデバッグ・モードを有効化および無効化します。
デバッグを有効化または無効化するには、次のステップを実行します。
「作業領域」ホームページで、「アプリケーション・ビルダー」アイコンをクリックします。
アプリケーションを選択します。
アプリケーション名の右側にある「アプリケーション・プロパティの編集」ボタンをクリックします。
アプリケーションの編集ページが表示されます。
「プロパティ」までスクロールします。
「デバッグ」で、次の項目を指定します。
はい: 実行時にブラウザを使用してアプリケーション・デバッグ・モードを有効化します。
いいえ: 実行時にブラウザを使用してアプリケーション・デバッグ・モードを無効化します。
開発者ツールバーの「デバッグ」と「デバッグなし」をクリックすることによって、デバッグ・モードを実行時に有効化および無効化します。デフォルトでは、デバッグ・モードは無効化されています。「デバッグの有効化と無効化」を参照してください。
デバッグ・モードを有効化または無効化するには、次のステップを実行します。
「作業領域」ホームページで、「アプリケーション・ビルダー」アイコンをクリックします。
アプリケーションを実行します。
開発者ツールバーで、「デバッグ」をクリックします。
デバッグ・モードが有効化され、デバッグ・データがバックグラウンドで取得されます。
デバッグ・モードを無効化するには、開発者ツールバーで、「デバッグなし」をクリックします。
f?p
構文を使用してアプリケーションをデバッグ・モードで実行することもできます。この場合、ページをコールして、デバッグ引数をYES
に設定するだけです。次に例を示します。
f?p=100:1:&APP_SESSION.::YES
デバッグ・メッセージを表示するには、次のステップを実行します。
「作業領域」ホームページで、「アプリケーション・ビルダー」アイコンをクリックします。
必要なアプリケーションを選択します。
デバッグ・メッセージはアプリケーションが実行中または開発モードのときに表示できます。
デバッグ・メッセージを開発モードで表示するには、次のステップを実行します。
「検索」アイコンをクリックし、「デバッグ」タブをクリックします。「「検索」アイコンの使用」を参照してください。
アプリケーションのホームページで、「ユーティリティ」をクリックして、「デバッグ・メッセージ」をクリックします。
アプリケーションの実行中にデバッグ・メッセージを表示するには、開発者ツールバーの 「デバッグの表示」をクリックします。
デバッグ・レポートのリストが表示されます。
表示するセッションの左にある「ビュー識別子」をクリックします。
次の図は、「アイテム・ファインダ」に表示されたデバッグ・メッセージを示しています。
最も時間がかかったステップを表示するには、レポートの上のグラフのステップにカーソルを合わせます。
ステップの詳細が表示されます。
レポートのそのステップに移動するには、棒グラフをクリックします。
注意: レポートにリストされているデバッグ・セッションは最低2週間存続し、アクティビティ・ログと一緒にエージ・アウトされます。これは通常、デバッグ目的では十分な期間です。 |
セッションをトレースすると、アプリケーションを効率的にデバッグできます。データベースの観点では、各ページ・リクエストが単一のデータベース・セッションとみなされます。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ユーティリティを使用するには、次の操作を実行します。
権限を付与されたユーザーとしてSQL*Plusにログインします。
次の文を実行します。
show parameter USER_DUMP_DEST
トレース・ファイルが作成されたディレクトリにナビゲートします。
次の構文を使用して、オペレーティング・システムのプロンプトで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およびページ番号が含められます。設定後は、V$SESSION
およびV$SQLAREA
ビューを問い合せて、トランザクションを監視できます。
ページ内の問題を特定する場合は、ページで実行されているファンクションを明確に理解している必要があります。このために、アプリケーション・ビルダーには多数のページおよびアプリケーションのレポートが含まれています。
「アプリケーション・ダッシュボード」レポートの表示
「アプリケーション・ダッシュボード」は、アプリケーションについての様々な視点からの包括的なビューを提供します。このダッシュボードを使用して統計を表示したり、セキュリティ設定のレポートや、ページおよびアプリケーションのコンポーネントおよびテンプレートのレポートにアクセスできます。
アプリケーション・ダッシュボードを表示するには、次のステップを実行します。
「作業領域」ホームページにナビゲートします。
「アプリケーション・ビルダー」アイコンをクリックします。
アプリケーションを選択します。
アプリケーションのホームページが表示されます。
「ユーティリティ」をクリックします。
「アプリケーション・ダッシュボード」をクリックします。
アプリケーション・ダッシュボードが表示されます。左側にある最初の2つのリージョン(「アプリケーション概要」と「タイプ別の表示」)に現在のアプリケーションについての詳細情報と統計がリストされます。残りのリージョンは、次のセクションに分割されます。
セキュリティ: 現在の認証スキーム、パブリック・ページと非パブリック・ページの数およびカレント・アプリケーション内で使用される認可スキームの数が表示されます。
アプリケーション・コンポーネント: アプリケーション・レベルのコントロールとロジックのレポート(LOV、タブ、リスト、アプリケーション・アイテム、アプリケーション・プロセス、アプリケーションの計算など)へのリンクが表示されます。
テンプレート: カレント・アプリケーション内で使用されるテンプレートのレポートへのリンクが表示されます。
ページ・コンポーネント: ページ・レベルのコントロールとロジックのレポート(アイテム、ボタン、プロセス、リージョン、ブランチ、検証、動的アクションなど)へのリンクが表示されます。
特定のレポートを表示するには、コンポーネント・タイプまたはテンプレートの右にある数字をクリックします。
問合せが正常に実行されていない可能性がある場合、SQL*Plus、SQL DeveloperまたはSQLコマンドでの実行を試してください。いずれの方法でも、アプリケーションのコンテキスト外で問合せがテストされるため、問題を簡単に判別できます。
ページを正常に実行できない場合は、コントロールとコンポーネントを一度に1つずつ削除することをお薦めします。この方法を使用すると、問題の原因となっている可能性があるコントロールまたはコンポーネントを迅速に判別できます。条件属性「なし」を選択すると、コントロールまたはコンポーネントを無効にできます。
条件付き属性を使用してコントロールまたはコンポーネントを削除するには、次のステップを実行します。
該当するページ定義にナビゲートします。「ページ定義へのアクセス」を参照してください。
無効にするコントロールまたはコンポーネントの名前を選択します。
該当する属性ページが表示されます。
「条件タイプ」が表示されるまでスクロールして、「条件タイプ」リストから「なし」を選択します。
「変更の適用」をクリックして、ページ定義に戻ります。
ページを再度実行します。
ページが正常に実行されるまで、コントロールまたはコンポーネントの削除を続けます。