9.2 ジョブ

「ジョブ」メニューには、「サマリー」、「実行中」、「予測」、「履歴」、「通知」という5つのオプションがあります。次に、各オプションを説明します。

9.2.1 サマリー

上部の「サマリー」ページには、「失敗」、「ブロック済」、「チェーン停止」、「リソース使用不可」、「中断」、「再試行スケジュール済」のジョブの合計数について概要が表示されます。ジョブ・タイルをクリックすると、対応するジョブ・リストが表形式で下に表示されます。フィルタを削除すると、スケジュール済のすべてのジョブが表示されます。

ジョブを作成するには、「ジョブの作成または編集」を参照してください。

各ジョブ行の末尾で「アクション」アイコン「アクション」アイコンを使用できます。「アクション」をクリックすると、次のオプションのリストが表示されます。

  • ジョブ
    • 実行: 特定のジョブを実行します。

    • 編集: 「ジョブの作成または編集」を参照してください。

    • 削除: 特定のジョブを削除します。

    • ジョブ-有効/無効: 「有効」を選択すると、そのジョブがスケジューラによって処理対象として選択されます。ジョブのステータス(有効かどうか)が「ジョブ詳細」ページに表示されます。ここでのプロパティ「有効」には「TRUE」またはFALSEが表示されます。

  • 履歴
    • レポート: ログの詳細、実行のステータス、実行期間、エラー(存在する場合)など、ジョブ実行の履歴をレポート形式で表示します。

    • チャート: ジョブ実行の履歴を視覚的な棒グラフで表示します。実行期間および使用されたCPU時間が実行ごとに表示されます。チェーン内のジョブには、ジョブ全体の集計情報が示されます。時間枠を変更してズームおよびスクロールできる概要スクロールバーがあります。選択したジョブまたはすべてのジョブについて、その時間枠のログのすべての詳細を表示できます。また、選択した時間枠のすべてのジョブについてガント・チャートを表示できます。

  • ジョブ予測: ジョブ予測機能は、単一のジョブに対して(「アクション」メニューで使用可能)、または一連のジョブに対して(表のツールバーで使用可能)実行できます。一連のジョブの場合、フィルタを使用してその一連のジョブを絞り込むことができます。[Ctrl]キー+クリックを使用していくつかのジョブを選択すると、選択したジョブのみに対してジョブ予測が実行されます。ジョブを選択しなかった場合は、リストされているすべてのジョブに対して予測が実行されます。セットに含まれているすべてのジョブが最終的な予測に含まれるわけではありません。カレンダ(繰返し間隔)が定義されているジョブのみが含まれます。カレンダは、インラインで定義するか、スケジュール、ウィンドウまたはウィンドウ・グループを使用して定義できます。予測の完了後は、様々なズーム・レベルを選択し、結果をスキーマ別にフィルタできます。

  • ジョブ詳細: アクション、ジョブ・クラス、タイプ、スケジュールなどのジョブ属性を表示します。「JSON」を選択すると、JSON形式で属性が表示されます。ジョブの定義に応じて、使用済オブジェクトに関する詳細が提供されます。たとえば、使用済プログラム、PL/SQLコード、プロシージャ、プロシージャの依存性、プログラム引数、ジョブ引数、ジョブ・クラス、スケジュール、ウィンドウ、複数のウィンドウをグループにまとめたウィンドウ・グループ、ファイル・ウォッチャ、最後の開始日から1週間分の履歴を表示する履歴チャートです。

9.2.2 実行中

「実行中」ページには、現在実行中のジョブのリストが表示されます。使用可能なコマンドは、「停止」、「編集」、「履歴」、「ジョブ詳細」です。

前述の説明

9.2.3 履歴

「履歴」ページには、ユーザーが使用可能なすべてのスケジューラ・ジョブの実行ログ詳細が表示されます。「履歴」ウィンドウでは、フィルタを設定してデータの量を制限できます。遅延間隔を指定することで、遅延したジョブでフィルタできます。このグリッドでは列ヘッダーのクリックによる順序付けがサポートされています。

9.2.4 予測

「予測」ページでは、使用可能なすべてのジョブについてジョブ実行予測を提供します。この操作は、完了までに、ジョブ数および予測間隔に応じて時間がかかります。使用可能なすべてのジョブの予測は、接続しているユーザーの権限によって異なります。実行後、ジョブのスキーマに基づいて結果をフィルタできます。

予測機能は、「ジョブ - サマリー」ページでも使用できます。その場合、使用可能なジョブのリストで動作します。予測機能を使用する前にジョブをフィルタできます。ジョブが選択されている場合は、選択したジョブのみが使用されます。

9.2.5 「履歴」(ガント・チャート)

履歴は、ウィンドウおよびジョブ実行履歴をガント・チャートの形式で表します。ウィンドウのアクティブ化履歴が最初の行に表示されます。ジョブは、最大使用CPU時間に基づいて降順でソートされます。各ウィンドウのアクティブ化およびジョブ実行の詳細が表示されます。ジョブ・サマリーは、ジョブの行のラベルにマウスを重ねるときに使用できます。

