Oracle Enterprise Schedulerは柔軟であり、実装およびデプロイメント・オプションが用意されています。より簡単に実装でき、すぐに利用できるコンポーネントを使用するオプションや、より複雑であるものの多くの部分をカスタマイズできるオプションもあります。この章では、Oracle Enterprise Schedulerデプロイメントの計画時に考慮する必要がある様々なオプションについて説明します。
この章の内容は次のとおりです。
この項では、ジョブ開発プロセスのステップ、および各ステップで使用できるオプションについて説明します。
図2-1に、Oracle Enterprise Schedulerコンポーネントを表す図を示します。
ホスティング・アプリケーションを作成しデプロイします。次のオプションがあります。
ホスティング・アプリケーションを作成するのではなく、事前デプロイ済のネイティブ・ホスティング・アプリケーションを使用します。
Antスクリプトからホスティング・アプリケーションを生成しデプロイします。
JDeveloperを使用して最初から作成しデプロイします。
UIまたはクライアント・アプリケーションを作成しデプロイします。次のオプションがあります。
クライアント・アプリケーションでは、シン・クライアント共有ライブラリが使用されます。
クライアント・アプリケーションでは、クライアント・ライブラリが使用されます。
UIまたはクライアント・アプリケーションを作成するのではなく、Oracle Enterprise Manager Fusion Middleware Controlをクライアント・アプリケーションとして使用します。
ジョブ実装を作成しデプロイします。次のオプションがあります。
Javaベースではないジョブの場合、Oracle Enterprise Schedulerとは無関係なジョブを実装しデプロイできます。
Javaベースのジョブの場合、Javaクラスはカスタム・ホスティング・アプリケーションの一部である必要があります。
ジョブ・メタデータを作成します。次のオプションがあります。
Oracle Enterprise Manager Fusion Middleware Controlでメタデータを定義します。
Oracle JDeveloperを使用して、ホスティング・アプリケーションの一部としてデプロイメントの事前定義済/シード済のジョブ・メタデータを作成します。
メタデータ・サービスAPIを使用して、ジョブ・メタデータをプログラムにより作成します。
発行およびメタデータ権限をデプロイ済のジョブに指定します。次のオプションがあります。
Oracle Enterprise Manager Fusion Middleware Controlを使用して権限を指定します。
ホスティング・アプリケーションまたはクライアント・アプリケーションのEARデプロイメントの一部として権限をプロビジョニングします。
詳細は、「Oracle Enterprise Schedulerのセキュリティ」の章を参照してください。
ジョブは、ホスティング・アプリケーションのコンテキストで実行されます。ジョブがリモートの場合(EJBなど)、ジョブはホスティング・アプリケーションで起動されます。事前デプロイ済ネイティブ・アプリケーションは使用するのに便利ですが、カスタムJavaジョブを実行できません。
事前デプロイ済ネイティブ・ホスティング・アプリケーションは、EJBやWebサービス・ジョブなどのカスタム・リモート・ジョブに適しています。事前デプロイ済ネイティブ・ホスティング・アプリケーションの詳細は、「事前デプロイ済ネイティブ・ホスティング・アプリケーションの使用」を参照してください。
JDeveloperを使用したカスタム・ホスティング・アプリケーションの開発の詳細は、「Oracle JDeveloperを使用したOracle Enterprise Schedulerアプリケーションの生成」を参照してください。
Oracle Enterprise Scheduler Antスクリプトを使用したカスタム・ホスティング・アプリケーションの開発の詳細は、「ホスティング・アプリケーションを生成するためのAntの使用」を参照してください。
クライアント・アプリケーションは、シン・クライアント共有ライブラリまたはクライアント共有ライブラリを使用するJ2EEアプリケーションです。
クライアント・アプリケーションは、次の目的で通常使用されるJ2EEアプリケーションです。
ジョブの発行
ステータスのリクエスト
ジョブ出力およびログの読取り
場合によっては、Oracle Enterprise Schedulerがリモートで起動できるEJBジョブ実装のホスト
クライアント・アプリケーションは、ホスティング・アプリケーションと組み合せることができますが、こればベスト・プラクティスではありません。
Oracle Enterprise Schedulerサーバー以外のサーバーへのクライアント・アプリケーションのデプロイは拡張ユース・ケースであり、他のOracle埋込み製品でのみ使用可能なOracle Enterprise Scheduler内部テンプレートの使用を必要とします。
クライアント・アプリケーションでは、シン・クライアント共有ライブラリまたはクライアント共有ライブラリが使用されます。2つのライブラリの主な違いは次のとおりです。
シン・クライアント共有ライブラリは、Oracle Enterprise Schedulerサーバーまたはデプロイ中のいずれのOracle Enterprise Schedulerデータ・ソースにも依存せず、Oracle Enterprise Schedulerデプロイメントがオプションの場合に最良です。シン・クライアント共有ライブラリは、ホスティング・アプリケーションに接続され、Oracle Enterprise Schedulerメタデータおよびランタイム・ストアにアクセスして処理を行います。
クライアント共有ライブラリには利点があります。ライブラリにより、Oracle Enterprise Schedulerメタデータおよびランタイム・ストアへの直接アクセスが可能なため、Oracle Enterprise Schedulerサーバーは、ジョブの発行およびステータスの問合せを行うために実行中である必要がありません。クライアント・アプリケーションがOracle Enterprise Schedulerと同じWebLogic Server上に配置されている場合に使用することをお薦めします。
シン・クライアント共有ライブラリを使用したクライアント・アプリケーションの開発は、クライアント・アプリケーションがMDSとの対話にadf-config.xml
ファイルを必要とせず、クライアント共有ライブラリに必要なOracle Enterprise Scheduler EJBデプロイメント・ディスクリプタを持っているため、より簡単です。
メタデータがクライアント・アプリケーションによってデプロイメント時に自動的にプロビジョニングされない場合、シン・クライアント・アプリケーションは、Oracle Enterprise Scheduler MDSデータ・ソースに依存しません。
クライアント・アプリケーションの作成の詳細は、「シン・クライアント・アプリケーションの作成」を参照してください。
非Javaベース・ジョブ、Javaベース・ジョブおよびEJBジョブに対しては、異なるジョブ実装を使用します。
Javaベースではないジョブの場合(PL/SQLおよびバイナリ・プロセス・ジョブ)、Oracle Enterprise Schedulerとは無関係なプロセス・バイナリまたはPL/SQLプロシージャを実装、設定およびデプロイできます。
Javaベースのジョブの場合、Java実装はOracle Enterprise Scheduler定義済インタフェースに準拠している必要があり、カスタム・ホスティング・アプリケーションの一部として含まれている必要があります。
EJBジョブの場合、EJBインタフェースは、Oracle Enterprise Scheduler定義済インタフェースに準拠している必要があります。インタフェースは、Oracle Enterprise Scheduler共有ライブラリ内にあります。EJBジョブ実装を作成する方法の詳細は、「EJBジョブの作成と使用」を参照してください。
SOAコンポジットのWebサービス・ジョブ実装としての使用方法の詳細は、「Webサービス・ジョブの作成と使用」を参照してください。
ジョブ・メタデータを作成する最も簡単な方法は、Oracle Enterprise Manager Fusion Middleware Controlを介して定義する方法です。
また、JDeveloperを使用してメタデータを作成し、これをクライアントまたはホスティング・アプリケーションの一部であるMARアーカイブに配置し、アプリケーションのデプロイ時にメタデータをMDSにデプロイすることもできます。SOA Suiteでは、メタデータが、メタデータAPIを使用して最初の使用時にプログラムにより作成されます。
メタデータAPIの詳細は、「メタデータ・サービスの使用」を参照してください。
Oracle Enterprise Schedulerでは、ジョブ・リクエストおよびそのすべての子によって、発行からリクエストが最終状態に到達するまで一貫したメタデータ・スナップショットが使用されることが保証されます。これは、ジョブ・リクエストの発行時に、リクエストによって使用されることが認識されているすべてのメタデータをキャッシュすることで実現されます。ただし、このキャッシュにより、長時間実行される反復リクエストが重要なメタデータ変更を使用できなくなります。非互換性が予期したとおりに機能するようにするには、新規および更新された非互換性を、以前に発行されたか新たに発行されたかにかかわらず、関連するすべてのリクエストに適用する必要があります。ジョブ・メタデータの場合、カスタマイズ可能なパラメータは変更される可能性があり、以前に発行されたリクエストに適用する必要があります。たとえば、ジョブ定義のリクエスト・カテゴリが変更された場合、作業割当てが予期したとおりに機能するように、変更を前から存在するリクエストに適用する必要があります。
これらの問題に対処するために、Oracle Enterprise Schedulerは、以前に発行された次のリクエストに対してメタデータを自動的にリフレッシュします。
まだ実行されていないシングルトン・リクエスト
より多くの繰返しの実行がある反復リクエスト
キャッシュされたメタデータは、ジョブ・セット・ステップやサブリクエストなど、インスタンスの親およびそのすべての子リクエストで構成されるインスタンス・リクエスト・ツリーの実行中に一貫性が維持されます。シングルトン・リクエストの場合、インスタンス・リクエスト・ツリーには、発行されたリクエストおよびすべての子リクエストが含まれます。反復リクエストの場合、各繰返しは、インスタンスの親およびそのすべての子リクエストを含むインスタンス・リクエスト・ツリーです。