モジュール java.management
パッケージ java.lang.management

クラスMemoryNotificationInfo

java.lang.Object
java.lang.management.MemoryNotificationInfo

public class MemoryNotificationInfo extends Object
メモリー通知に関する情報です。

メモリー・プールのメモリー使用量がしきい値を超えていることをJava仮想マシンが検出すると、MemoryMXBeanによりメモリー通知が発行されます。 発行された通知には、検出された条件に関する次のメモリー通知情報が含まれています。

  • メモリー・プールの名前
  • 通知が構築されたときのメモリー・プールのメモリー使用量
  • 通知が構築されたときに、メモリー使用量がしきい値を超えた回数。 使用量しきい値通知の場合、このカウントは使用量しきい値カウントになります。 コレクション使用量しきい値通知の場合、このカウントはコレクション使用量しきい値カウントになります。

MemoryNotificationInfoオブジェクトを表すCompositeDataは、通知ユーザー・データに格納されます。 fromメソッドは、CompositeDataからMemoryNotificationInfoオブジェクトへの変換を行います。 たとえば、

      Notification notif;

      // receive the notification emitted by MemoryMXBean and set to notif
      ...

      String notifType = notif.getType();
      if (notifType.equals(MemoryNotificationInfo.MEMORY_THRESHOLD_EXCEEDED) ||
          notifType.equals(MemoryNotificationInfo.MEMORY_COLLECTION_THRESHOLD_EXCEEDED)) {
          // retrieve the memory notification information
          CompositeData cd = (CompositeData) notif.getUserData();
          MemoryNotificationInfo info = MemoryNotificationInfo.from(cd);
          ....
      }
 

MemoryMXBeanが発行する通知の型は次のとおりです。

  • 使用量しきい値超過通知
    この通知は、メモリー・プールのメモリー使用量が増加し、使用量しきい値に達したか超えたときに発行されます。
    以降、使用量しきい値を超えても、メモリー使用量が使用量しきい値未満に戻るまで、通知は発行されません。
  • 使用量しきい値超過通知
    この通知は、Java仮想マシンがメモリー・プールで使用しないオブジェクトのリサイクルに最善を尽くしたあと、メモリー・プールのメモリー使用量がコレクション使用量しきい値以上であるときに発行されます。

導入されたバージョン:
1.5
  • フィールド詳細

    • MEMORY_THRESHOLD_EXCEEDED

      public static final String MEMORY_THRESHOLD_EXCEEDED
      メモリー・プールのメモリー使用量が使用量しきい値に達したか超えたことを表す通知型。 この通知はMemoryMXBeanから出力されます。 以降、使用量しきい値を超えても、メモリー使用量が使用量しきい値未満に戻るまで、通知は発行されません。 この通知の型の値はjava.management.memory.threshold.exceededです。
      関連項目:
    • MEMORY_COLLECTION_THRESHOLD_EXCEEDED

      public static final String MEMORY_COLLECTION_THRESHOLD_EXCEEDED
      Java仮想マシンがメモリー・プールで使用しないオブジェクトのリサイクルに最善を尽くしたあと、メモリー・プールのメモリー使用量がコレクション使用量しきい値以上であることを表す通知型。 この通知はMemoryMXBeanから出力されます。 この通知の型の値はjava.management.memory.collection.threshold.exceededです。
      関連項目:
  • コンストラクタの詳細

    • MemoryNotificationInfo

      public MemoryNotificationInfo(String poolName, MemoryUsage usage, long count)
      MemoryNotificationInfoオブジェクトを構築します。
      パラメータ:
      poolName - この通知をトリガーするメモリー・プールの名前。
      usage - メモリー・プールのメモリー使用量。
      count - しきい値超過回数。
  • メソッドの詳細

    • getPoolName

      public String getPoolName()
      この通知をトリガーするメモリー・プールの名前を返します。 メモリー・プールの使用量はしきい値を超えました。
      戻り値:
      この通知をトリガーするメモリー・プールの名前
    • getUsage

      public MemoryUsage getUsage()
      通知が構築されたときのメモリー・プールのメモリー使用量を返します。
      戻り値:
      通知が構築されたときのメモリー・プールのメモリー使用量
    • getCount

      public long getCount()
      通知が構築されたときに、メモリー使用量がしきい値を超えた回数を返します。 使用量しきい値通知の場合、このカウントは使用量しきい値カウントになります。 コレクション使用量しきい値通知の場合、このカウントはコレクション使用量しきい値カウントになります。
      戻り値:
      通知が構築されたときに、メモリー使用量がしきい値を超えた回数。
    • from

      public static MemoryNotificationInfo from(CompositeData cd)
      指定されたCompositeDataによって表されるMemoryNotificationInfoオブジェクトを返します。 指定されたCompositeDataは、次の属性を含む必要があります。
      指定されたCompositeDataに含まれる属性および型
      属性名
      poolName java.lang.String
      usage javax.management.openmbean.CompositeData
      count java.lang.Long
      パラメータ:
      cd - MemoryNotificationInfoを表すCompositeData
      戻り値:
      cdnullでない場合はcdにより表されるMemoryNotificationInfoオブジェクト、そうでない場合はnull
      例外:
      IllegalArgumentException - cdMemoryNotificationInfoオブジェクトを表さない場合。