前述の説明を参照

9.2.6 通知

スケジューラに対してEメール・サーバーが設定されている場合のみ、通知を作成できます。

「通知」ページでは、ジョブ・イベントに関連する通知を表示、作成、編集および削除できます。また、ページの右上にある「通知電子メール・サーバー」アイコンをクリックして、電子メール・サーバーの詳細を表示できます。

メッセージごとに、ジョブ、受信者の電子メール・アドレスと送信者(または送信者なし)を指定可能で、メッセージの件名と本文を変更し、フィルタ条件を設定できます。複数の受信者およびイベントが指定されている場合、Oracle Schedulerでは、<recipient,event>の組合せごとに個別の通知レコードが作成されます。この方法で作成された通知のセットのコンテンツは、各通知のコンテキスト・メニューに表示される「集計済の編集」を使用して編集できます。「編集」は、単一の通知の内容を編集します。

通知は、ジョブ名、ジョブ所有者、受信者およびイベントでフィルタできます。「通知の削除」アイコンをクリックして、複数の通知を選択して削除できます。通知が選択されていない場合([Ctrl]+クリックを使用して1つの通知の選択を解除)、「通知の削除」ダイアログが表示され、選択したジョブ、ジョブと受信者、ジョブとイベント、またはジョブとイベントと受信者のすべての通知を削除できます。

9.2.7 ジョブの作成または編集

この項では、新しいOracle Schedulerジョブを作成する方法、または既存のジョブを編集する方法について説明します。

