JavaTM 2 Platform
Standard Ed. 5.0

javax.management.timer
クラス Timer

java.lang.Object
  上位を拡張 javax.management.NotificationBroadcasterSupport
      上位を拡張 javax.management.timer.Timer
すべての実装されたインタフェース:
MBeanRegistration, NotificationBroadcaster, NotificationEmitter, TimerMBean

public class Timer
extends NotificationBroadcasterSupport
implements TimerMBean, MBeanRegistration

タイマー MBean の実装を提供します。タイマー MBean は、指定された時間にアラームを発信することにより、タイマー通知を受信するリスナーとして登録されているすべてのリスナーを起動します。

このクラスは、日付の指定されたタイマー通知のリストを管理します。単一のメソッドで、必要な数の通知を追加または削除できます。タイマーから発行されたタイマー通知は、古くなると自動的にタイマー通知リストから削除されます。
定期的に繰り返す通知として、タイマー通知を追加できます。

注:

  1. sendPastNotifications フラグの状態とは無関係に、addNotification メソッドが呼び出される前のすべての通知が無視されます。
  2. タイマー通知の送信時、タイマーは、すべての通知型の通知シーケンス番号を更新します。
  3. タイマーサービスは、Timer クラスがロードされたホストのシステム時間に依存しています。ホストのシステム時間が異なっていると、リスナーが正しい時刻に通知を受け取れないことがあります。こうした問題を避けるには、タイミングの必要なすべてのホストマシンのシステム時間を同期化します。
  4. 定期通知のデフォルトの動作は、Timer に指定されているように fixed-delay 実行スキーマです。fixed-rate 実行スキーマを使用するには、オーバーロードされた addNotification(String, String, Object, Date, long, long, boolean) メソッドを使用します。
  5. 通知リスナー全部が同じスレッドで実行される可能性があります。ほかのリスナーの処理を妨害したり、fixed-delay 実行の規則性を乱すことがないように、これらのリスナーはすばやく実行する必要があります。NotificationBroadcasterSupport を参照してください。

導入されたバージョン:
1.5

フィールドの概要
static long ONE_DAY
          1 日のミリ秒数。
static long ONE_HOUR
          1 時間のミリ秒数。
static long ONE_MINUTE
          1 分のミリ秒数。
static long ONE_SECOND
          1 秒のミリ秒数。
static long ONE_WEEK
          1 週間のミリ秒数。
 
コンストラクタの概要
Timer()
          デフォルトのコンストラクタです。
 
