Timer and Work Manager API

TimerWorkManager
Oracle (bea) と IBMが共同作成した仕様。
TimerWorkManagerで、JavaEEアプリ内にEJBとサーブレットを同時プログラミングが可能になる。
※別名称をCommonJ。

CommonJ Timer API は、
作業を特定の間隔でスケジューリングする場合を想定したAPI。
CommonJ Work API は、
作業を優先順位に基づいて処理する場合を想定したAPI。

Timer API @commonj.timer package
アプリ内に定義された特定のリスナに対し、
アプリでタイマー通知コールバックをスケジューリングして受信できる。

Work Manager API @commonj.work
アプリでEJBまたはServlet内の作業の優先順位を決められる。
アプリは、複数の作業項目をコンテナ内部でプログラム的に実行できる。

Timer API
IF:
TimerManager
 管理対象の環境においてタイマーを作成及び使用するためのスレッドセーフなIFで
 アプリ内の全般的なスケジューリングする。
 デプロイメント記述子に定義すると
 そのインスタンスはローカルJava環境でJNDIルックアップでアクセス可能で、
 lookup()する度、TimerManagerの新しい論理インスタンスが返される。
 ※1アプリに複数のTimerManagerインスタンスを設定できる。
 TimerManager.schedule()でTimerListenerを特定の時刻に/間隔で実行するよう
 スケジューリングする。
 ―TimerManagerの中断/再開/停止
   TimerManager.suspend(): 中断
   ※中断中のタイマーは再開されるまで保留される。
   TimerManager.resume(): 再開
   TimerManager.stop(): 停止 (全アクティブタイマーの停止)
   ※stop()されたTimerManagerインスタンスは
    全てのTimerListenerインスタンスのモニタを停止する。
*TimerListener
 タイマー通知を受信するIFで、開発者が実装する。
*Timer
 TimerManagerを介してタイマーがスケジューリングされた時に返される。
 ローカルタイマーとクラスタワイドタイマーがある。
 -ローカルタイマー
  単一のサーバJVM内でスケジューリングされる。
  JVMが動作している限り動作し続け、JVMが終了すると失敗する。
 -クラスタワイドタイマー
  クラスタ内の各サーバを含む他のJVMを認識する。
  クラスタメンバの少なくとも1つが有効である限り、動作し続ける。
  ゆわゆるジョブスケジューラ。
  ※ジョブスケジューラでは以下メソッドはサポート外。
    -CancelTimerListener
    -StopTimerListener
    -TimerManager#suspend()
    -TimerManager#resume()
    -TimerManager#scheduleAtFixedRate()
    -TimerManager#stop()
    -TimerManager#waitForStop()
    -TimerManager#waitForSuspend()

□ジョブのキャンセル
ジョブは、プログラムまたは、AdministrationConsoleでキャンセルできる。
*プログラムでのキャンセル
 JobRuntimeMBean#cancel()を呼ぶ。
 *JobRuntimeMBeanの取得方法
   -方法1
     JobScheduler.schedule()で取得したTimerオブジェクトの
       toString()でID(スケジュールされたジョブID)を取得する。
     スケジュールされたジョブIDで
       JobSchedulerRuntimeMBean.getJob(id)を呼ぶ。
   -方法2
     JobSchedulerRuntimeMBean.getExecutedJobs()で
       少なくとも1回実行されたジョブのJobRunTimes配列を取得する。
 ※一度も実行されていないジョブはキャンセル出来ない。

□デバッグ
-Dweblogic.debug.DebugSingletonServices=true -Dweblogic.JobScheduler=true

Work API
1アプリ内での複数の作業項目の同時実行を可能にするAPI。
≒java.lang.Thread APIのコンテナ管理の代替機能。

IF:
WorkManager
*Work
*WorkItem
*WorkListener
*WorkEvent
*RemoteWorkItem

ref:
Timer and Work Manager API , dev2dev, Oracle / bea
http://otndnld.oracle.co.jp/document/products/wls/docs103/commonj/commonj.html

tag : Timer Work Manager WebLogic

2009-06-22 02:23 : j2ee : コメント : 0 : トラックバック : 0 :
コメントの投稿
非公開コメント

« next  ホーム  prev »

search

ad



counter


tag cloud

category cloud