Oracle Application Server Containers for J2EEを使用すると、J2EEクライアントからOracle Containers for J2EE(OC4J)で実行される非同期の自律的なバックグラウンド・ジョブを発行できます。このコンポーネントの主な機能は次のとおりです。
ジョブを発行、制御、監視するためのAPI
ジョブの発行および制御にAPIレベルのJava Transaction API(JTA)をサポート
一時またはトリガーベースのジョブ
失敗したジョブの自動再試行
ジョブのブラックアウト・ウィンドウ
Oracle Application Server Containers for J2EEを監視および管理するためのJava Management Extensions(JMX)MBean
各種システム、エラー、警告メッセージの構成可能なロギング
この章では、Oracle Application Server Containers for J2EEの概要を説明します。次のトピックについて説明します。
ここでは、ジョブ・スケジューラを使用する前に理解しておく必要がある基本概念と用語を説明します。次のトピックについて説明します。
通知は、アプリケーションからトリガーに送信されるメッセージです。メッセージには、アプリケーションで発生した特定の条件に関する情報が含まれます。
通知を受信するのはトリガーです。各トリガーには、受信した通知に対して評価される条件の説明が含まれています。1つまたは複数のトリガーがtrueと評価された場合、条件に関連付けられたジョブが開始されます。
トリガーは論理式で説明され、オペランドは通知です。通知は、アプリケーションによってプログラム的に、またはタイマーの有効期限切れ(ジョブが指定された時間までに実行されなかった場合など)の結果として生成されます。通知は特定の1つのトリガーまたはトリガーのセットに送信されます。ただし、トリガーが通知を受信しても通知は生成されません。
詳細は、第8章を参照してください。
スケジュールでは、タイムアウト通知を関連付けられたトリガーに送信する時間と期間または複数の期間を指定します。特定の時点は有効期限として、頻度は間隔として表されます。スケジュール・インスタンスは、単一アクション(繰り返さない)または繰返しとして分類できます。
スケジュールの詳細は、第3章を参照してください。
ブラックアウト・ウィンドウでは、すべてのジョブを抑止する期間を指定します。ブラックアウト・ウィンドウには、スケジュールと期間(金曜日の午後6時から午前0時までなど)が含まれます。ブラックアウト・ウィンドウは繰返しの場合もあります(毎週火曜日の午後6時から午後8時までなど)。
詳細は、第4章を参照してください。
この例では、アプリケーション開発者はアプリケーションのニーズに従って定期的に実行できるレポートを作成します。アプリケーションはレポートの実行リクエストを発行し、問合せ入力パラメータとレポートの実行頻度を指定します。
開発者は、execute()
メソッドとgetContext()
メソッドを使用して、ジョブ・スケジューラのExecutable
インタフェースを実装するクラスを作成します。execute()
メソッドは、開発者が作成し、ジョブ・スケジューラによってコールされます。アプリケーションは、システム提供のgetContext()
メソッドをコールして、入力パラメータを取得します。
ジョブの追加の詳細は、第2章を参照してください。
開発者は、ユーザーがレポート・リクエストの発行や取消し、発行されたリクエストのチェックを行うためのアプリケーションのクライアント・プログラムを作成します。リクエストを処理するために、クライアント・プログラムは、アプリケーションとともにデプロイされたスケジューラのEnterprise JavaBeans(EJB)への参照を取得します(ジョブ・スケジューラはステートレス・セッションEJBとしてデプロイされます)。クライアント・プログラムは、スタンドアロンのGUIまたはサーブレットとして、あるいは別のEJBから間接的に実装できます。
ジョブ・スケジューラ対応アプリケーションのデプロイの詳細は、第9章を参照してください。
ジョブを発行するには、java.util.Properties
クラスを使用してプログラム・パラメータを指定します。次に、Scheduler.add()
メソッドを使用して、特定の時間に実行されるジョブを発行します。
発行されたジョブを確認するには、Scheduler.getJobs()
メソッドを使用します。保留中のジョブと完了したジョブの両方が表示されます。
ジョブを削除するには、Scheduler.remove()
メソッドを使用します。このアクションにより、将来のジョブのスケジュールが終了します。
実行中のジョブを取り消すには、Scheduler.cancel()
メソッドを使用します。
ジョブの取消しの詳細は、第6章を参照してください。
開発者がパッケージ化するアプリケーションには、次のものが含まれます。
前述のクラス。
ジョブ・スケジューラEJBを参照するEJB JARファイル。このファイルは、ジョブの発行、問合せ、制御を行うためのメソッドを含む、事前に作成されたシステム提供のEJBです。
アプリケーションのクライアント部分。
詳細は、第9章を参照してください。