メソッドの概要
 Integer addNotification(String type, String message, Object userData, Date date)
          指定された typemessage、および userData で新しいタイマー通知を作成し、これを指定の日付、間隔 null、および発行数とともに通知リストに挿入します。
 Integer addNotification(String type, String message, Object userData, Date date, long period)
          指定された typemessage、および userData で新しいタイマー通知を作成し、これを指定の日付、間隔、および発行数 null とともに通知リストに挿入します。
 Integer addNotification(String type, String message, Object userData, Date date, long period, long nbOccurences)
          指定された typemessage、および userData で新しいタイマー通知を作成し、これを指定の日付、間隔、および発行数とともに通知リストに挿入します。
 Integer addNotification(String type, String message, Object userData, Date date, long period, long nbOccurences, boolean fixedRate)
          指定された typemessage、および userData で新しいタイマー通知を作成し、これを指定の日付、間隔、および発行数とともに通知リストに挿入します。
 Vector getAllNotificationIDs()
          通知リストに登録されているすべてのタイマー通知識別子を取得します。
 Date getDate(Integer id)
          タイマー通知に関連付けられた日付のコピーを取得します。
 Boolean getFixedRate(Integer id)
          定期通知を fixed-delay で実行するか fixed-rate で実行するかを示すフラグのコピーを取得します。
 int getNbNotifications()
          通知リストに登録されているタイマー通知の数を取得します。
 Long getNbOccurences(Integer id)
          タイマー通知に関連付けられた残りの発行数のコピーを取得します。
 Vector getNotificationIDs(String type)
          指定された型に対応するすべてのタイマー通知識別子を取得します。
 MBeanNotificationInfo[] getNotificationInfo()
          この MBean が通知を送信するたびに、その通知の Java クラス名と通知型を示す配列を返します。
 String getNotificationMessage(Integer id)
          指定された識別子に対応するタイマー通知の詳細メッセージを取得します。
 String getNotificationType(Integer id)
          指定された識別子に対応するタイマー通知型を取得します。
 Object getNotificationUserData(Integer id)
          指定された識別子に対応するタイマー通知のユーザデータオブジェクトを取得します。
 Long getPeriod(Integer id)
          タイマー通知に関連付けられた間隔 (ミリ秒) のコピーを取得します。
 boolean getSendPastNotifications()
          タイマーが過去の通知を送信するかどうかを指定するフラグを取得します。
 boolean isActive()
          タイマー MBean がアクティブかどうかをテストします。
 boolean isEmpty()
          タイマー通知のリストが空かどうかを判定します。
 void postDeregister()
          MBean サーバから登録解除したあと、タイマー MBean が必要なオペレーションを実行できるようにします。
 void postRegister(Boolean registrationDone)
          MBean サーバへの登録が成功または失敗したあと、タイマー MBean が必要なオペレーションを実行できるようにします。
 void preDeregister()
          MBean サーバから登録解除する前に、タイマー MBean が必要なオペレーションを実行できるようにします。
 ObjectName preRegister(MBeanServer server, ObjectName name)
          MBean サーバに登録する前に、タイマー MBean が必要なオペレーションを実行できるようにします。
 void removeAllNotifications()
          通知リストからすべてのタイマー通知を削除し、タイマー通知識別子を更新するためのカウンタをリセットします。
 void removeNotification(Integer id)
          指定された識別子に対応するタイマー通知を通知リストから削除します。
 void removeNotifications(String type)
          指定された型に対応するすべてのタイマー通知を通知リストから削除します。
 void setSendPastNotifications(boolean value)
          タイマーが過去の通知を送信するかどうかを指定するフラグを設定します。
 void start()
          タイマーを起動します。
 void stop()
          タイマーを停止します。
 
クラス javax.management.NotificationBroadcasterSupport から継承されたメソッド
addNotificationListener, handleNotification, removeNotificationListener, removeNotificationListener, sendNotification
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

ONE_SECOND

public static final long ONE_SECOND
1 秒のミリ秒数。addNotification メソッドで使用される定数

関連項目:
定数フィールド値

ONE_MINUTE

public static final long ONE_MINUTE
1 分のミリ秒数。addNotification メソッドで使用される定数

関連項目:
定数フィールド値

ONE_HOUR

public static final long ONE_HOUR
1 時間のミリ秒数。addNotification メソッドで使用される定数

関連項目:
定数フィールド値

ONE_DAY

public static final long ONE_DAY
1 日のミリ秒数。addNotification メソッドで使用される定数

関連項目:
定数フィールド値

ONE_WEEK

public static final long ONE_WEEK
1 週間のミリ秒数。addNotification メソッドで使用される定数

関連項目:
定数フィールド値
コンストラクタの詳細

Timer

public Timer()
デフォルトのコンストラクタです。

メソッドの詳細

preRegister

public ObjectName preRegister(MBeanServer server,
                              ObjectName name)
                       throws Exception
MBean サーバに登録する前に、タイマー MBean が必要なオペレーションを実行できるようにします。

このコンテキストでは使用しません。

定義:
インタフェース MBeanRegistration 内の preRegister
パラメータ:
server - MBean サーバ。タイマー MBean はここに登録される
name - タイマー MBean のオブジェクト名
戻り値:
登録済みタイマー MBean の名前
例外:
Exception -

postRegister

public void postRegister(Boolean registrationDone)
MBean サーバへの登録が成功または失敗したあと、タイマー MBean が必要なオペレーションを実行できるようにします。

このコンテキストでは使用しません。

定義:
インタフェース MBeanRegistration 内の postRegister
パラメータ:
registrationDone - MBean が MBean サーバに正常に登録されたかどうかを示す。登録に失敗した場合の値は false

preDeregister

public void preDeregister()
                   throws Exception
MBean サーバから登録解除する前に、タイマー MBean が必要なオペレーションを実行できるようにします。

タイマーを停止します。

定義:
インタフェース MBeanRegistration 内の preDeregister
例外:
Exception -

postDeregister

