3.13 MLE JavaScriptモジュールの実行後のデバッグ

この機能は、Oracle Database内でMLEモジュールとして実行されるJavaScriptコードを、開発者がシームレスにトラブルシューティングおよび調整できるようにします。これにより、使い慣れたデバッグ・ワークフローを利用して、実行後のコードの動作に関する深いインサイトを得ることができます。

実行後のデバッグでは、次のことが可能です:

  • デプロイされたMLE JavaScriptモジュール内にブレークポイントを設定する。
  • デバッグ・セッションを開始および制御して、コード・フローを検査する。
  • コードをステップ・スルー(続行、ステップ・イン、ステップ・アウト)して、ロジックおよび実行パスを分析する。
  • 変数値と呼出しスタックを調べて、問題を効率的に診断および解決する。
  • 反復的な開発のためのデバッグ・セッションを停止または再起動する。

MLEモジュールのデバッグ

  1. MLE関数および起動スクリプトを準備します。
    • JavaScript関数がMLEモジュールに定義されていることを確認してください。
    • 関数を呼び出すデバッグ・ランナー・ファイルが必要です。デバッグ用のMLEモジュール・コードの起動を支援するサンプルDBMS_MLEスニペットが格納された新しいデバッグ・ランナー・ファイルを開くか、ローカル・ファイル・システムの既存のデバッグ・ランナー・ファイルを開くことができます。デバッグ・ランナー・ファイルについてを参照してください。


    mle_debug_runnerfile.pngの説明が続きます
    図mle_debug_runnerfile.pngの説明

  2. デバッグする前に、行番号の横の余白をクリックして、JavaScriptコードにブレークポイントを設定します。

    ノート:

    デバッグ・セッションを開始する前に、少なくとも1つのブレークポイントを設定する必要があります。デバッグ・セッションがアクティブになると、新しいブレークポイントを追加できません。さらに追加するには、現在のデバッグ・セッションを終了し、新しいブレークポイントを設定して、新しいセッションを開始してください。
  3. デバッグ・ランナー・ファイルとブレークポイントの準備ができたら、ツールバーのデバッグの開始 (「実行後のデバッグを開始」)アイコンを使用してデバッグ・セッションを開始します。

    一度に実行できるデバッグ・セッションは1つだけです。

    定義された各ブレークポイントで、実行が一時停止します。変数を検査したり、コール・スタックを表示したり、デバッグ制御ボタン(続行、ステップ・オーバー、ステップ・イン/アウト)を使用できます。すべてのブレークポイントをヒットするか、実行フローが終了すると、デバッグ・セッションは終了します。

デバッグ・ランナー・ファイルについて

デバッグ・ランナー・ファイル(通常はSQLワークシート)には、JavaScriptコードのデバッグを開始するためのロジックが含まれています。このファイルは、任意のデータベース接続に関連付けることができます。必要なすべてのデータベース・オブジェクト(MLEモジュール、環境、プロシージャ、関数など)が現在の接続に存在することを確認します。これらのオブジェクトが欠落していると、実行が失敗し、「スクリプト出力」パネルに(警告に加えて)エラー・メッセージが表示されます。これは、デバッグが開始する前に、その接続で起動コードが実行されるためです。

フィルタリングとブレークポイントの管理

「ブレークポイント」パネルには、開いているすべてのモジュールのすべてのブレークポイントがリストされます。各ブレークポイントは特定のデータベース接続に関連付けられており、ブレークポイントの横のファイル・パスまたはコンテキストにその接続が表示されます。選択した接続のブレークポイントのみを表示するようにリストをフィルタ処理できるので、デバッグ・セッションで、関連するモジュールを集中的に処理できます。

デバッグ・セッションで現在使用中のものとは異なる接続にブレークポイントがリンクされていると、そのブレークポイントは自動的に無効になります。無効なブレークポイントは、リストにグレー表示されます。無効なブレークポイントの上にカーソルを置くと、ブレークポイントのステータスの理由を説明するツールチップが表示されます。