java.lang.management
Class MemoryNotificationInfo

java.lang.Object sample code for java.lang.Object definition code for java.lang.Object 
  extended by java.lang.management.MemoryNotificationInfo

public class MemoryNotificationInfo
extends Object sample code for java.lang.Object definition code for java.lang.Object

The information about a memory notification.

A memory notification is emitted by MemoryMXBean sample code for java.lang.management.MemoryMXBean definition code for java.lang.management.MemoryMXBean when the Java virtual machine detects that the memory usage of a memory pool is exceeding a threshold value. The notification emitted will contain the memory notification information about the detected condition:

A CompositeData sample code for javax.management.openmbean.CompositeData definition code for javax.management.openmbean.CompositeData representing the MemoryNotificationInfo object is stored in the user data sample code for javax.management.Notification.setUserData(java.lang.Object) definition code for javax.management.Notification.setUserData(java.lang.Object) of a notification sample code for javax.management.Notification definition code for javax.management.Notification . The from sample code for java.lang.management.MemoryNotificationInfo.from(javax.management.openmbean.CompositeData) definition code for java.lang.management.MemoryNotificationInfo.from(javax.management.openmbean.CompositeData) method is provided to convert from a CompositeData to a MemoryNotificationInfo object. For example:

      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);
          ....
      }  
 

The types of notifications emitted by MemoryMXBean are:

Since:
1.5

Field Summary
static String sample code for java.lang.String definition code for java.lang.String MEMORY_COLLECTION_THRESHOLD_EXCEEDED sample code for java.lang.management.MemoryNotificationInfo.MEMORY_COLLECTION_THRESHOLD_EXCEEDED definition code for java.lang.management.MemoryNotificationInfo.MEMORY_COLLECTION_THRESHOLD_EXCEEDED
          Notification type denoting that the memory usage of a memory pool is greater than or equal to its collection usage threshold after the Java virtual machine has expended effort in recycling unused objects in that memory pool.
static String sample code for java.lang.String definition code for java.lang.String MEMORY_THRESHOLD_EXCEEDED sample code for java.lang.management.MemoryNotificationInfo.MEMORY_THRESHOLD_EXCEEDED definition code for java.lang.management.MemoryNotificationInfo.MEMORY_THRESHOLD_EXCEEDED
          Notification type denoting that the memory usage of a memory pool has reached or exceeded its usage threshold value.
 
Constructor Summary
MemoryNotificationInfo sample code for java.lang.management.MemoryNotificationInfo.MemoryNotificationInfo(java.lang.String, java.lang.management.MemoryUsage, long) definition code for java.lang.management.MemoryNotificationInfo.MemoryNotificationInfo(java.lang.String, java.lang.management.MemoryUsage, long) (String sample code for java.lang.String definition code for java.lang.String  poolName, MemoryUsage sample code for java.lang.management.MemoryUsage definition code for java.lang.management.MemoryUsage  usage, long count)
          Constructs a MemoryNotificationInfo object.
 
Method Summary
static MemoryNotificationInfo sample code for java.lang.management.MemoryNotificationInfo definition code for java.lang.management.MemoryNotificationInfo from sample code for java.lang.management.MemoryNotificationInfo.from(javax.management.openmbean.CompositeData) definition code for java.lang.management.MemoryNotificationInfo.from(javax.management.openmbean.CompositeData) (CompositeData sample code for javax.management.openmbean.CompositeData definition code for javax.management.openmbean.CompositeData  cd)
          Returns a MemoryNotificationInfo object represented by the given CompositeData.
 long getCount sample code for java.lang.management.MemoryNotificationInfo.getCount() definition code for java.lang.management.MemoryNotificationInfo.getCount() ()
          Returns the number of times that the memory usage has crossed a threshold when the notification was constructed.
 String sample code for java.lang.String definition code for java.lang.String getPoolName sample code for java.lang.management.MemoryNotificationInfo.getPoolName() definition code for java.lang.management.MemoryNotificationInfo.getPoolName() ()
          Returns the name of the memory pool that triggers this notification.
 MemoryUsage sample code for java.lang.management.MemoryUsage definition code for java.lang.management.MemoryUsage getUsage sample code for java.lang.management.MemoryNotificationInfo.getUsage() definition code for java.lang.management.MemoryNotificationInfo.getUsage() ()
          Returns the memory usage of the memory pool when this notification was constructed.
 
Methods inherited from class java.lang.Object sample code for java.lang.Object definition code for java.lang.Object
clone sample code for java.lang.Object.clone() definition code for java.lang.Object.clone() , equals sample code for java.lang.Object.equals(java.lang.Object) definition code for java.lang.Object.equals(java.lang.Object) , finalize sample code for java.lang.Object.finalize() definition code for java.lang.Object.finalize() , getClass sample code for java.lang.Object.getClass() definition code for java.lang.Object.getClass() , hashCode sample code for java.lang.Object.hashCode() definition code for java.lang.Object.hashCode() , notify sample code for java.lang.Object.notify() definition code for java.lang.Object.notify() , notifyAll sample code for java.lang.Object.notifyAll() definition code for java.lang.Object.notifyAll() , toString sample code for java.lang.Object.toString() definition code for java.lang.Object.toString() , wait sample code for java.lang.Object.wait() definition code for java.lang.Object.wait() , wait sample code for java.lang.Object.wait(long) definition code for java.lang.Object.wait(long) , wait sample code for java.lang.Object.wait(long, int) definition code for java.lang.Object.wait(long, int)
 