public void postDeregister()
MBean サーバから登録解除したあと、タイマー MBean が必要なオペレーションを実行できるようにします。

このコンテキストでは使用しません。

定義:
インタフェース MBeanRegistration 内の postDeregister

getNotificationInfo

public MBeanNotificationInfo[] getNotificationInfo()
インタフェース NotificationBroadcaster の記述:

この MBean が通知を送信するたびに、その通知の Java クラス名と通知型を示す配列を返します。

MBean が、この配列に記述されていない通知を送信することはできません。ただし、一部の MBean サーバクライアントは、現在の機能によって完成する配列に依存している場合があります。

定義:
インタフェース NotificationBroadcaster 内の getNotificationInfo
オーバーライド:
クラス NotificationBroadcasterSupport 内の getNotificationInfo
戻り値:
通知の配列

start

public void start()
タイマーを起動します。

通知リスト内に、その時間より前に発行されたタイマー通知が 1 つ以上ある場合、この通知は sendPastNotifications フラグに従って送信され、間隔と残りの発行数に従って更新されます。タイマー通知の日付が現在の日付より前の場合、この通知は通知リストから削除されます。

定義:
インタフェース TimerMBean 内の start

stop

public void stop()
タイマーを停止します。

定義:
インタフェース TimerMBean 内の stop

addNotification

public Integer addNotification(String type,
                               String message,
                               Object userData,
                               Date date,
                               long period,
                               long nbOccurences,
                               boolean fixedRate)
                        throws IllegalArgumentException
指定された typemessage、および userData で新しいタイマー通知を作成し、これを指定の日付、間隔、および発行数とともに通知リストに挿入します。

挿入されるタイマー通知の日付が現在の日付より前の場合、このメソッドは、指定された日付が現在の日付であるとして動作します。
1 回だけの通知は、ただちに配信されます。
定期的な通知の場合、最初の通知はただちに配信され、以降の通知は間隔パラメータで指定された間隔で配信されます。

タイマー通知が通知リストに追加されたあと、関連付けられた日付、間隔、および発行数を更新することはできません。

定期通知の場合、Timer に指定されているように、fixedRate パラメータの値が実行スキーマの指定に使用されます。

定義:
インタフェース TimerMBean 内の addNotification
パラメータ:
type - タイマー通知型
message - タイマー通知の詳細メッセージ
userData - タイマー通知のユーザデータオブジェクト
date - 通知が発行される日付
period - タイマー通知の間隔 (ミリ秒)
nbOccurences - 発行されるタイマー通知の合計数
fixedRate - true であり、定期通知である場合、fixed-rate 実行スキーマでスケジュールされる。false であり、定期通知である場合、fixed-delay 実行スキーマでスケジュールされる。定期通知でない場合は無視される
戻り値:
新しく作成されたタイマー通知の識別子
例外:
IllegalArgumentException - 間隔または発行数が負の値の場合
関連項目:
addNotification(String, String, Object, Date, long, long)

addNotification

public Integer addNotification(String type,
                               String message,
                               Object userData,
                               Date date,
                               long period,
                               long nbOccurences)
                        throws IllegalArgumentException
指定された typemessage、および userData で新しいタイマー通知を作成し、これを指定の日付、間隔、および発行数とともに通知リストに挿入します。

挿入されるタイマー通知の日付が現在の日付より前の場合、このメソッドは、指定された日付が現在の日付であるとして動作します。
1 回だけの通知は、ただちに配信されます。
定期的な通知の場合、最初の通知はただちに配信され、以降の通知は間隔パラメータで指定された間隔で配信されます。

タイマー通知が通知リストに追加されたあと、関連付けられた日付、間隔、および発行数を更新することはできません。

定期通知の場合、Timer に指定されているように fixed-delay 実行スキーマを使用します。fixed-rate 実行スキーマを使用するには、代わりに addNotification(String, String, Object, Date, long, long, boolean) を使用します。

定義:
インタフェース TimerMBean 内の addNotification
パラメータ:
type - タイマー通知型
message - タイマー通知の詳細メッセージ
userData - タイマー通知のユーザデータオブジェクト
date - 通知が発行される日付
period - タイマー通知の間隔 (ミリ秒)
nbOccurences - 発行されるタイマー通知の合計数
戻り値:
新しく作成されたタイマー通知の識別子
例外:
IllegalArgumentException - 間隔または発行数が負の値の場合
関連項目:
addNotification(String, String, Object, Date, long, long, boolean)

