24.2.8 デバッグ・メッセージの表示
デバッグ・メッセージの表示について学習します。
- アプリケーションのデバッグ・メッセージの表示
アプリケーションのデバッグ・メッセージを表示します。 - ユーティリティからのデバッグ・メッセージの表示
「ユーティリティ」にある「デバッグ・メッセージ」ページを使用して、アプリケーションによって生成されたデバッグ・メッセージを表示またはパージします。 - デバッグ・メッセージの問合せ
デバッグ・メッセージの問合せについて学習します。 - 使用可能なデバッグ・ユーティリティ・スクリプト
使用可能なデバッグ・ユーティリティ・スクリプトについて学習します。 - ユーザー・インタフェースからのAPEXセッションのデバッグ
ユーザー・インタフェースからのAPEXセッションのデバッグについて学習します。 - デバッグ出力を共有する場合のヒント
デバッグ出力を共有する場合のベスト・プラクティスについて学習します。
親トピック: デバッグ・モードの使用
24.2.8.1 アプリケーションのデバッグ・メッセージの表示
アプリケーションのデバッグ・メッセージを表示します。
ヒント:
デバッグ・メッセージにアクセスするには、アプリケーションに移動し、ツールバーにある「検索」アイコンをクリックします。「アイテム・ファインダ」が表示されたら、「デバッグ」タブをクリックします。デバッグ・メッセージを表示するには:
親トピック: デバッグ・メッセージの表示
24.2.8.2 ユーティリティからのデバッグ・メッセージの表示
「ユーティリティ」にある「デバッグ・メッセージ」ページを使用して、アプリケーションによって生成されたデバッグ・メッセージを表示またはパージします。
「デバッグ・メッセージ」ページを表示するには:
親トピック: デバッグ・メッセージの表示
24.2.8.3 デバッグ・メッセージの問合せ
デバッグ・メッセージの問合せについて学習します。
ヒント:
このトピックは、開発インスタンスと実行時専用インスタンスの両方に適用されます。ページ・ビューIDを使用すると、デバッグ・メッセージの問合せが容易になります。それを取得するには、次の例で示すようにAPEX_WORKSPACE_ACTIVITY_LOG
を問い合せます:
select *
from APEX_WORKSPACE_ACTIVITY_LOG
where application_id = <APPLICATION_ID>
and page_id = <PAGE_ID>
order by view_timestamp desc;
探しているデバッグ・メッセージに関連付けられているDEBUG_PAGE_VIEW_ID
を見つけて書き留めます。
APEX_DEBUG_MESSAGES
ビューからデバッグ・メッセージを問い合せることができます。このビューには、現在のワークスペース内で記録されているすべてのメッセージが表示されます。メッセージは、次の例で示すようにフィルタおよびソートできます:
select *
from APEX_DEBUG_MESSAGES
where page_view_id = <DEBUG_PAGE_VIEW_ID>
order by message_timestamp asc;
前述の例では、<DEBUG_PAGE_VIEW_ID>
が、前に書き留めたIDです。前述の問合せでのメッセージ列には、デバッグ目的のための最も関連性の高い情報が含まれます。
親トピック: デバッグ・メッセージの表示
24.2.8.4 使用可能なデバッグ・ユーティリティ・スクリプト
使用可能なデバッグ・ユーティリティ・スクリプトについて学習します。
ヒント:
このトピックで説明するスクリプトは、Autonomous Databaseで実行されているOracle APEXでは使用できません。APEXソフトウェア・ディストリビューションには、デバッグに役立つSQLユーティリティ・スクリプトが含まれています。これらのスクリプトは、apex/utilities/debug
フォルダにあります。このトピックで示すスクリプトを使用するには、SYSDBA
権限が必要です。
activity.sql
activity.sql
は、最近のアクティビティ・ログ・エントリを出力します。このスクリプトは、設定のカンマ区切りリストを含めることができる、1つのパラメータを取ります。スクリプトの使用方法の説明を表示するには、次を実行します:
SQL> @activity help
d0.sql
d0.sql
は、デバッグ・モードの無効化とLEVEL9デバッグ・ログとを切り替えます。LEVEL9デバッグ・レベルでは、すべてのリクエストがログに記録され、大量のメッセージが生成されます。LEVEL9デバッグ・ログにより、すべてのユーザーのアプリケーション・パフォーマンスと、開発者のアプリケーション・ビルダー・パフォーマンスに影響があります。たとえば:
-- Switch from disabled debug to LEVEL9
SQL> @d0
-- Switch from LEVEL9 debug to disabled debug
SQL> @d0
ノート:
インスタンス全体のデバッグは、アプリケーションのパフォーマンスに影響するため、必要なデバッグ情報を収集したらすぐに無効にすることをお薦めします。d1.sql
d1.sql
は、デバッグが有効になっていた最後30個のAPEXリクエストについてレポートを表示します。表示されたPAGE_VIEW_ID
をd2.sql
スクリプトとともに使用します。
ds.sql
ds.sql
は、指定されたAPEXセッションについてデバッグ・データを含むAPEXリクエストのレポートを表示します。表示されたPAGE_VIEW_ID
をd2.sql
スクリプトとともに使用します。たとえば:
SQL> @ds <SESSION_ID>
d2.sql
d2.sql
は、指定されたPAGE_VIEW_ID
について詳細をファイルに保存し、このファイルをテキスト・エディタで開きます。SQLclでの_editor
変数を、どのエディタに定めることもできます。たとえば:
SQL> define _editor=vim
SQL> @d2 <PAGE_VIEW_ID>
Example
次に、APEXデバッグ・ユーティリティ・スクリプトの一般的な使用例を示します:
$ cd apex/utilities/debug
$ sql / as SYSDBA
SQL> alter session set current_schema=APEX_240200;
SQL> define _editor=vim
SQL> @d0
Changed debug level from "" to "9"
-- Reproduce the problem
SQL> @d0
Changed debug level from "9" to ""
SQL> @d1
PAGE_VIEW_ID STARTED SECS LVL CNT PATH_INFO FLOW_PAGE SESSION_ID WORKSPACE APEX_USER
____________ ________ ______ ___ ____ ___________ ___________ _______________ _________ _________
@d2 1002 14:02:48 10.84 WRN 261 100-4750:50 8488213505163 DEMO DEMO
@d2 1003 14:12:22 0.87 2603 show 100:9 0-5628985429897 DEMO DEMO
@d2 1006 14:12:23 0.75 252 ajax plugin 100:9 0-5628985429897 DEMO DEMO
@d2 1007 14:12:41 2.04 297 ajax plugin 100:9 0-5628985429897 DEMO DEMO
4 rows selected.
SQL> @d2 1003
-- This will open the editor program you defined above, in this case vim with content similar to the following:
SECS MESSAGE_LEVEL MESSAGE FLOW_PAGE SID_SGID APEX_USER CALL_STACK1
____ _____________ _______ _________ ________ _________ ___________
...
または、d1.sql
のかわりにds.sql
を実行して、PAGE_VIEW_ID
の検索を特定のAPEXセッションIDに絞り込むこともできます。たとえば:
$ cd apex/utilities/debug
$ sql / as SYSDBA
SQL> alter session set current_schema=APEX_240100;
SQL> define _editor=vim
SQL> @d0
Changed debug level from "" to "9"
-- Reproduce the problem and obtain the APEX session ID, in this case 5628985429897
SQL> @d0
Changed debug level from "9" to ""
SQL> @ds 5628985429897
PAGE_VIEW_ID STARTED SECS CNT PATH_INFO FLOW_PAGE SESSION_ID WORKSPACE APEX_USER
____________ ________ ______ ____ ________________________________________ _________ _______________ _________ _________
@d2 1003 14:12:22 0.87 2603 bar?clear=9&session=5628985429897&cs=391 100:9 0-5628985429897 DEMO DEMO
@d2 1006 14:12:23 0.75 252 wwv_flow.ajax?p_context=sample-charts%2F 100:9 0-5628985429897 DEMO DEMO
@d2 1007 14:12:41 2.04 297 wwv_flow.ajax?p_context=sample-charts%2F 100:9 0-5628985429897 DEMO DEMO
@d2 1008 14:12:41 1.95 297 wwv_flow.ajax?p_context=sample-charts%2F 100:9 0-5628985429897 DEMO DEMO
4 rows selected.
SQL> @d2 1003
-- This will open the editor program you defined above, in this case vim with content similar to the following:
SECS MESSAGE_LEVEL MESSAGE FLOW_PAGE SID_SGID APEX_USER CALL_STACK1
____ _____________ _______ _________ ________ _________ ___________
...
親トピック: デバッグ・メッセージの表示
24.2.8.5 ユーザー・インタフェースからのAPEXセッションのデバッグ
ユーザー・インタフェースからのAPEXセッションのデバッグについて学習します。
「使用可能なデバッグ・ユーティリティ・スクリプト」で示されているデバッグ・ユーティリティ・スクリプトを実行できない場合は、ユーザー・インタフェースで既存のレポートを使用してAPEXセッションをデバッグできます。
ノート:
この手順の1要件として、アプリケーションにパブリック・ページを含めることでAPEXセッションにアクセスする必要があります。デバッグ用に特別にパブリック・ページを作成する場合は、エラーを解決した後に必ずそれを削除してください。APEXユーザー・インタフェースからセッションのデバッグを実行するには:
親トピック: デバッグ・メッセージの表示
24.2.8.6 デバッグ出力を共有する場合のヒント
デバッグ出力を共有する場合のベスト・プラクティスについて学習します。
オフラインでの確認のためにアプリケーションからのデバッグ出力を共有する必要がある場合は、次のベスト・プラクティスを検討してください:
-
適切なレベルでログ取得を有効にします。
たとえば、アプリケーションの動作をデバッグする場合は、「アプリケーション・トレース」(LEVEL6)を使用します。APEXエンジンの動作をデバッグする場合は、APEXエンジン・トレース(LEVEL9)を使用します。
デバッグ・レベルの詳細は、「使用可能なデバッグ・ユーティリティ・スクリプト」を参照してください。
-
APEXエンジン・トレース(LEVEL9)レベルでデバッグ出力を確認している場合は、レポートに「コール・スタック」列を含めることを検討してください。これは、デバッグ出力をOracleサポートと共有する予定である場合に特に役立ちまます。対話モード・レポートでデバッグ出力を確認する場合は、「アクション」メニューを使用して「コール・スタック」列を選択します。
-
適切なページ・ビューIDを選択します。検討するベスト・プラクティス:
-
ページのレンダリング中に実行される操作をデバッグする場合は、「レンダリング」ページ・ビュー・タイプの最後のページ・ビューを選択します。
-
ページの送信中に操作が発生した場合は(たとえば、ボタンのクリック後)、「プロセス」ページ・ビュー・タイプの最後のページ・ビューを選択します。
-
操作が間に発生する場合は(たとえば、部分的なページ・リフレッシュやチャートのレンダリング)、「AJAX」ページ・ビュー・タイプの最後のページ・ビューを選択します。
-
モーダル・ダイアログは別々のページであるため、ダイアログをデバッグする場合は、親ページのページ番号ではなくそのダイアログのページ番号を検索する必要があることに注意してください。
-
- デバッグ出力は複数の形式でエクスポートできます。オフラインでの確認に最も有用な形式は、HTML形式とExcel形式です。対話モード・レポートでデバッグ出力を確認する場合は、「アクション」メニューを使用し、「ダウンロード」をクリックし、「HTML」または「Excel」形式を選択します。
デバッグ出力を共有するには:
- 目的のページ・ビューIDを見つけます。使用可能なデバッグ・レポートについてさらに学習するには、24.5.6「デバッグ・メッセージの表示」を参照してください。
- 対話モード・レポートの「アクション」メニューから、「ダウンロード」をクリックし、目的の形式を選択し、デバッグ・レポートをファイル・システムに保存します。
- ご使用の環境でアプリケーション・ビルダーを使用できない場合は、
d2.sql
スクリプトを使用してデバッグを出力し、結果となるテキスト・ファイルを共有します。さらに学習するには、24.5.6.4「デバッグ・ユーティリティ・スクリプトの使用」で詳細を参照してください。
親トピック: デバッグ・メッセージの表示