ジョブを作成するために、Database Actionsは内部的にDBMS_SCHEDULER.CREATE_JOBプロシージャを使用します(詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照)。

  1. 「ジョブ」ページで、右上にある「ジョブの作成」をクリックします。
  2. 「ジョブ・プロパティ」で、次のフィールドに入力します。

    詳細

    • 有効: このオプションを指定すると、妥当性チェックが実行され、すべてのチェックに成功した場合にジョブが使用可能で作成されます。このオプションを指定しない場合、ジョブは使用可能で作成されません。
    • 名前: ジョブの名前。
    • 説明: ジョブの説明に使用できるオプションのテキスト文字列。
    • タイプ: ジョブで実行されるオブジェクトのタイプ(「PL/SQLブロック」、「チェーン」、「ストアド・プロシージャ」、「名前付きプログラム」または「スクリプト」)。「チェーン」、「ストアド・プロシージャ」および「名前付きプログラム」では、関連オブジェクトを選択できる追加のコントロールが表示されます。

      「ストアド・プロシージャ」では、INパラメータを持つプロシージャのみがリストされ、IN OUTまたはOUTパラメータを持つプロシージャは使用できません。

      選択したスキーマのスキーマ・レベルおよびパッケージ・レベルのプロシージャがリストされますが、フィールドにプロシージャ名(またはpackage_name.procedure_name)を直接入力できます。

    • クラス: このジョブが属するジョブ・クラスの名前。

    実行モード

    • モード: ジョブの実行タイミングとして、「即時」(作成直後、1回のみ)、「一度」(指定した時間に1回)、「繰返し」「キュー」「ファイル・ウォッチャ」「スケジュール」(名前付きスケジュール・オブジェクトを使用)、「ウィンドウ」および「ウィンドウ・グループ」があります。「即時」以外を指定した場合、その他の情報の入力を求められます。

      「繰返し」では、繰返し間隔を手動で定義するか、鉛筆アイコンをクリックして日付、頻度、平日および間隔の値を選択できます。Oracleカレンダ構文の一部の句(include、exclude、intersect、periodsおよびby period)はサポートされておらず、編集アイコンをクリックすると警告が表示されます。

    宛先

    • 「ローカル」(ローカル・システム)、「リモート」(リモート・データベース・ジョブのデータベース宛先またはリモート外部ジョブの外部宛先)、または「複数」(ジョブは、指定された宛先グループに関連付けられたすべての宛先で実行されます)。ジョブに選択した宛先に応じて、ローカルの資格証明、リモート資格証明と宛先または宛先グループを選択します。

    プロパティ

    • 自動削除: ジョブが完了した後または自動的に無効になった後に、そのジョブを自動的に削除するかどうかを決定します。

    • 失敗時に再起動: 失敗した場合にジョブを再起動できるかどうかを決定します。

    • リカバリ時に再起動: データベース障害が発生した場合にジョブを再起動するかどうかを決定します。

    • ストア出力: 有効にすると、ログに記録される実行ジョブについて、すべてのジョブ出力とエラー・メッセージが*_JOB_RUN_DETAILSビューに格納されます。無効にすると、出力とメッセージは格納されません。

    • デフォルトのタイムゾーンに従う: ジョブ開始日がnullかどうかを確認し、デフォルトのタイムゾーン・スケジューラ属性が変更されたときに、スケジュールは新しいタイムゾーンに従うようにこのジョブの次回の実行日時を再計算します。

    • 制限モードでの実行を許可: 有効にすると、このモード中にジョブの所有者がログインを許可されれば、データベースが制限モードのときに、ジョブの実行が許可されます。
    • ウィンドウを閉じる際に停止: ジョブのスケジュールがウィンドウまたはウィンドウ・グループの場合、このオプションを有効にすると、関連付けられたウィンドウが閉じるとジョブが停止し、無効にすると、ウィンドウが閉じた後もジョブは続行されます。(ジョブが続行可能な場合、ウィンドウを閉じると通常リソース・プランが変更されるため、ジョブのリソース割当ても変更される可能性があることに注意してください。)

    • インスタンスの振分け: この属性は、Oracle Real Application Clusters (Oracle RAC)環境で稼働するデータベースにのみ使用します。このオプションはデフォルトでは有効になっています。ジョブは最も軽い負荷でインスタンスの実行を開始し、この後スケジューラはジョブが最後に実行したインスタンスの実行を試みます。そのインスタンスがダウンしているか、オーバーロードされているため新しいジョブを長い間開始できない場合、別のインスタンスでそのジョブが実行されます。実行間の間隔が長い場合は、instance_stickinessは無視され、ジョブはスティッキーでないジョブとして処理されます。instance_stickinessが無効になっている場合、ジョブの各インスタンスは使用可能な最初のインスタンスで実行されます。
    • パラレル・インスタンス: イベントベースのジョブの場合、イベントが発生し、そのイベントを処理するイベントベースのジョブがすでに実行されているときの実行内容を決定します。無効にすると、新しいイベントが無視されます。有効にすると、イベントのすべてのインスタンスに対してジョブのインスタンスが開始され、同じイベントベースのジョブの複数のインスタンスがパラレルに実行できるように、各ジョブ・インスタンスは軽量ジョブとなります。

    • ジョブ・スタイル: 作成されるジョブのスタイルは、REGULAR(通常のジョブ)またはLIGHTWEIGHT(軽量ジョブ)です。軽量はプログラム・オブジェクトを参照する必要があります。頻繁に実行する短時間のジョブが多数ある場合は、軽量ジョブを使用します。特定の状況では、軽量ジョブを使用することで、わずかながらパフォーマンスが向上する場合があります。

    • ジョブの優先度: 同じクラスの他のジョブに対する、このジョブの相対的な優先度。1つのクラス内の複数のジョブが同時に実行されるようにスケジュールした場合、ジョブ・コーディネータがそのクラスから実行用に選択するジョブの順序はこのジョブの優先度に従って決定されます。値は1から5の範囲で、1はジョブの実行用に1番目に選択されることを表します。

    • ログ・レベル: ログに記録する情報量として、DBMS_SCHEDULER.LOGGING_OFF(ログなし)、DBMS_SCHEDULER.LOGGING_FAILED_RUNS(失敗したジョブのみ、失敗の原因を記録)、DBMS_SCHEDULER.LOGGING_RUNS(このクラスの各ジョブのすべての実行)、またはDBMS_SCHEDULER.LOGGING_FULL(すべてのジョブで実行されたすべての操作)を指定します。

      ただし、ジョブ・クラスのロギング・レベルが、ジョブに指定したレベルよりも高い(詳細な)場合、ジョブ・クラスのロギング・レベルが使用されます。

    • インスタンスID: Oracle Real Application Clusters環境内で、ジョブを実行する必要のあるインスタンスのインスタンスID。

    • 最大実行数: 1つのジョブの連続実行をスケジュールする場合の最大回数。

    • 最大失敗数: スケジュールされたジョブの連続実行で、ジョブが自動的に無効にされるまでに許容される失敗の回数。

    • イベントの生成: ジョブのどの実行段階でイベントを生成するかを決定します。

    • 最大実行期間: ジョブを実行できる最大時間。データ・タイプは、INTERVAL DAY TO SECONDです。この属性をゼロ以外およびNULL以外の値に設定してジョブの継続時間がこの値を超えると、SchedulerではJOB_OVER_MAX_DURタイプのイベントが発生します。この場合、ジョブを続行するかどうかについては、ご使用のイベント・ハンドラで決定されます。

    • スケジュール制限: プログラムの実行が取り消される前の、スケジュールされたジョブ開始と、実際のジョブ開始間の最大遅延時間。

    • デフォルトに戻す: すべてのプロパティがデフォルト値に戻されます。

    NLS

    このジョブに必要なNLS関連プロパティを設定できます。値を入力するには、「値」列の関連フィールドに入力します。

    新しいジョブの場合、パラメータはデータベース・セッションから取得されます。

  3. 「DDL」ペインで、ジョブの作成または編集時に生成されるSQL文を確認および保存できます。
    • 新しいジョブの場合、「CREATE」をクリックして生成されたDDL文を表示します。

    • ジョブを編集する場合、「UPDATE」をクリックして、生成されたALTER文を表示します。

    終了したら、「適用」をクリックします。

    「出力」ペインに、DDLコマンドの結果が表示されます。エラーがある場合は、対応するペインに移動してエラーを修正し、コマンドを再度実行してください。コンテンツをファイルに保存できます。