public class MemoryNotificationInfo extends Object
A memory notification is emitted by 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:
usage threshold count. For collection threshold notifications, this count will be the collection usage threshold count. A CompositeData representing the MemoryNotificationInfo object is stored in the user data of a notification. The from 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:
usage threshold exceeded notification. collection usage threshold exceeded notification. | Modifier and Type | Field and Description |
|---|---|
static 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.
|
static String |
MEMORY_THRESHOLD_EXCEEDED
Notification type denoting that the memory usage of a memory pool has reached or exceeded its
usage threshold value.
|
| Constructor and Description |
|---|
MemoryNotificationInfo(String
Constructs a
MemoryNotificationInfo object.
|
| Modifier and Type | Method and Description |
|---|---|
static MemoryNotificationInfo |
from(CompositeData
Returns a
MemoryNotificationInfo object represented by the given
CompositeData.
|
long |
getCount()
Returns the number of times that the memory usage has crossed a threshold when the notification was constructed.
|
String |
getPoolName()
Returns the name of the memory pool that triggers this notification.
|
MemoryUsage |
getUsage()
Returns the memory usage of the memory pool when this notification was constructed.
|
public static final StringMEMORY_THRESHOLD_EXCEEDED
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.
public static final StringMEMORY_COLLECTION_THRESHOLD_EXCEEDED
MemoryMXBean. The value of this notification type is
java.management.memory.collection.threshold.exceeded.
public MemoryNotificationInfo(StringpoolName, MemoryUsage usage, long count)
poolName - The name of the memory pool which triggers this notification.
usage - Memory usage of the memory pool.
count - The threshold crossing count.
public StringgetPoolName()
public MemoryUsagegetUsage()
public long getCount()
threshold count. For collection threshold notifications, this count will be the
collection usage threshold count.
public static MemoryNotificationInfofrom(CompositeData cd)
Attribute Name Type poolName java.lang.String usage javax.management.openmbean.CompositeData count java.lang.Long
cd -
CompositeData representing a
MemoryNotificationInfo
IllegalArgumentException - if
cd does not represent a
MemoryNotificationInfo object.