5 Oracle Enterprise Schedulerジョブの作業の管理
この章では、メタデータを追加してOracle Enterprise Schedulerジョブのロジックを調整する方法について説明します。作業詳細の追加、ジョブを有意義なセットにまとめるためのグループ化、作業の実行日時を指定するスケジュールの割当て、ジョブを同時に実行しないことを定める例外の作成などについて説明します。
この章の内容は次のとおりです。
5.1 Oracle Enterprise Schedulerジョブの作業の管理の概要
メタデータをジョブ・タイプに関連付け、作業にスケジュールを割り当てることで、有意義な作業を定義できます。
Oracle Enterprise Schedulerジョブの作業の管理では、次のことが可能です。
-
リクエスト・インスタンス固有のデータを自身またはシステムのプロパティを介して関連付け、そのジョブが実行されるコンテキストにジョブを結び付けます。
-
ジョブによって実行される作業に関連するデータへのアクセス権を、ユーザーのグループにどのレベルで許可するかを決定します。
-
ジョブをジョブ・セットに編成し、1つの単位としてジョブを順にまたは並列に実行できるようにします。
-
特定のジョブ定義を同時に実行できないことの指定、およびそれらを実行できない状況を指定します。
-
システム・リソースなどの要因に基づいて、ジョブの実行可否を決定する制約を定義します。
5.2 ジョブ・メタデータの管理
Oracle Enterprise Schedulerジョブのメタデータは、スケジュール済ジョブ・リクエストを構成するコンポーネントです。
例を次に示します。
-
ジョブ定義: ジョブ定義は、ジョブを実行するアプリケーションのコンテキストで実行される、最小単位の作業です。ジョブ定義は、JavaまたはSQLジョブ・タイプなどのジョブ・タイプによって定義されます。
-
ジョブ・セット: ジョブ・セットは、ジョブ・ステップの順次的または並行的なセットです。ジョブ・ステップは、それ自体が単体のジョブである場合と、さらに別のジョブ・セットである場合があります。ジョブ・セットとそのジョブ・セット・ステップのそれぞれにパラメータを追加できます。このパラメータの値は、ジョブまたはジョブ・セットがジョブ・リクエストとして送信されたときに指定されます。
-
非互換性: 同時に実行できないジョブ定義またはジョブ・セットを指定できます。
注意:
メタデータの検索にOracle Enterprise Manager Fusion Middleware ControlまたはWLSTのコマンドを使用する場合は、表示名ではなく、必ず、ジョブ定義、ジョブ・セットまたは非互換性の実際の名前を検索してください。表示名は、検索では見つかりません。
この項では、次の項目について説明します。
5.2.1 ジョブ定義の管理
Fusion Middleware Controlの「ジョブ定義」ページでは、ジョブ定義の表示、作成、編集、削除および検索を実行できます。
この項では、次の項目について説明します。
注意:
Webサービス・ジョブのジョブ定義を作成するためのOracle JDeveloperおよびOracle Enterprise Manager Fusion Middleware Controlの使用方法の詳細は、『Oracle Fusion Middleware Oracle Enterprise Scheduler開発者ガイド』のOracle Enterprise Manager Fusion Middleware ControlまたはOracle JDeveloperを使用したジョブ定義の作成に関する項を参照してください。
5.2.1.1 ジョブ定義の表示
特定のアプリケーション用に作成されたジョブ定義を表示できます。ジョブ定義の表には、ジョブ定義名、ジョブ定義の保存先の完全パス、ジョブ・タイプなど、アプリケーションに関連するジョブの詳細が表示されます。
ジョブ定義を定義するには:
5.2.1.2 ジョブ定義の作成または編集
ジョブ定義を作成または編集することができます。作成したジョブ定義を使用して、特定のアプリケーションに対するジョブ・リクエストを作成できます。ジョブ定義には、実行するジョブのディレクトリ・パス、ジョブ定義を関連付けるアプリケーションの名前、ジョブ定義に使用するジョブ・タイプが含まれています。そのジョブがWebサービス・タイプの1つである場合、WSDL URLも指定できます。
ジョブ定義に次のような追加プロパティを定義できます。
-
パラメータ。編集可能または読取り専用のパラメータを構成し、ジョブ・リクエストに送信できます。
-
ユーザー・プロパティ。ブール値、数値、文字列など、エンド・ユーザーが実行時に入力するプロパティを構成できます。
この項では、次の項目について説明します。
ジョブ定義を作成または編集するには:
5.2.1.2.1 アプリケーション定義のプロパティの構成
ジョブ・リクエストにデータを渡すにはパラメータを使用します。ジョブ送信のユーザー・インタフェースでは、テキスト・ボックス、日付ピッカー、選択リスト、値のリストなど、様々な表示コントロールを使用して、パラメータを渡すことができます。
ジョブ定義のパラメータを構成するには:
5.2.1.2.2 システム・プロパティの構成
システム・プロパティは、システムが認識できるパラメータで、システムによって使用されます。特定のシステム・プロパティをメタデータで使用することを指定できます。
注意:
システム・プロパティの値を変更する場合は、変更後の値が正しいことを確認してください。間違ったシステム・プロパティの値により、ジョブ定義が予期したとおりに機能しないことがあります。
ジョブ定義のシステム・プロパティを構成するには:
-
「ジョブ定義の作成」ページで、「システム・プロパティ」セクションを展開します。
-
「追加」ボタンをクリックします。
「システム・プロパティの追加」ダイアログ・ボックスが表示されます。
-
「名前」ドロップダウン・リストから、指定するシステム・プロパティを選択します。表5-1に、指定できるシステム・プロパティを示します。
-
「初期値」テキスト・フィールドに、システム・プロパティに割り当てる値を入力します。
-
このプロパティをユーザーに対して読取り専用にするには、「読取り専用」チェック・ボックスを選択します。
-
「OK」をクリックします。
表5-1 システム・プロパティ
システム・プロパティ | 説明 |
---|---|
|
プロセス・ジョブ・タイプ用です。UNIXのコマンドライン・コマンドを表す文字列を指定します。 SYS_cmdLineプロパティが定義されている場合、このプロパティは無視されます。 |
|
プロセス・ジョブ・タイプ用です。Windowsのコマンドライン・コマンドを表す文字列を指定します。 SYS_cmdLineプロパティが定義されている場合、このプロパティは無視されます。 |
[ |
EJBジョブではオプションです。適切なビジネス・メソッドに分岐するEJBの実装で使用されるパス・スルー・パラメータを指定します。 例: |
|
プロセス・ジョブ用です。プロセス実行可能ファイルがあるUNIX上のディレクトリを指定します。 |
|
プロセス・ジョブ用です。プロセス実行可能ファイルがあるWindows上のディレクトリを指定します。 |
|
プロセス・ジョブ用です。プロセス実行可能ファイルの名前を指定します。 |
|
Unix上のSYS_EXT_executableNameの接尾辞を指定します。デフォルトは".sh"です。 |
|
Windows上のSYS_EXT_executableNameの接尾辞を指定します。デフォルトは".cmd"です。 |
|
プロセス・ジョブおよびJavaジョブ・タイプ用です。実行ステージの開始時に、以前にインポートされた出力ファイルを、リクエストの出力ディレクトリに自動的にエクスポートするようOracle Enterprise Schedulerに要求するための値を指定します。このプロパティを使用する場合は、リクエストのSYS_EXT_supportOutputFilesプロパティが"output"、SYS_EXT_executeAutoExportプロパティが"true"に設定されていることが前提です。 RequestFileDirectoryがローカル・ディレクトリにあり、実行ステージで、プリプロセッサまたは前の実行中に作成された出力ファイルにアクセスする必要がある場合(再試行時)に便利です。 |
|
現在のジョブがFusion Applications CPジョブ・タイプであることを示すには、これを"true"に設定します。 |
|
Webサービスの呼出しに使用されるXMLの発行メッセージ |
[ |
EJBジョブでは、ホスティング・アプリケーションで定義され、Oracle Enterprise SchedulerサーバーのJNDIツリーにバインドされている、Oracle Enterprise SchedulerのAsyncRequest BeanのJNDIマップ済の名前を指定します。 このプロパティは、次の場合にのみ必須です。
|
[ |
EJBジョブではオプションです。認証済Oracle Enterprise SchedulerサーバーのCSFキーの別名を指定します。このプロパティは、Oracle Enterprise SchedulerのJNDIツリーが認証済の場合にのみ必須です。 例: |
[ |
EJBジョブでは、ホスティング・アプリケーションで定義され、Oracle Enterprise SchedulerサーバーのJNDIツリーにバインドされている、Oracle Enterprise SchedulerのMetadataService BeanのJNDIマップ済の名前を指定します。 このプロパティは、 |
[ |
EJBジョブでは、ホスティング・アプリケーションで定義され、Oracle Enterprise SchedulerサーバーのJNDIツリーにバインドされている、Oracle Enterprise SchedulerのRuntimeService BeanのJNDIマップ済の名前を指定します。 このプロパティは、 |
[ |
EJBジョブで、EJBサーバーのJNDIツリーが保護されている場合にのみ必須です。キーストア内のユーザー名とパスワードにマップされ、CSFの別名を指します。この特定のユーザー名/パスワードのペアは、JndiMappedNameルックアップのための、保護されたJNDIへのアクセスに必要な資格証明です。 このプロパティは、RequestParametersオブジェクトのいずれか、またはホスティング・アプリケーションのOracle Enterprise Scheduler構成に追加できます。 |
[ |
EJBジョブではオプションです。リモート・サーバーのURLを指定します。EJBがリモートに配置されている場合にのみ必須です。 |
[ |
EJBジョブでは必須です。リモートEJB実装のJNDIルックアップ名を指定します。 例: |
|
プロセス・ジョブ用です。引数を指定します。 |
|
JavaおよびPL/SQLリクエストのログ出力のログ・レベルを指定します。デフォルトは"INFO"です。 |
|
プロセス・ジョブ・タイプ用です。このプロパティは、ジョブが正常に開始した後にOracle Enterprise Schedulerで実際のコマンドラインを保存する場所を提供します(置換が実行されます)。このプロパティは診断用にのみ使用されます。Oracle Enterprise Schedulerでのみ使用され、その他の値がこのサービスによって上書きされることがあります。 |
|
ジョブがファイル・システムにファイルを作成するかどうかを示す文字列を指定します。サポートされている値は次のとおりです。
|
|
Oracle Enterprise Schedulerでコンテンツ・ストア内のリクエスト・ログと出力ファイルを別のリポジトリ(UCM)にアップロードする場合は、これを"copy"に設定します。リクエスト・ログおよび出力コンテンツはコンテンツ・ストアに残りますが、ログ/出力がUCMにあることが必要なユーザー・インタフェースやツールでも使用できるようになります。 |
|
Fusion Applicationsスタイルのファイルから環境プロパティを取得するには、これを"true"に設定します。デフォルトは"false"です。 |
|
Oracle Enterprise Schedulerで、ApplSessionなどの拡張機能が使用可能なときに、リクエストの各ステージでその機能を設定する場合は、これを"true"に設定します。 |
|
ファイル・システムにファイルを作成するプロセス・ジョブ・タイプおよびJavaジョブ・タイプ用です。Oracle Enterprise Schedulerに、ess-config.xmlファイルから構成されたRequestFileDirectoryおよびRequestFileDirectorySharedをリクエストに保存することを要求します。これらの値は、SYS_userFileDirおよびSYS_EXT_userFileDirSharedプロパティとしてそれぞれ保存されます。Oracle Enterprise Schedulerはこれらのプロパティを使用し、SYS_EXT_supportOutputFilesに応じてリクエストの作業ディレクトリと出力ディレクトリを作成します。 Oracle Enterprise Schedulerでのみ使用され、その他の値がこのサービスによって上書きされることがあります。 |
|
オプション。Webサービスの取消操作のためのXMLメッセージ。 |
|
オプション。取消操作名。 |
|
WSDL URLのベースURLの一部。 |
|
WebサービスのWSDL URLの相対的な部分(具体的なWSDL URLである必要があります)。 |
|
エンドポイントURLのベースURLの一部。 |
|
そのWebサービスのエンドポイントURL。また、 |
|
操作名。 |
|
ポート名。 |
|
サービス名。 |
|
ターゲットのネームスペース。 |
|
同じジョブ定義の複数のリクエストの保留を許可するかどうかを指定します。このプロパティはジョブ・セット・ステップには影響しません。Trueまたはfalse。 |
|
リクエスト処理に使用するJ2EEアプリケーションの論理名を指定します。このプロパティは、リクエスト送信時にOracle Enterprise Schedulerによって自動的に設定されます。 |
|
実行ビジネス・エラーを示すプロセス・ジョブ・リクエストのプロセス終了コードを指定します。このプロパティが指定されていない場合、プロセス終了コード4は実行ビジネス・エラーとして処理されます。 このプロパティはプロセス・ジョブ・タイプのオプションのプロパティです。他のジョブ・タイプでは使用されません。 ビジネス・エラーの詳細は、「拡張検索機能を使用したジョブ・リクエストの検索」を参照してください |
|
Javaジョブ・リクエストのJava実行可能ファイルを指定します。これは、 |
|
プロセス・ジョブ・リクエストに対して外部プログラムを起動するために使用されるコマンド行を指定します。 このプロパティはプロセス・ジョブ・タイプの必須プロパティです。他のジョブ・タイプでは使用されません。 |
|
リクエストを処理するときに有効なアプリケーションとなるJ2EEアプリケーションの論理名を指定します。 |
|
プロセス・ジョブ・リクエストの生成されたプロセスを設定するための環境変数を指定します。プロパティの値は、設定する環境変数を表す、カンマで区切られた名前と値のペア(名前=値)のリストである必要があります。 このプロパティはプロセス・ジョブ・タイプではオプションです。他のジョブ・タイプでは使用されません。 |
|
実行時間が過去である繰返しリクエストのインスタンスを生成するかどうかを指定します。インスタンスは、リクエストされた開始時間より前、またはリクエストされた終了時間より後には生成されません。過去のインスタンスが生成されるようにするには、このプロパティをTRUEに設定し、リクエスト開始時間をインスタンス生成を開始する最初の時間として指定する必要があります。リクエスト開始時間がnullである場合、現在の時間にデフォルト設定されます。 このプロパティの値は次のとおりです。
このプロパティが指定されない場合は、デフォルトで |
|
内部使用のみに対応しています。 |
|
非同期Javaジョブの外部部分の識別子を指定します。たとえば、非同期Javaジョブでは通常リモート・プロセスを起動してから、Oracle Enterprise Schedulerに制御を戻します。このプロパティはリモート・プロセスの識別に使用されます。このプロパティは、識別子の判明時に非同期Javaジョブのジョブ実装によって設定されます。Oracle Enterprise Schedulerによっては設定されません。 |
|
オプション。サポートされている値は、ADFBC、OSBまたはSOAです。その他の値は無効です。 |
|
このリクエストがバインドされるOracle Enterprise Scheduler分離グループの名前を指定します。このプロパティは、リクエスト送信時にOracle Enterprise Schedulerによって自動的に設定されます。 |
|
ジョブ・リクエストへの入力を指定します。シリアル・ジョブ・セットへの入力は、最初のステップのみへの入力として転送されます。パラレル・ジョブ・セットへの入力は、すべてのパラレル・ステップへの入力として転送されます。 Oracle Enterprise Schedulerによって、このプロパティの値に指定される形式はありません。 |
|
ジョブ・リクエストの処理中に入力ファイルに使用する作業ディレクトリを指定します。Oracle Enterprise Schedulerはジョブ・リクエストの処理中にこのプロパティの値を設定します。 |
|
リクエストに関連付けられるイベント・リスナー・クラスを指定します。これは、 |
|
ジョブに適用する言語コードを指定します。 |
|
Oracle Enterprise Schedulerでは、EJBおよびWebサービスのジョブに抽象的なジョブの場所を定義できる手段が提供されています。ジョブの場所は、Oracle Enterprise Schedulerの 「ジョブ定義」→「ジョブ定義の詳細」ページで、 「論理クラスタ」および「ジョブの場所」という用語は、同じ意味で使用できます。 |
|
ロギング作業ディレクトリを指定します。Oracle Enterprise Schedulerでのみ使用され、その他の値がこのサービスによって上書きされることがあります。 |
|
リクエストからの出力を指定します。 シリアル・ジョブ・セットの出力は、最後のステップの |
|
ジョブ・リクエストの処理中に出力ファイルに使用する作業ディレクトリを指定します。Oracle Enterprise Schedulerはジョブ・リクエストの処理中にこのプロパティの値を設定します。Oracle Enterprise Schedulerでのみ使用され、その他の値がこのサービスによって上書きされることがあります。 |
|
後処理コールアウト・ハンドラ・クラスを指定します。これは、 |
|
前処理コールアウト・ハンドラ・クラスを指定します。これは、 |
|
リクエスト処理の優先度を指定します。優先度は[0...9]で指定し、最も低い優先度が0、最も高い優先度が9です。 デフォルト: このプロパティが指定されていない場合、システムのデフォルト値は4です。 |
|
SQLジョブ・リクエストでコールされるPL/SQLストアド・プロシージャの名前を指定します。ストアド・プロシージャは、schema.nameの形式で指定する必要があります。 このプロパティはSQLジョブ・タイプの必須プロパティです。他のジョブ・タイプでは使用されません。 |
|
リクエストを送信したアプリケーション内の製品を指定します。 |
|
プロセス・ジョブ・リクエストに対して標準出力およびエラー・ストリームがリダイレクトされるファイルを指定します。リクエストの実行時に標準出力およびエラー・ストリームのリダイレクト先となるログ・ファイルの完全パスを示します。 Oracle Enterprise Schedulerでのみ使用され、その他の値がこのサービスによって上書きされることがあります。 |
|
コールアウト・ハンドラの処理遅延時間を指定します。コールバック・ハンドラによって遅延がリクエストされたときに、リクエスト処理を遅延させる時間を分単位で示します。 デフォルト: このプロパティが指定されていない場合、使用されるシステムのデフォルトは5です。整数型。 |
|
プロセス・ジョブ・リクエストに関連付けられた有効なエンコーディングを指定します。
有効なエンコーディングは、プロセスが生成される前に計算され、このプロパティに格納されます。これは、後に、リクエストのログおよび出力のエンコーディングを決定するために使用されます。 |
|
ジョブ・リクエストをタイムアウトさせることを指定します。 |
|
リクエストのアプリケーション固有ラベルを指定します。アプリケーションまたはシステムの管理者が定義したラベルを指定することで、管理者は独自の要件に応じてジョブ・リクエストをグループ化できます。 |
|
リクエストを処理するリクエスト・プロセッサ・ノードを指定します。ジョブ・リクエストとプロセッサの親和性を指定できます。このプロパティが指定されていない場合、使用可能な任意のリクエスト・プロセッサ・ノードでリクエストを実行できます。通常、このプロパティは指定しません。 リクエストに対してこのプロパティが指定された場合、リクエスト・プロセッサの作業割当て |
|
リクエストの有効期限を指定します。これは、リクエストの有効期限が切れる時間を、スケジュールされた実行時間からの分数で表します。有効期限値のゼロ(0)は、リクエストが期限切れにならないことを意味します。このプロパティが指定されていない場合、システムのデフォルト値は0です。 リクエストの有効期限は実行待機中のリクエストにのみ適用されます。指定された有効期限よりも待機時間が長いリクエストは実行されません。リクエストの実行が開始された後は、リクエストの有効期限は適用されません。 |
|
失敗したリクエストの再試行上限を指定します。リクエストの実行が失敗した場合、リクエストが成功するまで、このプロパティにより指定された回数までリクエストが再試行されます。再試行制限がゼロ(0)の場合、失敗したリクエストは再試行されません。 このプロパティが指定されていない場合、使用されるシステムのデフォルトは0です。 |
|
このプロパティは、スケジュール済ジョブを完了するためアクセス権限の昇格を許可します。 通常、リクエストは発行元ユーザーとして実行されます。ただし、このプロパティがリクエストに関連付けられているジョブのメタデータで設定されている場合、リクエストはこのプロパティで指定されるユーザーとして実行されます。このプロパティはメタデータでのみ指定できます。送信パラメータでは指定できません。 |
|
ジョブ・セット・ステップの結果状態がその親ジョブ・セットの最終的な状態に影響するかどうかを指定します。ジョブ・セットの状態を決定するときにジョブ・セット・ステップの状態が考慮されるようにするには、 |
|
SQLジョブ・リクエストの実行に使用されるOracle Enterprise Schedulerジョブに割り当てる、Oracle Enterprise Schedulerジョブ・クラスを指定します。ジョブ・リクエストに使用されるジョブが特定のOracle Databaseリソース・コンシューマ・グループに関連付けられている、またはデータベース・サービスへの親和性があるという場合は、このプロパティは指定する必要がありません。 このプロパティが指定されていない場合、SQLリクエストを実行するジョブにデフォルトのOracle Enterprise Schedulerジョブ・クラスが使用されます。そのジョブ・クラスはデフォルトのリソース・コンシューマ・グループに関連付けられます。これはデフォルト・サービスに属し、サービス・アフィニティがなく、Oracle RAC環境内で、クラスタ内のデータベース・インスタンスのいずれかがジョブを実行します。Oracle Enterprise Scheduler SQLジョブ・リクエストがそのデフォルト・ジョブ・クラスを使用するのに、追加の権限は要求されません。 このプロパティはSQLジョブ・タイプのオプションのプロパティです。他のジョブ・タイプでは使用されません。 |
|
送信された(絶対的な親)リクエストのJ2EEアプリケーションの論理名を指定します。このプロパティは、リクエスト送信時にOracle Enterprise Schedulerによって自動的に設定されます。 |
|
このプロパティは非推奨です。 |
|
実行の成功を表す、プロセス・ジョブ・リクエストのプロセス終了コードを指定します。このプロパティが指定されていない場合、システムは、プロセス終了コード0を実行の成功と見なして処理します。 このプロパティはプロセス・ジョブ・タイプのオプションのプロパティです。他のジョブ・タイプでは使用されません。 |
|
入力ファイルや出力ファイルなどリクエストの実行可能ファイルで使用されるファイルが保存される、ファイル・システム上のベース・ディレクトリを指定します。 Oracle Enterprise Schedulerでは、リクエストによりファイルを保存できるファイル・ディレクトリを指定する構成パラメータがサポートされます。構成パラメータが現在設定されており、 Oracle Enterprise Schedulerでのみ使用され、その他の値がこのサービスによって上書きされることがあります。このプロパティが削除された場合、その値はデフォルトであるシステム定義値<server log path>/ess_request/に設定され、SYS_EXT_userFileDirSharedプロパティの値はfalseであると想定されます。 |
|
リクエストを実行するために使用されるユーザーの名前を指定します。 |
|
実行の警告を表す、プロセス・ジョブ・リクエストのプロセス終了コードを指定します。このプロパティが指定されていない場合、システムは、プロセス終了コード3を実行の警告と見なして処理します。 このプロパティはプロセス・ジョブ・タイプのオプションのプロパティです。他のジョブ・タイプでは使用されません。 |
|
プロセス・ジョブ・リクエストのプロセス用の作業ディレクトリを指定します。 Oracle Enterprise Schedulerでのみ使用され、その他の値がこのサービスによって上書きされることがあります。 |
5.2.1.2.3 アクセス制御の構成
ユーザー・グループに許可するこのメタデータに対するアクセス・レベルを指定できます。ここに表示されるロールは、アプリケーションによって使用されるjazn-data.xml
ファイルで定義されます。
5.2.1.2.4 Enterprise Managerのジョブ・ロールへの権限付与
ここでは、Enterprise Managerのジョブ・ロールに権限を付与する方法について説明します
注意:
グループまたは個人ユーザーは、ESS Enterprise ManagerでなはくWeblogic Enterprise Manager内のセキュリティ・リンクを使用して関連付けることができます。Enterprise Manager内のジョブに権限を付与して、ESS Enterprise Manager内にジョブを作成する場合、作成したロールはEnterprise Managerに表示されます。これらの権限を、このロールに関連付けることができます。
- 「Enterprise Manager」ウィンドウで、ナビゲーション・ペインのcompact_domainに移動します。
- 「アプリケーション・ストライプ」ドロップダウンで、ESSNativeHostingAppを選択します。
- 「作成」をクリックして、ESSNativeHostingAppのロールを指定します。
- 「ロール名」フィールドに、ロール名としてESSJobRoleと入力します。
- 「追加」アイコンをクリックして、プリンシパルを追加します。
- プリンシパルを検索して、テストし、「OK」をクリックします。
- ロールを選択し、そのロールが実行できるアクションを指定するには、ナビゲーション・パネルに移動し、「スケジューリング・サービス」→「ESSAPP (AdminServer)」の順にクリックします。
- ジョブ定義を追加するアプリケーションを選択します。
- フィルタ基準を使用して、アプリケーションを検索できます。
- ジョブ・タイプを定義するには、「ジョブ定義」を開き、「Webサービスの選択」を選択します。
- アクセス制御を追加して、「OK」をクリックします。
5.2.1.3 ジョブ定義の削除
ジョブ定義を削除することができます。
ジョブ定義を削除するには:
- 「ジョブ定義の表示」の説明のとおり、対象のジョブ定義を検索します。
- 「結果」表で、削除するジョブ定義を選択し、「削除」ボタンをクリックします。
5.2.2 ジョブ・セットの管理
ジョブ・セットを表示、作成、編集、削除および検索できます。ジョブ・セットとは、ジョブ・リクエストを1つのユニットとして実行できるようにグループ化したジョブ・リクエストの集合です。ジョブ・セットをネスト構造にして、ジョブ・リクエストのコレクションまたは1つ以上の子ジョブ・セットを格納できます。ジョブ・セットに格納された各ジョブ・リクエストまたはジョブ・セットを、ジョブ・セット・ステップと呼びます。
注意:
循環依存が作成されるのを避けるため、ジョブ・セットをそれを含むジョブ・セットに追加しないでください。たとえば、JobSet2
にJobSet1
が含まれている場合、JobSet2
をJobSet1
に追加しないでください。
ジョブ・セットはFusion Middleware Controlの「ジョブ・セット」ページで管理します。
この項では、次の項目について説明します。
5.2.2.1 ジョブ・セットの表示
特定のアプリケーション用に作成されたジョブ・セットを表示できます。
ジョブ・セットを表示するには:
図5-1に「ジョブ・セット」ページの「結果」表を示します。「結果」表には、ジョブ・セットが、名前、パッケージ、実行モード、説明などの属性とともに表示されます。
5.2.2.2 ジョブ・セットの作成または編集
ジョブ・セットはシリアルまたはパラレルのいずれかとして定義します。実行時、Oracle Enterprise Schedulerではパラレル・ジョブ・セット・ステップを並行して実行します。一方、シリアルのジョブ・セット・ステップは、1つずつ指定された順序で実行されます。シリアルのジョブ・セットの場合、前のステップの実行ステータスに基づく、ステップ間の条件分岐がサポートされます。
ジョブ・セット内の各ステップには、ステップの完了時にステップの状態に基づいて実行するアクションを構成できます。特定のジョブ・リクエストを完了するためのアクセス権限の昇格や、エラーが発生した場合に許可するジョブの再試行回数の指定など、ジョブ・セットにはパラメータとシステム・プロパティも構成できます。
ジョブ・セットを作成または編集するには:
-
ナビゲーション・ペインで、「スケジューリング・サービス」フォルダを展開し、Oracle Enterprise Schedulerアプリケーションを選択します。
-
「スケジューリング・サービス」メニューから、「ジョブ・メタデータ」→「ジョブ・セット」を選択します。
「ジョブ・セット」ページが表示されます。
-
「アプリケーション」ドロップダウン・リストで、ジョブ・セットを作成または編集するアプリケーション名を選択します。
-
「作成」をクリックして新規のジョブ・セットを定義するか、または「編集」をクリックして既存のジョブ・セットを変更します。
-
「名前」フィールドに、ジョブ・セットの名前を入力します。「表示名」フィールドに、ユーザーに表示される名前を入力します。オプションで、「説明」テキスト・フィールドに説明を入力し、「パッケージ」テキスト・フィールドに関連するジョブ・セットJavaパッケージの名前を入力します。
-
「ジョブ・セット・ステップ」セクションで、「シリアル」または「パラレル」を選択し、シリアルまたはパラレルのジョブ・セットを作成します。
-
必要に応じて、「追加」ボタンをクリックしてステップを追加します。各ステップを定義します。
-
「ステップ」タブの「ステップID」フィールドで、ステップに適したIDを入力します。ステップIDは、このジョブ・セット内のすべてのステップで一意である必要があります。
「ジョブ」フィールドで検索ボタンをクリックします。表示されたウィンドウで、このステップに使用するジョブまたはジョブ・セットを選択し、「OK」をクリックします。
-
「メイン・ダイアグラムへの挿入」または「使用可能なステップのリストへの追加」を選択します。使用可能なステップのリストにステップを追加することを選択した場合は、表示されたドロップダウン・リストを使用して、ジョブの結果(「成功時」、「エラー発生時」および「警告時」)に対するアクションを選択します。
-
アプリケーション定義のプロパティ・タブで、「追加」ボタンをクリックして必要なパラメータを定義し、表示されるフィールドにその初期値を入力します。パラメータの定義の詳細は、「アプリケーション定義のプロパティの構成」を参照してください。
-
「システム・プロパティ」タブで、「追加」ボタンをクリックしてシステム・プロパティを選択し、表示されるフィールドにその初期値を入力します。システム・プロパティの選択の詳細は、「システム・プロパティの構成」を参照してください。
-
「OK」をクリックします。
-
シリアル・ステップとして構成する場合は、ステップがジョブ・セット・フロー・ダイアグラムに表示されます。エラーおよび警告状態になったときに実行するアクションをそれぞれ構成します。エラーおよび警告アイコンのドロップダウン・リストから、「停止」を選択するか、エラーまたは警告の状態になったときに実行するジョブ定義の名前を選択します。
-
-
引き続き、必要に応じてジョブ・セットのステップを定義します。
-
ジョブ・セットに必要な場合、アプリケーション定義のプロパティおよびシステム・プロパティを、「ジョブ・セット」ウィンドウの下の方にあるセクションで定義します。
-
ジョブ・セットのアクセス制御を構成します。アクセス制御の定義の詳細は、「アクセス制御の構成」を参照してください。
-
「ジョブ・セットの作成」ページで、「OK」をクリックしてジョブ・セットを保存します。
5.2.2.3 ジョブ・セットの削除
ジョブ・セットを削除できます。
ジョブ・セットを削除するには:
- 「ジョブ・セットの表示」の説明のとおり、対象のジョブ・セットを検索します。
- 「結果」表で、削除するジョブ・セットを選択し、「削除」ボタンをクリックします。
5.2.3 非互換性の管理
Oracle Enterprise Schedulerの非互換性では、同時実行できないジョブ定義を指定します。
グローバル非互換性、またはドメイン固有のプロパティベースの非互換性を定義します。
この項では、次の項目について説明します。
5.2.3.2 非互換性の作成または編集
非互換性は、非互換として構成された1つ以上のジョブ定義と、非互換の対象とする必要があるオプションのリソースで構成されます。グローバルの非互換性にリソースは指定しません。
ドメインの非互換性では、リソースは非互換性を形成するプロパティ名によって表現されます。プロパティ名はジョブ定義によって異なることがあります。たとえば、2つのジョブ定義JobAとJobBが非互換として設定された場合に、非互換として識別されるプロパティの名前がJobAとJobBで違う場合があります。
ドメインの非互換性とグローバルの非互換性の違いについて、詳しく説明します。
-
ドメイン固有: ドメインの非互換性では、非互換のジョブまたはジョブ・セットで、同じプロパティ値を持つものは、同時に実行されません。
2つ以上のジョブ定義をリソースの範囲内で非互換であるとして追加します。リソースはシステム・プロパティ名またはパラメータ名で特定されます。各エンティティに同じプロパティ名を使用することも、別のプロパティ名を使用することもできます。プロパティベースの非互換性では、ジョブ定義またはジョブ・セットと、各エンティティのプロパティ名を指定する必要があります。
-
グローバル: グローバルな非互換性では、Oracle Enterprise Schedulerによって、非互換なジョブまたはジョブ・セットに対するリクエストが同時に実行されないことが保証されます。
2つ以上のジョブ定義は一緒に実行できません。グローバルの非互換性は、プロパティに関係なく非互換のエンティティを同時に実行しないようにする場合に使用します。グローバルの非互換性では、各エンティティにジョブ定義またはジョブ・セットのみを指定します。
非互換性は、通常、2つ以上のジョブまたはジョブ・セットのエンティティを使用して定義されます。エンティティが自己非互換としてマークされていれば、その1つのエンティティの非互換性を定義できます。自己非互換とは、そのジョブまたはジョブ・セットに関連付けられる複数のジョブ・リクエストを同時に実行できないことを意味します。
非互換性の定義には、次が含まれます。
-
パッケージおよび範囲: 非互換性に使用するJavaパッケージを選択し、非互換性の範囲を設定します(グローバルまたはドメインのみ)。
-
ジョブ: 非互換のジョブを選択します。
-
パラメータおよびプロパティ: 必要に応じてパラメータとプロパティを定義します。
-
アクセス制御: 必要に応じてアクセス制御を定義します。
非互換性を作成または編集するには:
5.2.3.3 非互換性の削除
非互換性を削除すると、非互換だったジョブ・リクエストまたはジョブ・セットが再び互換性を持つようになります。
非互換性を削除するには:
- 「非互換性の表示」の説明のとおり、対象の非互換性を検索します。
- 「結果」表で、削除する非互換性を選択し「削除」ボタンをクリックします。
5.2.4 ジョブのメタデータの一括カスタマイズ
通常、既存のOracle Enterprise Schedulerジョブのカスタマイズには、Oracle Enterprise Manager Fusion Middleware ControlまたはOracle JDeveloperを使用する、ジョブ・プロパティの編集が含まれます。ジョブ・プロパティの一括更新を行いたい顧客には、このアプローチは制限があり、反復的です。システムMBeanブラウザおよび一括カスタマイズAPIにより、基本のメタデータを変更することなく、多数のジョブのメタデータの一部のプロパティを一括してカスタマイズできます。
次のプロパティを一括で更新またはカスタマイズできます。
-
oracle.as.scheduler.SystemProperty.
PRIORITY
-
oracle.as.scheduler.SystemProperty.
RETRIES
-
oracle.as.scheduler.SystemProperty.
REQUEST_CATEGORY
-
oracle.as.scheduler.SystemProperty.
ASYNC_REQUEST_TIMEOUT
-
oracle.as.scheduler.SystemProperty.
LOGICAL_CLUSTER_NAME
-
enableTrace
-
enableTimeStatistics
5.2.4.1 システムMBeanブラウザを使用した一括カスタマイズ
APIの一括カスタマイズは、Oracle Enterprise Manager Fusion Middleware ControlのシステムMBeanブラウザから簡単に起動できます。このプロセスには2つのステップがあります。
5.2.4.1.1 例
次の例は、システムMBeanブラウザを使用してジョブ定義のプロパティをエクスポートおよびカスタマイズする方法を示します。
-
図5-2に示すように、「WebLogicドメイン」メニューから選択し、Oracle Enterprise Manager Fusion Middleware ControlのシステムMBeanブラウザを起動します。
図5-2 Oracle Enterprise Manager Fusion Middleware ControlのシステムMBeanブラウザの起動
「図5-2 Oracle Enterprise Manager Fusion Middleware ControlのシステムMBeanブラウザの起動」の説明 -
システムMBeanブラウザで、アプリケーションのMetadataServiceエントリに移動します。図5-3に例を示します。サーバーとアプリケーションの名前が異なる場合があることに注意してください。
-
図5-4に示すように、「操作」タブをクリックします。
-
exportESSJobMetadataBulkアイテム(図5-4)をクリックして「操作: exportESSJobMetadatBulk」ページを表示します。
-
「操作: exportESSJobMetadatBulk」ページで、表5-2にリストするパラメータを「値」列のフィールドに入力し、「呼出し」をクリックします。図5-5に例を示します。
次の表に、「操作: exportESSJobMetadataBulk」ページで使用されるパラメータと値の追加の例を示します。
パラメータ 値 filterQueryField
package
filterComparator
CONTAINS
filterValue
oracle/as/ess/customer-pkg
パラメータ 値 filterQueryField
job-type
filterComparator
ENDS_WITH
filterValue
PlsqlJobType
パラメータ 値 filterQueryField
name
filterComparator
EQUALS
filterValue
some_env_value
-
「戻る」をクリックして「MetadataService」ページに戻り、customizeJobDefinitionBulkアイテムをクリックして「操作: customizeJobDefinitionBulk」ページを表示します。
-
図5-7に示すように、「値」列のフィールドに入力します。xmlInputFileエントリは、以前にパラメータをエクスポートしたファイルの名前です。「呼出し」ボタンをクリックしてカスタマイズを完了します。
5.2.4.2 一括カスタマイズMBean API
一括カスタマイズのAPIには、2つのメソッド、exportESSJobMetadataBulk
およびcustomizeJobDefinitionBulk
があります。
5.2.4.2.1 exportESSJobMetadataBulkメソッド
このメソッドは、カスタマイズできるジョブ定義のプロパティのリストをエクスポートします。このメソッドは、Oracle Enterprise Schedulerのホスティング・アプリケーションのMDSリポジトリ内の指定されたフィルタ基準に一致するジョブ定義を問い合せます。
管理者は、生成されるXML出力ファイルを編集できます。「customizeJobDefinitionBulkメソッド」の説明のとおり、このファイルはcustomizeJobDefinitionBulk
メソッドの入力となります。
5.2.4.2.1.1 構文
void exportESSJobMetadataBulk (java.lang.String xmlOutputFile, java.lang.String filterQueryField, java.lang.String filterComparator, java.lang.String filterValue, java.lang.String application) throws java.io.IOException, javax.management.RuntimeOperationsException
表5-2 exportESSJobMetadataBulkのパラメータ
パラメータ | 説明 |
---|---|
|
ジョブ定義のカスタマイズ可能なプロパティのリストがエクスポートされる出力XMLファイルの絶対パス。 |
|
フィルタする問合せフィールドの名前。サポートされる問合せフィールドを次に示します。
これらの問合せフィールドは、パッケージ |
|
フィルタの比較演算子の名前。サポートされるコンパレータを次に示します。
これらのコンパレータは、パッケージ |
|
フィルタの問合せフィールドと比較する値。 |
|
メタデータ・リポジトリが使用される、Oracle Enterprise Schedulerのホスティング・アプリケーションの名前。 |
表5-3 exportESSJobMetadataBulkの例外
例外 | 説明 |
---|---|
|
プロトコル・エラーが発生した場合にスローされます。 |
|
メタデータ・サブシステムにより障害が検出された場合にスローされます。 |
5.2.4.2.2 customizeJobDefinitionBulkメソッド
このメソッドでは、基本メタデータを変更せずに、exportESSJobMetadataBulk
メソッドで生成された入力XMLファイルに定義されているジョブ定義プロパティのメタデータ定義をカスタマイズします。MDSのメタデータ・カスタマイズ機能が使用され、プロパティがMetadataService.CustomizableProperty
列挙のメンバーの1つでない場合は、例外がスローされます。
このメソッドでは、カスタム・ネームスペース/oracle/apps/ess/custom
に属するジョブ定義のプロパティの基本メタデータが変更されます。
注意:
この機能を正常に動作させるためには、アプリケーションで、そのadf-config.xml
ファイルにカスタマイズ・クラスを定義する必要があります。詳細は、MDSのドキュメントを参照してください。
5.2.4.2.2.1 構文
void customizeJobDefinitionBulk (java.lang.String xmlInputFile, java.lang.String application) throws java.io.IOException, javax.management.InstanceNotFoundException, javax.management.OperationsException, javax.management.InvalidAttributeValueException, javax.management.RuntimeOperationsException
表5-4 customizeJobDefinitionBulkのパラメータ
パラメータ | 説明 |
---|---|
|
エクスポートされたジョブ定義のリストを含む入力XMLファイルのパス。ファイルの形式は、 |
|
メタデータ・リポジトリが使用されるアプリケーションの名前。 |
表5-5 customizeJobDefinitionBulkの例外
例外 | 説明 |
---|---|
|
プロトコル・エラーが発生した場合にスローされます。 |
|
定義の検証に失敗した場合にスローされます。 |
|
メタデータ・サブシステムにより障害が検出された場合にスローされます。 |
|
指定されたMBeanがリポジトリに存在しない場合にスローされます。 |
|
MBeanのオペレーションの実行時に、MBeanサーバー内でスローされる例外を表します。 |
5.3 作業割当てと稼働シフトの管理
作業割当てでは、ジョブを実行する場所と日時についての制約や、ジョブの実行に使用できるリソース量を定義できます。このプロセスには、作業割当ての作成と、作業割当てとリクエスト・プロセッサのバインディングが含まれます。
作業割当ては、特殊化ルールと1つ以上の稼働シフトで構成されます。特殊化ルールは、ジョブの処理に関する制約を定義します。稼働シフトは、ジョブを実行できる時間枠とその期間に使用できるリソースを定義します。稼働シフトで定義されるリソースには、リクエスト・プロセッサのローカル・リソースであるスレッドと、グローバル・リソースである非同期ワーカーがあります。非同期ワーカーの数を指定し、データベース・ジョブなどの共有グローバル・リソースの使用を制限できます。
バインディングにより作業割当てがサーバー上のリクエスト・プロセッサに関連付けられ、ジョブの実行可能場所が決まります。排他的バインディング・モードがサポートされているため、ジョブの実行日時の決定だけでなく、ジョブが他の場所で実行されないようにすることもできます。
デフォルトで、作業割当てはバインドされていません。バインドされている、またはアクティブな作業割当てがない場合、仮想的なデフォルトの作業割当てが開始され、使用可能なすべてのリソースを使用してすべてのジョブが処理されます。このデフォルトの作業割当ては、プロセッサに対して構成されているスレッド数に制限されていますが、非同期ワーカー数に対するデフォルトの制限はありません。非同期ワーカー数を制限するには、1つ以上の作業割当てを作成してバインドする必要があります。
この項では、次の項目について説明します。
5.3.1 作業割当ての管理
作業割当てでは、ジョブ・リクエストの処理について次のような制御が可能です。
-
実行時に作業割当てをリクエスト・プロセッサにバインドし、特定のタイプのジョブ・リクエストを実行できる期間を制限できます。
-
実行時にリクエスト・プロセッサを構成し、すべてのジョブ・リクエストの処理に使用できるスレッドを制限できます。
5.3.1.1 アクティブな作業割当ての決定
バインドされた作業割当ては、有効化されていて、アクティブな稼働シフトがあり、作業割当て定義に有効化フラグが設定されている場合にアクティブになります。稼働シフトがアクティブになるのは、割当てが0より大きく現在のスケジュールが含まれている(現在時間がスケジュールと期間で定義される時間枠内である)か、稼働シフトが常時の稼働シフトである場合です。バインドされた作業割当てがサーバーにない場合、デフォルトの作業割当てがアクティブになり、すべてのスレッドが使用され非同期ワーカーの制限は適用されません。
5.3.1.2 作業割当てのスレッド割当ての決定
すべてのアクティブな作業割当ての割当てを満足させるために必要なスレッドの合計数が構成済のスレッド数を超えていなければ、アクティブな作業割当てには、アクティブな稼働シフトによって指定されたスレッド割当てが割り当てられます。この場合、Oracle Enterprise Schedulerは、全作業割当てのスレッド割当て総数に占める稼働シフトの割当てスレッドの割合に基づいて、スレッド割当てを評価します。
たとえば、作業割当て1のスレッド割当てが70、作業割当て2のスレッド割当てが30で、構成されているプロセッサ・スレッドが20あるとします。要求される割当ての合計は100であるため、作業割当て1の重みは70パーセント、作業割当て2の割当ては30パーセントになります。Oracle Enterprise Schedulerによって、作業割当て1に14スレッド、作業割当て2に6スレッドが割り当てられます。
デフォルトの作業割当てがアクティブの場合、作業割当てに割り当てられるスレッド数は、構成されているスレッド数と同じになります。
注意:
アクティブな作業割当てには、少なくとも1つのスレッドが割り当てられます。
5.3.1.3 アクティブな作業割当ての処理
作業割当てとスレッド割当てが決定された後、Oracle Enterprise Schedulerによって各アクティブ作業割当てのスレッド・プールが開始されます。スレッドは、その作業割当てに特殊化されたジョブ・リクエストの処理を担当します。ただし、排他的作業割当てに特殊化されているジョブ・リクエストは除外されます。除外は、デフォルトの作業割当てを含むすべての作業割当てに対して有効です。排他的作業割当てがグループ内のいずれかのサーバーにバインドされた場合、排他的作業割当てに特殊化されているジョブ・リクエストを他の作業割当てが処理することはできません。
注意:
無効の作業割当てを含め、排他的モードでバインドされている作業割当てはすべて除外されます。排他的バインドは、バインド先のサーバーが使用できない状態である場合も適用されます。除外されないようにするには、排他的作業割当てのバインドを解除する必要があります。
5.3.1.4 作業割当ての作成または編集
作業割当てには、リクエスト・プロセッサの制約を定義する2つの主要コンポーネントがあります。
-
特殊化ルール: リクエスト・プロセッサでのジョブ・リクエスト処理に対する制約を定義します。
-
稼働シフト: ジョブ・リクエストを処理する時間枠を指定します。つまり、リクエスト・プロセッサでジョブ・リクエストを処理できるスケジュールを指定します。
特殊化ルールや稼働シフトを含めたこれらの作業割当て制御の組合せにより、処理するジョブ・リクエストを選択し、リクエスト・プロセッサのリソースの割当て方法を決定できます。たとえば、日中シフトと夜間シフトという2つの稼働シフトを定義し、これらの期間に処理を割り当てるとします。日中シフトのピーク使用時期間にはより多くのリソースを割り当て、夜間シフトのリソース割当てには別の組合せを指定することが考えられます。
デフォルトでリクエスト・プロセッサに作業割当てはバインドされておらず、リクエスト・プロセッサは準備完了のジョブ・リクエストをすべて処理します。デフォルトの動作は、特殊化ルールのない、常時の稼働シフトを持つリクエスト・プロセッサを使用している場合と同じであり、構成されているスレッドはすべて使用され、非同期ジョブの数に制限はありません。
表5-6に、特殊化ルールに定義できるプロパティを示します。
表5-6 特殊化ルールに使用できる特殊化プロパティ
特殊化プロパティ | 説明 |
---|---|
アプリケーション |
ジョブ・リクエストに関連付けられたアプリケーションの名前を指定します。 |
製品 |
アプリケーション内の製品名を指定します。 |
送信者 |
ジョブ・リクエストを送信したユーザーを指定します。 |
ジョブ定義 |
特定のジョブ・リクエスト名を指定します。 |
リクエスト・カテゴリ |
システム管理者が定義したラベルを指定し、管理者が独自の要件に応じてジョブ・リクエストをグループ化できるようにします。デリミタ文字で区切って複数のラベルを含めることができます。 |
論理クラスタ名 |
論理クラスタの名前を指定します。 |
次の演算子は条件を作成するために使用されます: equals
、not equals
、contains
、starts with
、ends with
およびNOT
(単項)。
次の演算子は、ルールの条件を結合するために使用できます: AND
およびOR
(両方とも二項タイプ)
例5-1に、作業割当てで使用できるサンプルの特殊化ルールを示します。
ジョブ・リクエストが2つの異なる作業割当てに特殊化されている場合、ジョブ・リクエストはリソースの使用可能状況に応じて、いずれかの作業割当てによって処理されます。同様に、同じ作業割当てが2つの異なるサーバーに割り当てられている場合、ジョブ・リクエストはいずれか一方のサーバーによって処理されます。実際、前処理とジョブの実行が別のサーバーで行われるなど、同じリクエストの異なるステージが異なるサーバーで処理されることがあります。
requestCategoryの値には、カンマで区切って複数のラベル用語を指定できます。このようにして、ラベルの組合せに基づいた特殊化によって、タグの動作を模倣するラベルを指定できます。
たとえば、次のようなラベルを定義できます。
これらのラベルの場合、次の例のようなrequestCategory式を記述することが考えられます。
カンマを使用して用語を区切る場合は、例5-2に示されているように、各ラベル用語の前後にカンマを付ける必要があります。requestCategory式では、例5-3に示されているように、カンマを付けた完全なラベルを指定する必要があります。そうすることで、指定した用語を含む別の用語が選択されることを回避できます。
作業割当てを作成または編集するには:
例5-1 サンプルの特殊化ルール
application = 'EssDemoApp' AND (definition = 'JobDefinition://mypackage/Job_essdemo1' OR definition = 'JobDefinition://mypackage/LongRunningJob') requestCategory ='Priority' user = 'sam' (requestCategory ='LongRunning') AND NOT (definition = 'JobDefinition://mypackage/LongRunningJob')
例5-2 複数の用語を組み合せたリクエスト・カテゴリ・ラベル
",NODE1,CRITICAL," ",NODE1,STANDARD," ",NODE1,IMPORTANT,"
例5-3 複数のラベルを組み合せて使用するrequestCategory式
(requestCategory contains ',NODE1,') AND (requestCategory contains ',CRITICAL,') (requestCategory contains ',STANDARD,') OR (requestCategory contains ',IMPORTANT,') OR (requestCategory contains ',CRITICAL,')
5.3.2 稼働シフトの管理
稼働シフトは、リクエスト・プロセッサが動作するアクティブな時間を示すものです。つまり、稼働シフトでは、ジョブ・リクエストの処理でリソースまたはスレッドを使用できる一連の時間枠を定義します。作業割当てがリクエスト・プロセッサにバインドされるとき、その作業割当てに1つ以上の稼働シフトが関連付けられます。実行時にOracle Enterprise Schedulerは、その作業割当て内の稼働シフトのリソース割当てを判別します。
それぞれ異なる時間枠およびリソースの制限を持つ複数の稼働シフトを使用することで、様々なタイミングで異なる量のリソースを使用できます。たとえば、午前8時からの日中の稼働シフトを作成し、日中のスレッド割当てと非同期ジョブの制限を設定したり、午後6時からの夜間の稼働シフトを作成し、夜間のスレッド割当てと非同期ジョブの制限を設定したりすることが可能です。
稼働シフトはオーバーラップする可能性がありますが、Oracle Enterprise Schedulerでは、現在の稼働シフトとして1つの稼働シフトが選択されることに注意してください。
特定の作業割当てに対して現在アクティブな稼働シフトは1つのみですが、すでにアクティブでない稼働シフトに対するアクティブなリクエストが存在する可能性があります。実行が開始された稼働シフトで定義済の動作時間枠を超えてリクエストが実行されると、このような状況が発生する場合があります。たとえば、日中の稼働シフトがアクティブなときにリクエストの実行が開始され、夜間の稼働シフトが開始されたときにそのリクエストがまだ実行されているような場合です。Oracle Enterprise Schedulerは、現在のアクティブな稼働シフトの制限を使用し、作業割当ての稼働シフト内に開始されたすべてのアクティブなリクエストの数を制御します。アクティブなリクエストの数が現在の制限を超えた場合、アクティブなリクエストの数がその制限を下回るまで、それ以上のリクエストは実行されません。
稼働シフトは次のリソースを定義します。
-
スレッド割当て
-
非同期JavaジョブおよびPL/SQLジョブの非同期ジョブ制限
スレッド割当てでは、リクエスト・プロセッサで使用できるスレッドの数を指定します。これらのスレッドは、同期ジョブの処理、非同期ジョブの開始と終了、ジョブ・リクエストの前後処理、イベントの更新など、ローカル・タスクの実行に使用されます。作業割当て内の稼働シフトがアクティブのとき、その作業割当ての各リクエスト・プロセッサは指定されたスレッド数を使用できます。たとえば、スレッド割当てが15の常時の稼働シフトが作業割当てに含まれているとします。その作業割当てが3つのリクエスト・プロセッサにバインドされている場合、各リクエスト・プロセッサが15スレッドを使用できるため、3サーバーの合計は45スレッドになります。
非同期ジョブ、PL/SQLジョブおよび非同期Javaジョブは、システム全体で共有する必要があるグローバル・リソースです。稼働シフトを使用して、作業割当てに対してアクティブにするPL/SQLジョブおよび非同期Javaジョブの数を制限できます。この制限はシステム内でその作業割当てを使用するすべてのリクエスト・プロセッサにわたって適用されます。たとえば、PL/SQLジョブ制限が10の常時の稼働シフトが作業割当てに含まれているとします。その作業割当てが3つのリクエスト・プロセッサにバインドされている場合、10個のPL/SQL非同期ワーカーが3つのリクエスト・プロセッサによって共有され、最大で10個のPL/SQLジョブがその作業割当てでアクティブになります。
非同期ジョブは、前処理の開始からファイナライズの前に、非同期ワーカーを予約および保持します。前処理が遅延した場合、非同期ワーカーは、遅延中はリリースされ、遅延が終了したときに予約されます。サブリクエストを発行して一時停止したリクエストでは、非同期ワーカーがリリースされ、リクエストが再開されたときに非同期ワーカーが予約されます。BLOCKEDのリクエストでは、非同期ワーカーは保持されません。
稼働シフトのスレッド割当てと非同期ジョブ制限を決める際は、その稼働シフトを使用する作業割当てに特殊化されるジョブのタイプに注意してください。
この項では、次の項目について説明します。
5.3.2.1 稼働シフトの作成または編集
稼働シフトの作成には、次が含まれます。
-
スケジュール: スケジュールを稼働シフトに関連付けます。
-
期間: 稼働シフトの期間を入力します。
-
スレッド割当て: 稼働シフトに割り当てるスレッド数を指定します。
-
非同期ジョブ制限: 作業割当てのためにアクティブにできる非同期のJavaジョブおよびPL/SQLジョブの数の制限を指定します。
稼働シフトを作成または編集するには:
-
ナビゲーション・ペインで、「スケジューリング・サービス」フォルダを展開し、Oracle Enterprise Schedulerアプリケーションを選択します。
-
「スケジューリング・サービス」メニューから、「作業割当て」→「稼働シフト」を選択します。
「稼働シフト」ページが表示されます。
-
「作成」または「編集」ボタンをクリックして、稼働シフトを作成または編集します。
「稼働シフトの作成(または編集)」ページが表示されます。
-
稼働シフトの次の情報を入力します。
-
スケジュール名: 稼働シフトの名前を入力します。
-
スケジュールの説明: 稼働シフトの説明を入力します。
-
-
「アクティブな期間」セクションで、稼働シフトのアクティブな期間として次のいずれかを選択します。
-
常時アクティブ: 稼働シフトを常に有効にする場合に選択します。このオプションを選択すると、「期間」テキスト・フィールドが無効になります。
-
既存のスケジュールの使用: 以前に作成したスケジュールを使用して稼働シフトを有効化する場合に選択します。「参照」ボタンをクリックして「スケジュールの選択」ウィンドウを表示し、「名前」および「パッケージ」フィールドを使用してスケジュールを検索します。
「期間」テキスト・フィールドに稼働シフトの期間を分単位で入力します。
-
スケジュールの指定: 稼働シフトのスケジュールを作成する場合に選択します。表示されたテキスト・フィールドにスケジュールの名前と説明を入力します。
「頻度」ドロップダウン・リストから頻度を選択します。選択した頻度のアイテムに基づいて、異なるオプションが表示されます。
「タイムゾーン」ドロップダウン・リストからスケジュールのタイムゾーンを選択します。
「開始日」フィールドで、「カレンダ」ボタンをクリックして日時を選択します。
「期間」テキスト・フィールドに稼働シフトの期間を分単位で入力します。
-
-
「拡張」リージョンを展開します。スレッド割当てと非同期ジョブ制限を指定します。
-
「スレッド割当て」フィールドに、稼働シフトがアクティブのときにプロセッサに割り当てるスレッド数を入力します。アクティブな稼働シフトのスレッド割当ての合計が、使用可能なスレッド数を超える場合、スレッドは比例配分でこの稼働シフトに割り当てられます。
-
「非同期ジョブ制限」リージョンに、作業割当てに対してアクティブにすることができる非同期JavaジョブおよびPL/SQLジョブの数を入力します。この制限は、この作業割当てがバインドされているすべてのプロセッサにわたって適用されます。
-
-
「OK」をクリックして、稼働シフトを保存します。
5.3.3 スケジュールの管理
スケジュールを使用して、開始時間および終了時間に加え、作業割当て、パージ・ポリシーの頻度を構成します。
注意:
スケジューリングされたジョブ・リクエスト実行の詳細は、「事前定義ジョブ・スケジュールの作成または編集」を参照してください。
この項では、次の項目について説明します。
5.3.3.1 スケジュールの作成
ジョブ・スケジュールは、実行の事前定義済の時間または繰返しを指定します。作業割当ておよびパージ・ポリシーのスケジュールは、ジョブ・スケジュールとは別に定義されます。ジョブ・スケジュールは、1つまたは複数のジョブに関連付けることができます。
スケジュールを作成する手順は、次のとおりです。
5.4 ジョブのメタデータ・セキュリティの管理
ジョブ・メタデータの作業に対して割り当てるアクセス・レベルを管理できます。
Fusion Middleware Controlを使用して、アプリケーションのリソースに対する権限を付与するポリシーを作成できます。
5.4.1 メタデータ・セキュリティ・アクション
特定のアクションをリソースに関連付け、それらの権限(または権限/リソースの組合せ)を特定のユーザー、グループまたはロールに付与することで、権限を付与します。
権限を付与するときには、指定したリソースに対してユーザーが実行できるアクションを指定します。表5-7に使用できるアクションを示します。
表5-7 メタデータ・セキュリティのためのアクションの付与
アクション | 効果 |
---|---|
|
ジョブ・メタデータを読み取ります。 |
|
ジョブ・リクエストを送信します。 |
|
メタデータを追加します。 |
|
メタデータを変更します。 |
|
メタデータを削除します。 |
権限を関連付けるリソースは、アプリケーションが認識できるエンティティ(エンティティに含まれているパッケージなど)として表現されます。そのリストには、Oracle Enterprise Schedulerで定義された項目に加え、自分またはアプリケーション開発者が定義した項目が含まれています。表5-8に、特定のリソースに特定のアクションの権限を付与したときの効果を例示します。
表5-8 セキュリティのためのサンプル権限付与
リソース | アクション | 効果 |
---|---|---|
|
|
単一のメタデータ項目に対してリクエストを送信する権限を付与します。 |
|
|
|
|
|
非定型発行権限を付与します。 |
|
|
制限のない権限を付与します |