Class MemoryNotificationInfo
java.lang.Object
java.lang.management.MemoryNotificationInfo
The information about a memory notification.
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:
- The name of the memory pool.
- The memory usage of the memory pool when the notification was constructed.
- 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
usage threshold count. For collection threshold notifications, this count will be thecollection 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:
- A
usage threshold exceeded notification.
This notification will be emitted when the memory usage of a memory pool is increased and has reached or exceeded its usage threshold value. 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. - A
collection usage threshold exceeded notification.
This notification will be emitted when 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.
- Since:
- 1.5
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringNotification 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 final StringNotification type denoting that the memory usage of a memory pool has reached or exceeded its usage threshold value. -
Constructor Summary
ConstructorsConstructorDescriptionMemoryNotificationInfo(String poolName, MemoryUsage usage, long count) Constructs aMemoryNotificationInfoobject. -
Method Summary
Modifier and TypeMethodDescriptionstatic MemoryNotificationInfofrom(CompositeData cd) Returns aMemoryNotificationInfoobject represented by the givenCompositeData.longgetCount()Returns the number of times that the memory usage has crossed a threshold when the notification was constructed.Returns the name of the memory pool that triggers this notification.getUsage()Returns the memory usage of the memory pool when this notification was constructed.Methods declared in class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitModifier and TypeMethodDescriptionprotected Objectclone()Answers a new instance of the same class as the receiver, whose slots have been filled in with the values in the slots of the receiver.booleanCompares the argument to the receiver, and answers true if they represent the same object using a class specific comparison.protected voidfinalize()Deprecated, for removal: This API element is subject to removal in a future version.May cause performance issues, deadlocks and hangs.getClass()Answers the unique instance of java.lang.Class which represents the class of the receiver.inthashCode()Answers an integer hash code for the receiver.final voidnotify()Causes one thread which iswaiting on the receiver to be made ready to run.final voidCauses all threads which arewaiting on the receiver to be made ready to run.toString()Answers a string containing a concise, human-readable description of the receiver.final voidwait()Causes the thread which sent this message to be made not ready to run pending some change in the receiver (as indicated bynotifyornotifyAll).final voidwait(long time) Causes the thread which sent this message to be made not ready to run either pending some change in the receiver (as indicated bynotifyornotifyAll) or the expiration of the timeout.final voidwait(long time, int frac) Causes the thread which sent this message to be made not ready to run either pending some change in the receiver (as indicated bynotifyornotifyAll) or the expiration of the timeout.
-
Field Details
-
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 byMemoryMXBean. 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 isjava.management.memory.threshold.exceeded.- See Also:
-
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 byMemoryMXBean. The value of this notification type isjava.management.memory.collection.threshold.exceeded.- See Also:
-
-
Constructor Details
-
MemoryNotificationInfo
Constructs aMemoryNotificationInfoobject.- 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 Details
-
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
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
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 thethreshold count. For collection threshold notifications, this count will be thecollection usage threshold count.- Returns:
- the number of times that the memory usage has crossed a threshold when the notification was constructed.
-
from
Returns aMemoryNotificationInfoobject represented by the givenCompositeData. The givenCompositeDatamust contain the following attributes:Attribute Name Type poolName java.lang.Stringusage javax.management.openmbean.CompositeDatacount java.lang.Long- Parameters:
cd-CompositeDatarepresenting aMemoryNotificationInfo- Returns:
- a
MemoryNotificationInfoobject represented bycdifcdis notnull;nullotherwise. - Throws:
IllegalArgumentException- ifcddoes not represent aMemoryNotificationInfoobject.
-