addNotification

public Integer addNotification(String type,
                               String message,
                               Object userData,
                               Date date,
                               long period)
                        throws IllegalArgumentException
指定された typemessage、および userData で新しいタイマー通知を作成し、これを指定の日付、間隔、および発行数 null とともに通知リストに挿入します。

タイマー通知は、Timer に指定されているように、fixed-delay 実行スキーマを使用するタイマー間隔で連続的に繰り返されます。fixed-rate 実行スキーマを使用するには、代わりに addNotification(String, String, Object, Date, long, long, boolean) を使用します。

挿入されるタイマー通知の日付が現在の日付より前の場合、このメソッドは、指定された日付が現在の日付であるとして動作します。最初の通知はただちに配信され、以降の通知は間隔パラメータで指定された間隔で配信されます。

定義:
インタフェース TimerMBean 内の addNotification
パラメータ:
type - タイマー通知型
message - タイマー通知の詳細メッセージ
userData - タイマー通知のユーザデータオブジェクト
date - 通知が発行される日付
period - タイマー通知の間隔 (ミリ秒)
戻り値:
新しく作成されたタイマー通知の識別子
例外:
IllegalArgumentException - 日付が負の値か、通知の日付が現在の日付より前

addNotification

public Integer addNotification(String type,
                               String message,
                               Object userData,
                               Date date)
                        throws IllegalArgumentException
指定された typemessage、および userData で新しいタイマー通知を作成し、これを指定の日付、間隔 null、および発行数とともに通知リストに挿入します。

タイマー通知は指定された日付にまとめて処理されます。

挿入されるタイマー通知の日付が現在の日付より前の場合、このメソッドは、指定された日付が現在の日付であるとして動作します。通知はただちに配信されます。

定義:
インタフェース TimerMBean 内の addNotification
パラメータ:
type - タイマー通知型
message - タイマー通知の詳細メッセージ
userData - タイマー通知のユーザデータオブジェクト
date - 通知が発行される日付
戻り値:
新しく作成されたタイマー通知の識別子
例外:
IllegalArgumentException - 通知の日付が現在の日付より前

removeNotification

public void removeNotification(Integer id)
                        throws InstanceNotFoundException
指定された識別子に対応するタイマー通知を通知リストから削除します。

定義:
インタフェース TimerMBean 内の removeNotification
パラメータ:
id - タイマー通知識別子
例外:
InstanceNotFoundException - このタイマー MBean の通知リスト内に、指定された識別子に対応するタイマー通知が存在しない

removeNotifications

public void removeNotifications(String type)
                         throws InstanceNotFoundException
指定された型に対応するすべてのタイマー通知を通知リストから削除します。

定義:
インタフェース TimerMBean 内の removeNotifications
パラメータ:
type - タイマー通知型
例外:
InstanceNotFoundException - このタイマー MBean の通知リスト内に、指定された型に対応するタイマー通知が存在しない

removeAllNotifications

public void removeAllNotifications()
通知リストからすべてのタイマー通知を削除し、タイマー通知識別子を更新するためのカウンタをリセットします。

定義:
インタフェース TimerMBean 内の removeAllNotifications

getNbNotifications

public int getNbNotifications()
通知リストに登録されているタイマー通知の数を取得します。

定義:
インタフェース TimerMBean 内の getNbNotifications
戻り値:
タイマー通知の数

getAllNotificationIDs

public Vector getAllNotificationIDs()
通知リストに登録されているすべてのタイマー通知識別子を取得します。

定義:
インタフェース TimerMBean 内の getAllNotificationIDs
戻り値:
すべてのタイマー通知識別子を含む Integer オブジェクトのべクトル。
このタイマー MBean にタイマー通知が登録されていない場合は空

getNotificationIDs

public Vector getNotificationIDs(String type)
指定された型に対応するすべてのタイマー通知識別子を取得します。

定義:
インタフェース TimerMBean 内の getNotificationIDs
パラメータ:
type - タイマー通知型
戻り値:
指定された type のすべてのタイマー通知識別子を含む Integer オブジェクトのべクトル。
このタイマー MBean に指定された type のタイマー通知が登録されていない場合は空

