モジュール 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 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)
      指定されたタイプに対応するすべてのタイマー通知識別子を取得します。
      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()
      タイマーを停止します。
    • フィールドの詳細

      • 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(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)を使用します。

        定義:
        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
        指定された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(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