java.lang.management

Class MemoryNotificationInfo


public class MemoryNotificationInfo
extends Object

Represents the content of a notification emitted by the MemoryMXBean. Such notifications are emitted when one of the memory pools exceeds its usage or collection usage threshold. This object contains the following information, representing the state of the pool at the time of the notification:

Two types of notification are emitted by the MemoryMXBean: one for exceeding the usage threshold and one for exceeding the collection usage threshold. The value returned by getCount() is dependent on this type; if the threshold exceeded is the usage threshold, then the usage threshold count is returned. If, instead, the collection usage threshold is exceeded, then the collection usage threshold count is returned.

This data is held in the user data part of the notification (returned by Notification.getUserData()) encapsulated in a CompositeData object. The from(CompositeData) method may be used to unwrap the value and obtain an instance of this class.

Since:
1.5

Field Summary

static String
MEMORY_COLLECTION_THRESHOLD_EXCEEDED
The type of notification emitted when the collection usage threshold is exceeded, following a garbage collection cycle.
static String
MEMORY_THRESHOLD_EXCEEDED
The type of notification emitted when the usage threshold is exceeded.

Constructor Summary

MemoryNotificationInfo(String poolName, MemoryUsage usage, long count)
Constructs a new MemoryNotificationInfo object using the specified pool name, usage level and threshold crossing count.

Method Summary

static MemoryNotificationInfo
from(CompositeData data)
Returns a MemoryNotificationInfo instance using the values given in the supplied CompositeData object.
long
getCount()
Returns the number of times the memory pool has crossed the usage threshold, as of the time of notification.
String
getPoolName()
Returns the name of the pool which has crossed a threshold.
MemoryUsage
getUsage()
Returns the usage levels at the time of notification.

Methods inherited from class java.lang.Object

clone, equals, extends Object> getClass, finalize, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Details

MEMORY_COLLECTION_THRESHOLD_EXCEEDED

public static final String MEMORY_COLLECTION_THRESHOLD_EXCEEDED
The type of notification emitted when the collection usage threshold is exceeded, following a garbage collection cycle. The value is java.management.memory.collection.threshold.exceeded.
Field Value:
"java.management.memory.collection.threshold.exceeded"

MEMORY_THRESHOLD_EXCEEDED

public static final String MEMORY_THRESHOLD_EXCEEDED
The type of notification emitted when the usage threshold is exceeded. After a notification is emitted, the usage level must drop below the threshold again before another notification is emitted. The value is java.management.memory.threshold.exceeded.
Field Value:
"java.management.memory.threshold.exceeded"

Constructor Details

MemoryNotificationInfo

public MemoryNotificationInfo(String poolName,
                              MemoryUsage usage,
                              long count)
Constructs a new MemoryNotificationInfo object using the specified pool name, usage level and threshold crossing count.
Parameters:
poolName - the name of the pool which has exceeded a threshold.
usage - the usage level of the pool at the time of notification.
count - the number of times the threshold has been crossed.

Method Details

from

public static MemoryNotificationInfo from(CompositeData data)
Returns a MemoryNotificationInfo instance using the values given in the supplied CompositeData object. The composite data instance should contain the following attributes with the specified types:
NameType
poolNamejava.lang.String
usagejavax.management.openmbean.CompositeData
countjava.lang.Long

The usage level is further described as:

NameType
initjava.lang.Long
usedjava.lang.Long
committedjava.lang.Long
maxjava.lang.Long
Parameters:
data - the composite data structure to take values from.
Returns:
a new instance containing the values from the composite data structure, or null if the data structure was also null.
Throws:
IllegalArgumentException - if the composite data structure does not match the structure outlined above.

getCount

public long getCount()
Returns the number of times the memory pool has crossed the usage threshold, as of the time of notification. If this is the notification represented by the type MEMORY_THRESHOLD_EXCEEDED, then the count is the usage threshold count. If this is the notification represented by the type MEMORY_COLLECTION_THRESHOLD_EXCEEDED, then the count is the collection usage threshold count.
Returns:
the number of times the appropriate threshold has been crossed.

getPoolName

public String getPoolName()
Returns the name of the pool which has crossed a threshold.
Returns:
the name of the pool.

getUsage

public MemoryUsage getUsage()
Returns the usage levels at the time of notification.
Returns:
the usage levels.

MemoryNotificationInfo.java - Emitted memory notification info. Copyright (C) 2006 Free Software Foundation This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU Classpath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Classpath; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.