JavaTM Platform
Standard Ed. 6

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. タイマー通知の送信時、タイマーは、すべての通知型の通知シーケンス番号を更新します。
  2. タイマーサービスは、Timer クラスがロードされたホストのシステム時間に依存しています。ホストのシステム時間が異なっていると、リスナーが正しい時刻に通知を受け取れないことがあります。こうした問題を避けるには、タイミングの必要なすべてのホストマシンのシステム時間を同期化します。
  3. 定期通知のデフォルトの動作は、Timer に指定されているように fixed-delay 実行スキーマです。fixed-rate 実行スキーマを使用するには、オーバーロードされた addNotification(String, String, Object, Date, long, long, boolean) メソッドを使用します。
  4. 通知リスナー全部が同じスレッドで実行される可能性があります。ほかのリスナーの処理を妨害したり、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<Integer> getAllNotificationIDs()
          通知リストに登録されているすべてのタイマー通知識別子を取得します。
 Date getDate(Integer id)
          タイマー通知に関連付けられた日付のコピーを取得します。
 Boolean getFixedRate(Integer id)
          定期通知を fixed-delay で実行するか fixed-rate で実行するかを示すフラグのコピーを取得します。
 int getNbNotifications()
          通知リストに登録されているタイマー通知の数を取得します。
 Long getNbOccurences(Integer id)
          タイマー通知に関連付けられた残りの発行数のコピーを取得します。
 Vector<Integer> 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 - 日付が null であるか、 間隔または発行数が負の値の場合
関連項目:
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 - 日付が null であるか、 間隔または発行数が負の値の場合
関連項目:
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 - 日付が null であるか、 間隔が負の値の場合

addNotification

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

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

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

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

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<Integer> getAllNotificationIDs()
通知リストに登録されているすべてのタイマー通知識別子を取得します。

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

getNotificationIDs

public Vector<Integer> 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 Platform
Standard Ed. 6

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

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