getNotificationType

public String getNotificationType(Integer id)
指定された識別子に対応するタイマー通知型を取得します。

定義:
インタフェース TimerMBean 内の getNotificationType
パラメータ:
id - タイマー通知識別子
戻り値:
タイマー通知型。識別子がこのタイマー MBean に登録されたタイマー通知に対応していない場合は null

getNotificationMessage

public String getNotificationMessage(Integer id)
指定された識別子に対応するタイマー通知の詳細メッセージを取得します。

定義:
インタフェース TimerMBean 内の getNotificationMessage
パラメータ:
id - タイマー通知識別子
戻り値:
タイマー通知の詳細メッセージ。識別子がこのタイマー MBean に登録されたタイマー通知に対応していない場合は null

getNotificationUserData

public Object getNotificationUserData(Integer id)
指定された識別子に対応するタイマー通知のユーザデータオブジェクトを取得します。

定義:
インタフェース TimerMBean 内の getNotificationUserData
パラメータ:
id - タイマー通知識別子
戻り値:
タイマー通知のユーザデータオブジェクト。識別子がこのタイマー MBean に登録されたタイマー通知に対応していない場合は null

getDate

public Date getDate(Integer id)
タイマー通知に関連付けられた日付のコピーを取得します。

定義:
インタフェース TimerMBean 内の getDate
パラメータ:
id - タイマー通知識別子
戻り値:
日付のコピー。識別子がこのタイマー MBean に登録されたタイマー通知に対応していない場合は null

getPeriod

public Long getPeriod(Integer id)
タイマー通知に関連付けられた間隔 (ミリ秒) のコピーを取得します。

定義:
インタフェース TimerMBean 内の getPeriod
パラメータ:
id - タイマー通知識別子
戻り値:
間隔のコピー。識別子がこのタイマー MBean に登録されたタイマー通知に対応していない場合は null

getNbOccurences

public Long getNbOccurences(Integer id)
タイマー通知に関連付けられた残りの発行数のコピーを取得します。

定義:
インタフェース TimerMBean 内の getNbOccurences
パラメータ:
id - タイマー通知識別子
戻り値:
残りの発行数のコピー。識別子がこのタイマー MBean に登録されたタイマー通知に対応していない場合は null

getFixedRate

public Boolean getFixedRate(Integer id)
定期通知を fixed-delay で実行するか fixed-rate で実行するかを示すフラグのコピーを取得します。

定義:
インタフェース TimerMBean 内の getFixedRate
パラメータ:
id - タイマー通知識別子
戻り値:
定期通知を fixed-delay で実行するか fixed-rate で実行するかを示すフラグのコピー

getSendPastNotifications

public boolean getSendPastNotifications()
タイマーが過去の通知を送信するかどうかを指定するフラグを取得します。
過去の通知を送信するかどうかを指定するフラグのデフォルト値は false です。

定義:
インタフェース TimerMBean 内の getSendPastNotifications
戻り値:
過去の通知を送信するかどうかを指定するフラグ値
関連項目:
setSendPastNotifications(boolean)

setSendPastNotifications

public void setSendPastNotifications(boolean value)
タイマーが過去の通知を送信するかどうかを指定するフラグを設定します。
過去の通知を送信するかどうかを指定するフラグのデフォルト値は false です。

定義:
インタフェース TimerMBean 内の setSendPastNotifications
パラメータ:
value - 過去の通知を送信するかどうかを指定するフラグ値
関連項目:
getSendPastNotifications()

isActive

public boolean isActive()
タイマー MBean がアクティブかどうかをテストします。タイマー MBean は、start メソッドが呼び出されるとアクティブになり、stop メソッドが呼び出されると非アクティブになります。
アクティブと非アクティブの切り替えフラグのデフォルト値は false です。

定義:
インタフェース TimerMBean 内の isActive
戻り値:
タイマー MBean がアクティブな場合は true、そうでない場合は false

isEmpty

public boolean isEmpty()
タイマー通知のリストが空かどうかを判定します。

定義:
インタフェース TimerMBean 内の isEmpty
戻り値:
タイマー通知のリストが空の場合は true、そうでない場合は false

JavaTM 2 Platform
Standard Ed. 5.0

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java 2 SDK SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。