BEA ホーム | 製品 | dev2dev | support | askBEA
 ドキュメントのダウンロード   サイト マップ   Glossary 
検索

WebLogic Time Services プログラマーズ ガイド

 Previous Next Contents PDF で侮ヲ  

WebLogic Time サービス(非推奨)のプログラミング

WebLogic Time API は、将来の日付と時刻に発生するか、またはスケジュール通りに定期的に繰り返すアクション(トリガ)をスケジューリングするためのメカニズムを提供します。以下の節では、Time サービスの機能について概説します。

 


Time サービスの非推奨について

WebLogic Time サービスは、WebLogic Server バージョン 6.1 より非推奨になりました。サードパーティのスケジューリング サービスについては、『 WebLogic Server ツール』の「J2EE スケジューリング ツール」を参照してください。

BEA Systems, Inc. では、WebLogic Server に含まれる、JMX タイマ サービスの実装である javax.management.timer.Timer の使用をお勧めします。詳細とマニュアルについては、『JavaTM Management Extensions(JMX)』を参照してください。

 


概要

Time API を使用すると、クライアントの JVM 内か、またはクライアントに代わって WebLogic Server 上で、ユーザが記述した任意のトリガをスケジューリングして実行できます。Time API は、自動的に発生するアクションを設定するための信頼できる分散可能な方法を提供します。

注意: Time サービスはクラスタ内の個々の WebLogic Server で使用できますが、サービス自体はクラスタ化できません。WebLogic Time API は、ロード バランシングやフェイル オーバなどのクラスタ機能を利用しません。

 


WebLogic Time のアーキテクチャ

WebLogic Time は、他の WebLogic Server API と多くの特性を共有する軽量で効率的な API です。WebLogic Time は、Schedulable オブジェクトから作成される ScheduledTriggerDef オブジェクトに基づいて構築されています。ScheduledTriggerDef オブジェクトは、アクションのスケジュールの開始、停止、または反復を実行します。Triggerable オブジェクトは、スケジュールに従って実行されるアクションを定義します。オブジェクト ファクトリを使用すると、ScheduledTrigger を作成できます。オブジェクト ファクトリは、WebLogic Server 内の少ないリソースを管理するための明確で使いやすい手法を提供します。

スケジュールの情報は、効率的にリンクされた一連のリストに保持されます。このリストは、新しいトリガがスケジューリングされ、実行されるときから最も近い時点でのみソートされます。たとえば、火曜日の 12:15:30 から 1 週間のトリガをスケジューリングした場合、これは最初は単純に次の火曜日のスケジュールに挿入されます。火曜日の正午になると正午 12 時のスケジュールがソートされ、12 時 15 分になるとその時刻(分)のトリガがソートされます。このようにすることで、非常に多くのスケジュールが設定されている環境で、スケジューリングのオーバーヘッドが大幅に削減されます。

また、WebLogic Server は、Time サービスのユーザ間でのタイムゾーン、クロック精度、およびレイテンシの差異を絶えず調整します。WebLogic トリガは、ミリ秒の精度で使用できるリアル タイム トリガではありません。WebLogic トリガは正常に使用すると、およそ 1 秒以内の精度で確実に機能します。

 


WebLogic Time API

ScheduledTrigger は、そのコンストラクタで以下の 2 つのオブジェクトを使用します。

ScheduledTrigger オブジェクト ファクトリ メソッドに渡されるオブジェクトも、クライアントサイド オブジェクトの場合があります。この場合、WebLogic クライアントはそれ自身の JVM 内で ScheduledTrigger を作成、スケジューリング、および実行します。クライアントサイド オブジェクトは、Schedulable (または ScheduleDef)および Triggerable (または TriggerDef)を実装しなければなりません。

TimeServicesDef インタフェースも、クライアントとサーバの時刻関連情報を取得するためのメソッドを提供します。

weblogic.time.common.TimeRepeat クラスは、Schedulable を実装します。このユーティリティ クラスは、反復トリガの設定に使用できる作成済みのスケジューラです。これを使用する場合は、トリガを繰り返す間隔(ミリ秒単位)を示す int を渡してから、その schedule() メソッドを開始時刻を指定して呼び出します。

警告: トリガが例外を送出した場合、そのトリガは再スケジューリングされません。これは、失敗したトリガが無期限に再実行されないようにするためです。例外の発生後にトリガを再スケジューリングする場合、その例外を取得してそのトリガを再びスケジューリングしなければなりません。

パッケージには、1 つの例外クラス、TimeTriggerException が含まれています。

 

Back to Top Previous Next