Field Detail

MEMORY_THRESHOLD_EXCEEDED sample code for java.lang.management.MemoryNotificationInfo.MEMORY_THRESHOLD_EXCEEDED

public static final String sample code for java.lang.String definition code for java.lang.String  MEMORY_THRESHOLD_EXCEEDED
Notification type denoting that the memory usage of a memory pool has reached or exceeded its usage threshold value. This notification is emitted by MemoryMXBean sample code for java.lang.management.MemoryMXBean definition code for java.lang.management.MemoryMXBean . Subsequent crossing of the usage threshold value does not cause further notification until the memory usage has returned to become less than the usage threshold value. The value of this notification type is java.management.memory.threshold.exceeded.

See Also:
Constant Field Values

MEMORY_COLLECTION_THRESHOLD_EXCEEDED sample code for java.lang.management.MemoryNotificationInfo.MEMORY_COLLECTION_THRESHOLD_EXCEEDED

public static final String sample code for java.lang.String definition code for java.lang.String  MEMORY_COLLECTION_THRESHOLD_EXCEEDED
Notification type denoting that the memory usage of a memory pool is greater than or equal to its collection usage threshold after the Java virtual machine has expended effort in recycling unused objects in that memory pool. This notification is emitted by MemoryMXBean sample code for java.lang.management.MemoryMXBean definition code for java.lang.management.MemoryMXBean . The value of this notification type is java.management.memory.collection.threshold.exceeded.

See Also:
Constant Field Values
Constructor Detail

MemoryNotificationInfo sample code for java.lang.management.MemoryNotificationInfo(java.lang.String, java.lang.management.MemoryUsage, long) definition code for java.lang.management.MemoryNotificationInfo(java.lang.String, java.lang.management.MemoryUsage, long)

public MemoryNotificationInfo(String sample code for java.lang.String definition code for java.lang.String  poolName,
                              MemoryUsage sample code for java.lang.management.MemoryUsage definition code for java.lang.management.MemoryUsage  usage,
                              long count)
Constructs a MemoryNotificationInfo object.

Parameters:
poolName - The name of the memory pool which triggers this notification.
usage - Memory usage of the memory pool.
count - The threshold crossing count.
Method Detail

getPoolName sample code for java.lang.management.MemoryNotificationInfo.getPoolName() definition code for java.lang.management.MemoryNotificationInfo.getPoolName()

public String sample code for java.lang.String definition code for java.lang.String  getPoolName()
Returns the name of the memory pool that triggers this notification. The memory pool usage has crossed a threshold.

Returns:
the name of the memory pool that triggers this notification.

getUsage sample code for java.lang.management.MemoryNotificationInfo.getUsage() definition code for java.lang.management.MemoryNotificationInfo.getUsage()

public MemoryUsage sample code for java.lang.management.MemoryUsage definition code for java.lang.management.MemoryUsage  getUsage()
Returns the memory usage of the memory pool when this notification was constructed.

Returns:
the memory usage of the memory pool when this notification was constructed.

getCount sample code for java.lang.management.MemoryNotificationInfo.getCount() definition code for java.lang.management.MemoryNotificationInfo.getCount()

public long getCount()
Returns the number of times that the memory usage has crossed a threshold when the notification was constructed. For usage threshold notifications, this count will be the threshold count sample code for java.lang.management.MemoryPoolMXBean.getUsageThresholdCount() definition code for java.lang.management.MemoryPoolMXBean.getUsageThresholdCount() . For collection threshold notifications, this count will be the collection usage threshold count sample code for java.lang.management.MemoryPoolMXBean.getCollectionUsageThresholdCount() definition code for java.lang.management.MemoryPoolMXBean.getCollectionUsageThresholdCount() .

Returns:
the number of times that the memory usage has crossed a threshold when the notification was constructed.

from sample code for java.lang.management.MemoryNotificationInfo.from(javax.management.openmbean.CompositeData) definition code for java.lang.management.MemoryNotificationInfo.from(javax.management.openmbean.CompositeData)

public static MemoryNotificationInfo sample code for java.lang.management.MemoryNotificationInfo definition code for java.lang.management.MemoryNotificationInfo  from(CompositeData sample code for javax.management.openmbean.CompositeData definition code for javax.management.openmbean.CompositeData  cd)
Returns a MemoryNotificationInfo object represented by the given CompositeData. The given CompositeData must contain the following attributes:
Attribute Name Type
poolName java.lang.String
usage javax.management.openmbean.CompositeData
count java.lang.Long

Parameters:
cd - CompositeData representing a MemoryNotificationInfo
Returns:
a MemoryNotificationInfo object represented by cd if cd is not null; null otherwise.
Throws:
IllegalArgumentException sample code for java.lang.IllegalArgumentException definition code for java.lang.IllegalArgumentException - if cd does not represent a MemoryNotificationInfo object.