モジュール java.management
パッケージ 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 final long
    1日のミリ秒数。
    static final long
    1時間のミリ秒数。
    static final long
    1分のミリ秒数。
    static final long
    1秒のミリ秒数。
    static final long
    1週間のミリ秒数。
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    デフォルトのコンストラクタです。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    addNotification(String type, String message, Object userData, Date date)
    指定されたtypemessage、およびuserDataで新しいタイマー通知を作成し、これを指定の日付、間隔null、およびオカレンス数とともに通知リストに挿入します。
    addNotification(String type, String message, Object userData, Date date, long period)
    指定されたtypemessage、およびuserDataで新しいタイマー通知を作成し、これを指定の日付、間隔null、およびオカレンス数とともに通知リストに挿入します。
    addNotification(String type, String message, Object userData, Date date, long period, long nbOccurences)
    指定されたtypemessage、およびuserDataで新しいタイマー通知を作成し、これを指定の日付、間隔、およびオカレンス数とともに通知リストに挿入します。
    addNotification(String type, String message, Object userData, Date date, long period, long nbOccurences, boolean fixedRate)
    指定されたtypemessage、およびuserDataで新しいタイマー通知を作成し、これを指定の日付、間隔、およびオカレンス数とともに通知リストに挿入します。
    通知リストに登録されているすべてのタイマー通知識別子を取得します。
    タイマー通知に関連付けられている日付のコピーを取得します。
    定期通知をfixed-delayで実行するかfixed-rateで実行するかを示すフラグのコピーを取得します。
    int
    通知リストに登録されているタイマー通知の数を取得します。
    タイマー通知に関連付けられている残りの発行数のコピーを取得します。
    指定されたタイプに対応するすべてのタイマー通知識別子を取得します。
    指定された識別子に対応するタイマー通知の詳細メッセージを取得します。
    指定された識別子に対応するタイマー通知タイプを取得します。
    指定された識別子に対応するタイマー通知のユーザー・データ・オブジェクトを取得します。
    タイマー通知に関連付けられている間隔(ミリ秒)のコピーを取得します。
    boolean
    タイマーが過去の通知を送信するかどうかを示すフラグを取得します。
    boolean
    タイマーMBeanがアクティブかどうかをテストします。
    boolean
    タイマー通知のリストが空かどうかを判定します。
    void
    MBeanサーバーから登録解除したあと、タイマーMBeanが必要なオペレーションを実行できるようにします。
    void
    postRegister(Boolean registrationDone)
    MBeanサーバーへの登録が成功または失敗したあと、タイマーMBeanが必要なオペレーションを実行できるようにします。
    void
    MBeanサーバーから登録解除する前に、タイマーMBeanが必要なオペレーションを実行できるようにします。
    MBeanサーバーに登録する前に必要なオペレーションをタイマーMBeanが実行することを許可します。
    void
    通知リストからすべてのタイマー通知を削除し、タイマー通知識別子を更新するためのカウンタをリセットします。
    void
    指定された識別子に対応するタイマー通知を通知リストから削除します。
    void
    指定されたタイプに対応するすべてのタイマー通知を通知リストから削除します。
    void
    setSendPastNotifications(boolean value)
    タイマーが過去の通知を送信するかどうかを示すフラグを設定します。
    void
    タイマーを起動します。
    void
    タイマーを停止します。

    クラス 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が実行することを許可します。

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

      定義:
      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 Exception
      MBeanサーバーから登録解除する前に、タイマー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
      指定されたtypemessage、およびuserDataで新しいタイマー通知を作成し、これを指定の日付、間隔、およびオカレンス数とともに通知リストに挿入します。

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

      定期的な通知の場合、最初の通知はただちに配信され、以降の通知は間隔パラメータで指定された間隔で配信されます。

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

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

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

      定義:
      addNotification、インタフェース: TimerMBean
      パラメータ:
      type - タイマー通知タイプ。
      message - タイマー通知の詳細メッセージ。
      userData - タイマー通知のユーザー・データ・オブジェクト。
      date - 通知が発行される日付。
      period - タイマー通知の間隔(ミリ秒)。
      nbOccurences - 発行されるタイマー通知の合計数。
      戻り値:
      新しく作成されたタイマー通知の識別子。
      例外:
      IllegalArgumentException - 日付がnullであるか、間隔または発行数が負の値の場合。
      関連項目:
    • 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)を使用します。

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

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

      public Integer addNotification(String type, String message, Object userData, Date date) throws IllegalArgumentException
      指定されたtypemessage、および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

      public void setSendPastNotifications(boolean value)
      タイマーが過去の通知を送信するかどうかを示すフラグを設定します。
      過去の通知を送信するかどうかを指定するフラグのデフォルト値はfalseです。
      定義:
      setSendPastNotifications、インタフェース: TimerMBean
      パラメータ:
      value - 過去の通知を送信するかどうかを指定するフラグ値。
      関連項目:
    • isActive

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

      public boolean isEmpty()
      タイマー通知のリストが空かどうかを判定します。
      定義:
      isEmpty、インタフェース: TimerMBean
      戻り値:
      タイマー通知のリストが空の場合はtrue、そうでない場合はfalse