- java.lang.Object
-
- javax.management.NotificationBroadcasterSupport
-
- javax.management.timer.Timer
-
- すべての実装されたインタフェース:
MBeanRegistration,NotificationBroadcaster,NotificationEmitter,TimerMBean
public class Timer extends NotificationBroadcasterSupport implements TimerMBean, MBeanRegistration
タイマーMBeanの実装を提供します。 タイマーMBeanは、指定された時間にアラームを発信することにより、タイマー通知を受信するリスナーとして登録されているすべてのリスナーを起動します。このクラスは、日付の指定されたタイマー通知のリストを管理します。 単一のメソッドで、必要な数の通知を追加または削除できます。 タイマーから発行されたタイマー通知は、古くなると自動的にタイマー通知リストから削除されます。
定期的に繰り返す通知として、タイマー通知を追加できます。注:
- タイマー通知の送信時、タイマーは、すべての通知タイプの通知シーケンス番号を更新します。
- タイマー・サービスは、
Timerクラスがロードされたホストのシステム時間に依存しています。 ホストのシステム時間が異なっていると、リスナーが正しい時間に通知を受け取れないことがあります。 こうした問題を避けるには、タイミングの必要なすべてのホスト・マシンのシステム時間を同期化します。 - 定期通知のデフォルトの動作は、
Timerに指定されているようにfixed-delay実行です。 fixed-rate実行を使用するには、オーバーロードされたaddNotification(String, String, Object, Date, long, long, boolean)メソッドを使用します。 - 通知リスナー全部が同じスレッドで実行される可能性があります。 ほかのリスナーの処理を妨害したり、fixed-delay実行の規則性を乱すことがないように、これらのリスナーはすばやく実行する必要があります。
NotificationBroadcasterSupportを参照してください。
- 導入されたバージョン:
- 1.5
-
-
フィールドのサマリー
フィールド 修飾子と型 フィールド 説明 static longONE_DAY1日のミリ秒数。static longONE_HOUR1時間のミリ秒数。static longONE_MINUTE1分のミリ秒数。static longONE_SECOND1秒のミリ秒数。static longONE_WEEK1週間のミリ秒数。
-
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 Timer()デフォルトのコンストラクタです。
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 具象メソッド 修飾子と型 メソッド 説明 IntegeraddNotification(String type, String message, Object userData, Date date)指定されたtype、message、およびuserDataで新しいタイマー通知を作成し、これを指定の日付、間隔null、およびオカレンス数とともに通知リストに挿入します。IntegeraddNotification(String type, String message, Object userData, Date date, long period)指定されたtype、message、およびuserDataで新しいタイマー通知を作成し、これを指定の日付、間隔null、およびオカレンス数とともに通知リストに挿入します。IntegeraddNotification(String type, String message, Object userData, Date date, long period, long nbOccurences)指定されたtype、message、およびuserDataで新しいタイマー通知を作成し、これを指定の日付、間隔、およびオカレンス数とともに通知リストに挿入します。IntegeraddNotification(String type, String message, Object userData, Date date, long period, long nbOccurences, boolean fixedRate)指定されたtype、message、およびuserDataで新しいタイマー通知を作成し、これを指定の日付、間隔、およびオカレンス数とともに通知リストに挿入します。Vector<Integer>getAllNotificationIDs()通知リストに登録されているすべてのタイマー通知識別子を取得します。DategetDate(Integer id)タイマー通知に関連付けられている日付のコピーを取得します。BooleangetFixedRate(Integer id)定期通知をfixed-delayで実行するかfixed-rateで実行するかを示すフラグのコピーを取得します。intgetNbNotifications()通知リストに登録されているタイマー通知の数を取得します。LonggetNbOccurences(Integer id)タイマー通知に関連付けられている残りの発行数のコピーを取得します。Vector<Integer>getNotificationIDs(String type)指定されたタイプに対応するすべてのタイマー通知識別子を取得します。StringgetNotificationMessage(Integer id)指定された識別子に対応するタイマー通知の詳細メッセージを取得します。StringgetNotificationType(Integer id)指定された識別子に対応するタイマー通知タイプを取得します。ObjectgetNotificationUserData(Integer id)指定された識別子に対応するタイマー通知のユーザー・データ・オブジェクトを取得します。LonggetPeriod(Integer id)タイマー通知に関連付けられている間隔(ミリ秒)のコピーを取得します。booleangetSendPastNotifications()タイマーが過去の通知を送信するかどうかを示すフラグを取得します。booleanisActive()タイマーMBeanがアクティブかどうかをテストします。booleanisEmpty()タイマー通知のリストが空かどうかを判定します。voidpostDeregister()MBeanサーバーから登録解除したあと、タイマーMBeanが必要なオペレーションを実行できるようにします。voidpostRegister(Boolean registrationDone)MBeanサーバーへの登録が成功または失敗したあと、タイマーMBeanが必要なオペレーションを実行できるようにします。voidpreDeregister()MBeanサーバーから登録解除する前に、タイマーMBeanが必要なオペレーションを実行できるようにします。ObjectNamepreRegister(MBeanServer server, ObjectName name)MBeanサーバーに登録する前に必要なオペレーションをタイマーMBeanが実行することを許可します。voidremoveAllNotifications()通知リストからすべてのタイマー通知を削除し、タイマー通知識別子を更新するためのカウンタをリセットします。voidremoveNotification(Integer id)指定された識別子に対応するタイマー通知を通知リストから削除します。voidremoveNotifications(String type)指定されたタイプに対応するすべてのタイマー通知を通知リストから削除します。voidsetSendPastNotifications(boolean value)タイマーが過去の通知を送信するかどうかを示すフラグを設定します。voidstart()タイマーを起動します。voidstop()タイマーを停止します。-
インタフェース javax.management.NotificationBroadcasterで宣言されたメソッド
getNotificationInfo, removeNotificationListener
-
クラス javax.management.NotificationBroadcasterSupportで宣言されたメソッド
addNotificationListener, handleNotification, sendNotification
-
インタフェース javax.management.NotificationEmitterで宣言されたメソッド
removeNotificationListener
-
-
-
-
フィールドの詳細
-
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メソッドで使用される定数。- 関連項目:
- 定数フィールド値
-
-
メソッドの詳細
-
preRegister
public ObjectName preRegister(MBeanServer server, ObjectName name) throws Exception
MBeanサーバーに登録する前に必要なオペレーションをタイマーMBeanが実行することを許可します。このコンテキストでは使用しません。
- 定義:
preRegister、インタフェース:MBeanRegistration- パラメータ:
server- MBeanサーバー。タイマーMBeanはここに登録される。name- タイマーMBeanのオブジェクト名。- 戻り値:
- 登録済みタイマーMBeanの名前。
- 例外:
Exception- 何かがうまくいかない場合
-
postRegister
public void postRegister(Boolean registrationDone)
MBeanサーバーへの登録が成功または失敗したあと、タイマーMBeanが必要なオペレーションを実行できるようにします。このコンテキストでは使用しません。
- 定義:
postRegister、インタフェース:MBeanRegistration- パラメータ:
registrationDone- MBeanがMBeanサーバーに正常に登録されたかどうかを示す。 登録に失敗した場合の値はfalse。
-
preDeregister
public void preDeregister() throws ExceptionMBeanサーバーから登録解除する前に、タイマーMBeanが必要なオペレーションを実行できるようにします。タイマーを停止します。
- 定義:
preDeregister、インタフェース:MBeanRegistration- 例外:
Exception- 何かがうまくいかない場合
-
postDeregister
public void postDeregister()
MBeanサーバーから登録解除したあと、タイマーMBeanが必要なオペレーションを実行できるようにします。このコンテキストでは使用しません。
- 定義:
postDeregister、インタフェース:MBeanRegistration
-
start
public void start()
タイマーを起動します。通知リスト内に、その時間より前に発行されたタイマー通知が1つ以上ある場合、この通知は
sendPastNotificationsフラグに従って送信され、間隔と残りの発行数に従って更新されます。 タイマー通知の日付が現在の日付より前の場合、この通知は通知リストから削除されます。- 定義:
start、インタフェース:TimerMBean
-
stop
public void stop()
タイマーを停止します。- 定義:
stop、インタフェース:TimerMBean
-
addNotification
public Integer addNotification(String type, String message, Object userData, Date date, long period, long nbOccurences, boolean fixedRate) throws IllegalArgumentException
指定されたtype、message、およびuserDataで新しいタイマー通知を作成し、これを指定の日付、間隔、およびオカレンス数とともに通知リストに挿入します。挿入されるタイマー通知の日付が現在の日付より前の場合、このメソッドは、指定された日付が現在の日付であるとして動作します。
1回だけの通知は、ただちに配信されます。
定期的な通知の場合、最初の通知はただちに配信され、以降の通知は間隔パラメータで指定された間隔で配信されます。タイマー通知が通知リストに追加されたあと、関連付けられている日付、間隔、および発行数を更新することはできません。
定期通知の場合、
Timerに指定されているように、fixedRateパラメータの値が実行スキームの指定に使用されます。- 定義:
addNotification、インタフェース:TimerMBean- パラメータ:
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
指定されたtype、message、およびuserDataで新しいタイマー通知を作成し、これを指定の日付、間隔、およびオカレンス数とともに通知リストに挿入します。挿入されるタイマー通知の日付が現在の日付より前の場合、このメソッドは、指定された日付が現在の日付であるとして動作します。
1回だけの通知は、ただちに配信されます。
定期的な通知の場合、最初の通知はただちに配信され、以降の通知は間隔パラメータで指定された間隔で配信されます。タイマー通知が通知リストに追加されたあと、関連付けられている日付、間隔、および発行数を更新することはできません。
定期通知の場合、
Timerに指定されているようにfixed-delay実行スキームを使用します。 fixed-rate実行スキームを使用するには、代わりにaddNotification(String, String, Object, Date, long, long, boolean)を使用します。- 定義:
addNotification、インタフェース:TimerMBean- パラメータ:
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
指定されたtype、message、およびuserDataで新しいタイマー通知を作成し、これを指定の日付、間隔null、およびオカレンス数とともに通知リストに挿入します。タイマー通知は、
Timerに指定されているように、fixed-delay実行スキームを使用するタイマー間隔で連続的に繰り返されます。 fixed-rate実行スキームを使用するには、代わりにaddNotification(String, String, Object, Date, long, long, boolean)を使用します。挿入されるタイマー通知の日付が現在の日付より前の場合、このメソッドは、指定された日付が現在の日付であるとして動作します。 最初の通知はただちに配信され、以降の通知は間隔パラメータで指定された間隔で配信されます。
- 定義:
addNotification、インタフェース:TimerMBean- パラメータ:
type- タイマー通知タイプ。message- タイマー通知の詳細メッセージ。userData- タイマー通知のユーザー・データ・オブジェクト。date- 通知が発行される日付。period- タイマー通知の間隔(ミリ秒)。- 戻り値:
- 新しく作成されたタイマー通知の識別子。
- 例外:
IllegalArgumentException- 日付がnullであるか、間隔が負の値の場合。
-
addNotification
public Integer addNotification(String type, String message, Object userData, Date date) throws IllegalArgumentException
指定されたtype、message、およびuserDataで新しいタイマー通知を作成し、これを指定の日付、間隔null、およびオカレンス数とともに通知リストに挿入します。タイマー通知は指定された日付にまとめて処理されます。
挿入されるタイマー通知の日付が現在の日付より前の場合、このメソッドは、指定された日付が現在の日付であるとして動作します。通知はただちに配信されます。
- 定義:
addNotification、インタフェース:TimerMBean- パラメータ:
type- タイマー通知タイプ。message- タイマー通知の詳細メッセージ。userData- タイマー通知のユーザー・データ・オブジェクト。date- 通知が発行される日付。- 戻り値:
- 新しく作成されたタイマー通知の識別子。
- 例外:
IllegalArgumentException- 日付がnullである場合。
-
removeNotification
public void removeNotification(Integer id) throws InstanceNotFoundException
指定された識別子に対応するタイマー通知を通知リストから削除します。- 定義:
removeNotification、インタフェース:TimerMBean- パラメータ:
id- タイマー通知識別子。- 例外:
InstanceNotFoundException- このタイマーMBeanの通知リスト内に、指定された識別子に対応するタイマー通知が存在しない。
-
removeNotifications
public void removeNotifications(String type) throws InstanceNotFoundException
指定されたタイプに対応するすべてのタイマー通知を通知リストから削除します。- 定義:
removeNotifications、インタフェース:TimerMBean- パラメータ:
type- タイマー通知タイプ。- 例外:
InstanceNotFoundException- このタイマーMBeanの通知リスト内に、指定されたタイプに対応するタイマー通知が存在しない。
-
removeAllNotifications
public void removeAllNotifications()
通知リストからすべてのタイマー通知を削除し、タイマー通知識別子を更新するためのカウンタをリセットします。- 定義:
removeAllNotifications、インタフェース:TimerMBean
-
getNbNotifications
public int getNbNotifications()
通知リストに登録されているタイマー通知の数を取得します。- 定義:
getNbNotifications、インタフェース:TimerMBean- 戻り値:
- タイマー通知の数。
-
getAllNotificationIDs
public Vector<Integer> getAllNotificationIDs()
通知リストに登録されているすべてのタイマー通知識別子を取得します。- 定義:
getAllNotificationIDs、インタフェース:TimerMBean- 戻り値:
- すべてのタイマー通知識別子を含む
Integerオブジェクトのベクトル。
このタイマーMBeanにタイマー通知が登録されていない場合は空。
-
getNotificationIDs
public Vector<Integer> getNotificationIDs(String type)
指定されたタイプに対応するすべてのタイマー通知識別子を取得します。- 定義:
getNotificationIDs、インタフェース:TimerMBean- パラメータ:
type- タイマー通知タイプ。- 戻り値:
- 指定された
typeのすべてのタイマー通知識別子を含むIntegerオブジェクトのベクトル。
このタイマーMBeanに指定されたtypeのタイマー通知が登録されていない場合は空。
-
getNotificationType
public String getNotificationType(Integer id)
指定された識別子に対応するタイマー通知タイプを取得します。- 定義:
getNotificationType、インタフェース:TimerMBean- パラメータ:
id- タイマー通知識別子。- 戻り値:
- タイマー通知タイプ。識別子がこのタイマーMBeanに登録されたタイマー通知に対応していない場合はnull。
-
getNotificationMessage
public String getNotificationMessage(Integer id)
指定された識別子に対応するタイマー通知の詳細メッセージを取得します。- 定義:
getNotificationMessage、インタフェース:TimerMBean- パラメータ:
id- タイマー通知識別子。- 戻り値:
- タイマー通知の詳細メッセージ。識別子がこのタイマーMBeanに登録されたタイマー通知に対応していない場合はnull。
-
getNotificationUserData
public Object getNotificationUserData(Integer id)
指定された識別子に対応するタイマー通知のユーザー・データ・オブジェクトを取得します。- 定義:
getNotificationUserData、インタフェース:TimerMBean- パラメータ:
id- タイマー通知識別子。- 戻り値:
- タイマー通知のユーザー・データ・オブジェクト。識別子がこのタイマーMBeanに登録されたタイマー通知に対応していない場合はnull。
-
getDate
public Date getDate(Integer id)
タイマー通知に関連付けられている日付のコピーを取得します。- 定義:
getDate、インタフェース:TimerMBean- パラメータ:
id- タイマー通知識別子。- 戻り値:
- 日付のコピー。識別子がこのタイマーMBeanに登録されたタイマー通知に対応していない場合はnull。
-
getPeriod
public Long getPeriod(Integer id)
タイマー通知に関連付けられている間隔(ミリ秒)のコピーを取得します。- 定義:
getPeriod、インタフェース:TimerMBean- パラメータ:
id- タイマー通知識別子。- 戻り値:
- 間隔のコピー。識別子がこのタイマーMBeanに登録されたタイマー通知に対応していない場合はnull。
-
getNbOccurences
public Long getNbOccurences(Integer id)
タイマー通知に関連付けられている残りの発行数のコピーを取得します。- 定義:
getNbOccurences、インタフェース:TimerMBean- パラメータ:
id- タイマー通知識別子。- 戻り値:
- 残りの発行数のコピー。識別子がこのタイマーMBeanに登録されたタイマー通知に対応していない場合はnull。
-
getFixedRate
public Boolean getFixedRate(Integer id)
定期通知をfixed-delayで実行するかfixed-rateで実行するかを示すフラグのコピーを取得します。- 定義:
getFixedRate、インタフェース:TimerMBean- パラメータ:
id- タイマー通知識別子。- 戻り値:
- 定期通知をfixed-delayで実行するかfixed-rateで実行するかを示すフラグのコピー。
-
getSendPastNotifications
public boolean getSendPastNotifications()
タイマーが過去の通知を送信するかどうかを示すフラグを取得します。
過去の通知を送信するかどうかを指定するフラグのデフォルト値はfalseです。- 定義:
getSendPastNotifications、インタフェース:TimerMBean- 戻り値:
- 過去の通知を送信するかどうかを指定するフラグ値。
- 関連項目:
setSendPastNotifications(boolean)
-
setSendPastNotifications
public void setSendPastNotifications(boolean value)
タイマーが過去の通知を送信するかどうかを示すフラグを設定します。
過去の通知を送信するかどうかを指定するフラグのデフォルト値はfalseです。- 定義:
setSendPastNotifications、インタフェース:TimerMBean- パラメータ:
value- 過去の通知を送信するかどうかを指定するフラグ値。- 関連項目:
getSendPastNotifications()
-
isActive
public boolean isActive()
タイマーMBeanがアクティブかどうかをテストします。 タイマーMBeanは、startメソッドが呼び出されるとアクティブになります。stopメソッドが呼び出されると非アクティブになります。
アクティブと非アクティブの切替えフラグのデフォルト値はfalseです。- 定義:
isActive、インタフェース:TimerMBean- 戻り値:
- タイマーMBeanがアクティブな場合は
true、そうでない場合はfalse。
-
isEmpty
public boolean isEmpty()
タイマー通知のリストが空かどうかを判定します。- 定義:
isEmpty、インタフェース:TimerMBean- 戻り値:
- タイマー通知のリストが空の場合は
true、そうでない場合はfalse。
-
-